Investigating Source Ports for 3D Monsters/Objects

Advanced OpenGL source port fork from ZDoom, picking up where ZDoomGL left off.
[Home] [Download] [Git builds (Win)] [Git builds (Mac)] [Wiki] [Repo] [Bugs&Suggestions]

Moderator: Graf Zahl

User avatar
NiuHaka
Posts: 22
Joined: Tue Jun 29, 2010 21:08

Investigating Source Ports for 3D Monsters/Objects

Post by NiuHaka »

I am a video game artist by profession and i'm searching for a hobby to fill in the time when i'm at home and my son is asleep. I have gravitated back to DOOM after a decade long break. Over the last couple of years I have thought about recreating the DOOM monsters in 3d just for the hell of it (pun) but recently I have decided it would be much more interesting to actually put these monsters/weapons/miscellaneous debris in an actual game. I also plan on releasing everything I make to the community that I patronize. I was directed to GZDOOM as a possible way to replace all 2d objects with 3d models. I can see that there are a lot of people here who know what they are doing and that is a very good thing. 10 points to this community already. I don't expect anyone to answer all questions but any help will be appreciated. So, let the investigation begin.


Are 3d models and animated models supported in GZDOOM?

What 3d model/mesh formats are supported in GZDOOM?

Part of previous question- Does it support skeletal or per-vertex animations?

What is the triangle limit?

What is the recommended triangle count if I plan to have, say, up to 10 monsters on the screen at one time?

What are the limits to UV texture sizes for the models?

What are the drawbacks to using large (1024x1024) textures?


What editing programs are suggested to accompany GZDOOM?

I use Maya 2009. What additional software/knowledge is recommended for creating successful animated models for GZDOOM?


Thank you for your time and I look forward to seeing what your brains look like and possibly becoming a permanent member of this doomed community.
User avatar
Gez
Developer
Developer
Posts: 1399
Joined: Mon Oct 22, 2007 16:47

Re: Investigating Source Ports for 3D Monsters/Objects

Post by Gez »

Yes, models are supported. Three formats can be used: MD2, MD3, and DMD; the latter originates from Doomsday, the two former from Quake II and Quake III. In practice, GZDoom can load the same models that Doomsday and Vavoom can.

The technical limits and possibilities are those of those model formats. No skeletal animation, for example, since they don't have a skeleton. I think there is an upper limit to the amount of vertices you can put in a MD2 or MD3.

Animation is tied to states just like sprites, you'll have to write up a [wiki]MODELDEF[/wiki] lump to get them to work.

Maximum texture size is not specifically mentioned anywhere, but if you're using TGA textures, the max size for them is 2048x2048.

For level editing I'd recommend [wiki]Doom Builder 2[/wiki], which is the only map editor available that is still maintained. It's also modern and quite powerful.

For general purpose editing, I recommend [wiki]SLumpEd[/wiki] or its successor [wiki]SLADE3[/wiki] (which is still in beta).

For model editing, well, the only model editing experience I have is tinkering with some Morrowind NIFs with Blender, so I can't really help you. I suppose whatever MD2, MD3 or DMD exporter plugin you find for Maya will be all that you'll need.
User avatar
NiuHaka
Posts: 22
Joined: Tue Jun 29, 2010 21:08

Re: Investigating Source Ports for 3D Monsters/Objects

Post by NiuHaka »

Yes, models are supported. Three formats can be used: MD2, MD3, and DMD
I'm guessing md5 is not supported. The last maya that the latest md5 exporter supported was maya 8 which is pretty old now. I use maya 2009 and things get a little wonky when exporting md5.
Animation is tied to states just like sprites, you'll have to write up a [wiki]MODELDEF[/wiki] lump to get them to work.
What does this look like? Would the animations look the same as doom sprites? Like 4 walking frames etc.? No smooth animations as in quake 2 or 3?
Maximum texture size is not specifically mentioned anywhere, but if you're using TGA textures, the max size for them is 2048x2048.
Are TGA alphas supported? Are PNG-24 format and PNG transparency supported?
User avatar
Gez
Developer
Developer
Posts: 1399
Joined: Mon Oct 22, 2007 16:47

Re: Investigating Source Ports for 3D Monsters/Objects

Post by Gez »

NiuHaka wrote:I'm guessing md5 is not supported.
Indeed not.
NiuHaka wrote:Would the animations look the same as doom sprites? Like 4 walking frames etc.?
Yes. You need to understand that it's tied to the actor states, which are what the entire game logic is based on.

Smoothness is provided by interpolation.
NiuHaka wrote:Are TGA alphas supported? Are PNG-24 format and PNG transparency supported?
Generally, yes; but for model skins, I don't really know. Transparency support in model is rather limited due to the lack of certain sorting algorithms that would be needed to make sure all the triangles are displayed without glitches. So it's forced to 1-bit alpha, rather than 8-bit alpha. Sprites and wall textures do not have such a limitation.
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Investigating Source Ports for 3D Monsters/Objects

Post by Enjay »

NiuHaka wrote:What does this look like? Would the animations look the same as doom sprites? Like 4 walking frames etc.? No smooth animations as in quake 2 or 3?
You can, however, add more frames in to an actors definitions and then tie the model definition to them (thereby making your actors animate more smoothly). You don't even need to use new sprites. Any sprites that you use will be hidden by the models so it's the durations and number of frames that you add to your actors that are important, not what the sprites look like.

It is perhaps worth pointing out that the support for some model features in GZdoom is limited (particularly tricks that can be done with skins) though this is improving. Risen3D and Doomsday both have more advanced feature support in respect to this but I don't think either support MD3 models which are a far more precise format than the old "wobbly" MD2s. I believe that DMDs are just an extension of the MD2 format and share some of the disadvantages of that format.
User avatar
Gez
Developer
Developer
Posts: 1399
Joined: Mon Oct 22, 2007 16:47

Re: Investigating Source Ports for 3D Monsters/Objects

Post by Gez »

Indeed.

I've made pretty minimalistic pages for the various [wiki]model format[/wiki]s that GZDoom and Skulltag support.
User avatar
NiuHaka
Posts: 22
Joined: Tue Jun 29, 2010 21:08

Re: Investigating Source Ports for 3D Monsters/Objects

Post by NiuHaka »

Great! This is looking pretty promising.
Gez wrote:Smoothness is provided by interpolation.
Is this something that the engine will automatically do or would i need to do a little keyboard hacking to get vertex interpolation? If this is the case i'll probably bag that idea for now.
Enjay wrote:You can, however, add more frames in to an actors definitions and then tie the model definition to them (thereby making your actors animate more smoothly).
I've never worked with anything like this so i'm not sure that I fully understand. Would I need to export a different model for each frame of animation? Sort of as if I were just using sprites?
Enjay wrote:It is perhaps worth pointing out that the support for some model features in GZdoom is limited (particularly tricks that can be done with skins) though this is improving.
Are there ways to allow for "glowing parts" on a UV texture? I've seen that someone has created brightmaps on walls and sprites- could this or any other method be used on the UV textures?
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Investigating Source Ports for 3D Monsters/Objects

Post by Enjay »

NiuHaka wrote:Is this something that the engine will automatically do or would i need to do a little keyboard hacking to get vertex interpolation? If this is the case i'll probably bag that idea for now.
Interpolation is handled by the engine and is on by default. If you need to, you can specify that a model should not be interpolated when you define it in the MODELDEF control lump. Some models look better with interpolation (though most look better with it).
NiuHaka wrote:I've never worked with anything like this so i'm not sure that I fully understand. Would I need to export a different model for each frame of animation? Sort of as if I were just using sprites?
No, not a different model but different frames of animation within the same model can be used. Both MD2 and MD3 support adding frames of animation to the models.

What I was referring to was something like this.

Imagine a monster that is set up like this:

Code: Select all

POSS AABBCCDD 4 A_Chase
That is just the standard zombieman walking animation. It has 4 sprite frames (A,B,C and D) that your model would have 4 corresponding frames of animation for. However, if you were to redefine the actor something like this:

Code: Select all

POSS ABCDEFGHIJKLMNOP 2 A_Chase
(actual code and values may be different)
then you could add additional animations to your monster's walk cycle because you now have frames A through P to play with.
NiuHaka wrote:Are there ways to allow for "glowing parts" on a UV texture? I've seen that someone has created brightmaps on walls and sprites- could this or any other method be used on the UV textures?
At present, brightmaps do not work on model skins in GZdoom. It's one of the limitations I was referring to.
User avatar
Gez
Developer
Developer
Posts: 1399
Joined: Mon Oct 22, 2007 16:47

Re: Investigating Source Ports for 3D Monsters/Objects

Post by Gez »

Enjay wrote:

Code: Select all

POSS AABBCCDD 4 A_Chase
That is just the standard zombieman walking animation. It has 4 sprite frames (A,B,C and D) that your model would have 4 corresponding frames of animation for. However, if you were to redefine the actor something like this:

Code: Select all

POSS ABCDEFGHIJKLMNOP 2 A_Chase
(actual code and values may be different)
then you could add additional animations to your monster's walk cycle because you now have frames A through P to play with.
Bad idea. It's cumbersome, but the way you should do it if you don't want to change behavior is like this:

Code: Select all

POSS A 2 A_Chase
POSS B 2
POSS C 2 A_Chase
POSS D 2
POSS E 2 A_Chase
POSS F 2
POSS G 2 A_Chase
POSS H 2
POSS I 2 A_Chase
POSS J 2
POSS K 2 A_Chase
POSS L 2
POSS M 2 A_Chase
POSS N 2
POSS O 2 A_Chase
POSS P 2
Otherwise, you double the actor's speed and you make it more aggressive...
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Investigating Source Ports for 3D Monsters/Objects

Post by Enjay »

I was going to suggest halving the actor speed to counteract the speed increase (but forgot - I was at work and a class was coming in) but I hadn't remembered that calling A_Chase twice as often also makes the actor more aggressive too (as I did in a similar Zdoom forum thread). Thanks. :)
User avatar
NiuHaka
Posts: 22
Joined: Tue Jun 29, 2010 21:08

Re: Investigating Source Ports for 3D Monsters/Objects

Post by NiuHaka »

Thank you for the great replies. I'm sure i'll be back to look over this information many times. I'll continue investigating some of the other source ports but i'm liking what i'm seeing with gzdoom so far.

I'm still hoping that one of the other source ports will support something other than md2, md3 & dmd because I am having one hell of a hard time finding an existing maya md3 exporter. Maya gets no love! I know DOOM is old but i'm still surprised that none of the hundreds (exaggeration) of other 3d formats are supported.
DaniJ
Posts: 130
Joined: Sat Oct 08, 2005 19:22

Re: Investigating Source Ports for 3D Monsters/Objects

Post by DaniJ »

Enjay wrote:
NiuHaka wrote:Are there ways to allow for "glowing parts" on a UV texture? I've seen that someone has created brightmaps on walls and sprites- could this or any other method be used on the UV textures?
At present, brightmaps do not work on model skins in GZdoom. It's one of the limitations I was referring to.
Bare in mind that limitation will not be present in a future version of Doomsday as "brightmap" support (probably more commonly known as self-illumination map) is something I've been working towards for a while now, as I plan to integrate our light coronas in with it. So I guess what I'm saying is yeah, please do create the map(s) as we'll be able to use them sooner or later.

Surely most modern 3d software packages can keyframe a skeletal model animation and export as vertex frames? You're not telling me that all the embedded and low-end mobile devices are doing hardware skeletal animtion now, or is it more common to script bones in LUA or something?

But yeah, sadly no DOOM port presently available supports skeletal model animtion.
User avatar
NiuHaka
Posts: 22
Joined: Tue Jun 29, 2010 21:08

Re: Investigating Source Ports for 3D Monsters/Objects

Post by NiuHaka »

DaniJ wrote:Bare in mind that limitation will not be present in a future version of Doomsday as "brightmap" support (probably more commonly known as self-illumination map)

Oooooh! This is pretty exciting. This (even though it was just a teaser) has just helped me make my decision. I am sticking with GZDOOM.

Anyone know *looking at DaniJ* if it is/will be possible to swap the textures on a model to show damage done to a monster or even animate parts of a monster like flames, drool, or even blood vessels?

*EDIT* ooooh... wait... you said Doomsday... Hmmmm. dangit! back to undecided.
DaniJ
Posts: 130
Joined: Sat Oct 08, 2005 19:22

Re: Investigating Source Ports for 3D Monsters/Objects

Post by DaniJ »

NiuHaka wrote:Anyone know *looking at DaniJ* if it is/will be possible to swap the textures on a model to show damage done to a monster or even animate parts of a monster like flames, drool, or even blood vessels?
Damage modelling and texture swapping is certainly possible with Doomsday, I don't think GZdoom supports it though. Both ports allow for multiple "submodels" for a given state which can each be animated independently if desired, so stuff like animated flames is indeed doable (though if I wasn't targeting GZdoom I would probably do this sort of effect using Doomsday's particle effect system instead (you basically attach a particle generator to the model frames you want and job done)).
KuriKai
Posts: 47
Joined: Sun May 21, 2006 23:46

Re: Investigating Source Ports for 3D Monsters/Objects

Post by KuriKai »

NiuHaka, welcome to the doom community.
I suggest just making it with all the effects you want, in maya and release it in obj(or another popular) format. That leaves it up to people who use what ever doom engine to convert it, package it and write the definition files for said Doom engine.
That is what I have been doing, but really slowly, because it has been hard to find help.
I have been releasing my stuff under the gplv2 or later license.

I have started a doom model project which has it's homepage here
http://sourceforge.net/projects/dmp/
and forums (where you can see some of what I have done) here
http://forums.yaa.dk/viewforum.php?f=33 ... e4dee5ef60
Locked

Return to “GZDoom”