IQM Support Implemented (Skeletal support!)

Forum rules
Please see Code submission guidelines

GZDoom Status:
Image

Legacy Status:
Image Image

QZDoom Status:
Image

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is ON
[img] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: IQM Support Implemented (Skeletal support!)

Re: IQM Support Implemented (Skeletal support!)

by Gez » Sat Aug 13, 2022 1:14 am

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.

Re: IQM Support Implemented (Skeletal support!)

by Graf Zahl » Sat Aug 13, 2022 12:53 am

I'm not going to act on this until someone with a better understanding of graphics programming has reviewed it.

IQM Support Implemented (Skeletal support!)

by Shiny Metagross » Fri Aug 12, 2022 2:56 pm

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

Top