IQM Support Implemented (Skeletal support!)

Like feature suggestions, but you've actually written code to make it happen. More likely to make it into the game than some random request in feature suggestions.

Moderator: GZDoom Developers

Forum rules
Please see Code submission guidelines

GZDoom Status:
Image

Legacy Status:
Image Image

QZDoom Status:
Image
User avatar
Shiny Metagross
Posts: 171
Joined: Wed Apr 02, 2014 10:00 pm
Location: USA

IQM Support Implemented (Skeletal support!)

Post by Shiny Metagross »

https://github.com/ZDoom/gzdoom/pull/1706
  • Implemented IQM support
  • Implemented a keyword for modeldef, Animation. This corresponds to an index which another IQM can use to load animation data from. I will likely implement parameters for the A_ChangeModel action function
An IQM file can be exported from Noesis and Blender. Noesis however does not export texture names properly, though I cannot tell exactly what it's doing. So you will have to change the skins through surface skin, until another solution is found. Maybe Noesis is putting full texture paths?

When exporting an IQM from Blender, you need to select all mesh objects you want to export. Make sure you put the name of any animation sequences you want in the exporter, or no animations will export at all.

As far as I know, IQM also needs mesh data, or it's invalid. GZDoom will crash. I'll see if I can find a fix for it, but other tools don't like that so I suppose it's a "Don't do that" type of thing.

So, to-dos:
- Implement GLES support
- Implement additional parameters to A_ChangeModel to support animation changes Done!
- See if there's any way to support IQMs that contain no mesh data. If not, atleast create a fatal error in console instead of crashing. IQM does not support this at all.

Credits on the rendering side (OpenGL, Vulkan, shaders, etc) and IQM loader goes to dpJudas.

Here is a test file:
https://drive.google.com/file/d/1adKIb1 ... sp=sharing
Here is a second test file for showing an even greater extent of IQM support (and the new animation parameters for A_ChangeModel)
https://drive.google.com/file/d/1JWc37S ... sp=sharing
Last edited by Shiny Metagross on Tue Aug 16, 2022 12:07 pm, edited 1 time in total.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 48321
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: IQM Support Implemented (Skeletal support!)

Post by Graf Zahl »

I'm not going to act on this until someone with a better understanding of graphics programming has reviewed it.
Gez
 
 
Posts: 17683
Joined: Fri Jul 06, 2007 3:22 pm

Re: IQM Support Implemented (Skeletal support!)

Post by Gez »

The only other person I can think of who knows GZDoom codebase and has a good understanding of graphics programming is dpJudas, and he's already involved in this PR:
Shiny Metagross wrote: Fri Aug 12, 2022 2:56 pm Credits on the rendering side (OpenGL, Vulkan, shaders, etc) and IQM loader goes to dpJudas.
So I dunno. Maybe you could ask Ethan Watson "gooberman" if he'd take a look.

Return to “Code Submissions”