[Models] Interpolation of hidden model frames

Remember, just because you request it, that doesn't mean you'll get it.

Moderator: GZDoom Developers

User avatar
Posts: 1302
Joined: Tue Dec 06, 2016 11:25 am

[Models] Interpolation of hidden model frames

Post by Cherno »

This is a bit difficult to explain :)

A model frame that is set to render (> -1) will not do so if the frame it interpolates towards is set to not render (-1).

This will not render POSS A:

Code: Select all

FrameIndex POSS A 0 99
FrameIndex POSS B 0 -1
This will render:

Code: Select all

FrameIndex POSS A 0 99
FrameIndex POSS B 0 100
I have become aware of this issue with a monster that haas a walking+shooting animation. the muzzelflash is a submodel and obviously only renders for some frames (when shoooting). The things are, I can't interpolate the walking animation while also making the muzzleflash model frame show in between.

What I would like to see is simple: interpolate as usual, and stop rendering the model when the new frame is reached. This sounds logical to me.

I have looked into the source code but wasn't able to find out what prevents the current frame to not render if the next one should not.
I assume it's somewhere in models.cpp: RenderFrameModels() and/or models_md3.cpp.RenderFrame().
User avatar
Marisa the Magician
Posts: 3886
Joined: Fri Feb 08, 2008 9:15 am
Preferred Pronouns: She/Her
Operating System Version (Optional): (btw I use) Arch
Graphics Processor: nVidia with Vulkan support
Location: Vigo, Galicia

Re: [Models] Interpolation of hidden model frames

Post by Marisa the Magician »

I think what this needs is the special case I added in the UE1 model renderer where it will "hide" (actually skip over) surfaces that have their skin set to null.

Return to “Feature Suggestions [GZDoom]”