View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000241||GZDoom (All)||[All Projects] Bug||public||2017-02-11 09:40||2017-02-14 15:05|
|Summary||0000241: Sprite clipping causes animation jitter in Minor Sprite Fixing Project|
|Description||GZDoom 2.3's sprite clipping causes jittery animation with the replacement Twitching Impaled Human (thingtype 26) sprite included in the Minor Sprite Fixing Project 1.8.|
If sprite clipping is set to "never", "smart" or "smarter", the two-frame twitching animation jumps up and down by several pixels. The "always" setting stops the jittering. The jitter does not occur in GZDoom 1.x with any sprite clipping setting, nor does it occur in 2.3's software renderer.
|Steps To Reproduce||1. Load the attached twitchtest.wad alongside D2SPFX18.WAD from the Minor Sprite Fixing Project 1.8, using DOOM2.WAD as the IWAD.|
2. Set gl_spriteclip to 0 ("never"), 1 ("smart") or 3 ("smarter"). Sprite animation will jitter vertically by several pixels between frames.
3. Set gl_spriteclip to 2 ("always"). Sprite animation will stop jittering.
|Additional Information||This appears to be triggered by the fact that only one of the animation frames is replaced in the sprite fixing PWAD: POL6A0, which in the fix PWAD is 38x66px with an offset of 19x, 62y. (In the original IWAD, POL6A0 is 35x66px with an offset of 17x, 62y.)|
Its companion frame from the original IWAD, POL6B0, is 38x66px with an offset of 19x, 62y. Importing POL6B0 from the IWAD into the fix PWAD with the same size and offset causes the jitter to go away; even though nothing has changed in the graphic itself, something about having both sprites present in the PWAD fixes it.
|Tags||No tags attached.|
twitchtest.wad.zip (428 bytes)
|Sorry, I should have been more precise with version numbers: the jitter is present in GZDoom 2.3.2, but not in GZDoom 1.9.1. I haven't tested any in-between versions.|
There's some further discussion of this issue on the Minor Sprite Fixing Project thread here: https://www.doomworld.com/vb/wads-mods/62403-doom-2-minor-sprite-fixing-project-v1-8-release-updated-11-15-16/13/, including a link the commit that brought about the issue, and Revenant100 proposes a heuristic for avoiding these kinds of conflicts.
The sprite offset overrides added in https://github.com/coelckers/gzdoom/commit/834802def36d59ed34a76cdb83817a68546ee917 are only applied to sprites from the original IWAD; if a PWAD replaces one of these sprites, the offset defined in the PWAD is used for that sprite. However, the Minor Sprite Fixing Project PWAD does not replace every frame of every sprite animation: so the unmodified frames receive GZDoom's overridden offsets, while the replaced frames are left alone, resulting in jitter as it animates between the two.
Revenant100's proposal is for GZDoom to recognise sprite animations as a group: if any one sprite from a group is overridden in a PWAD, then no offset overrides should be applied to the other sprites in that animation group.
|I hope this works out.|
|2017-02-11 09:40||Viggles||New Issue|
|2017-02-11 09:40||Viggles||File Added: twitchtest.wad.zip|
|2017-02-11 09:45||Viggles||Note Added: 0000513|
|2017-02-12 18:51||Viggles||Note Added: 0000533|
|2017-02-13 13:20||Graf Zahl||Status||new => resolved|
|2017-02-13 13:20||Graf Zahl||Resolution||open => not fixable|
|2017-02-13 13:22||Graf Zahl||Status||resolved => new|
|2017-02-13 13:22||Graf Zahl||Resolution||not fixable => reopened|
|2017-02-14 15:05||Graf Zahl||Note Added: 0000584|
|2017-02-14 15:05||Graf Zahl||Status||new => resolved|
|2017-02-14 15:05||Graf Zahl||Resolution||reopened => fixed|