Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Hitscanning_scumbag

A Full 3D DOOM Mod

Recommended Posts

Im Looking to Create a Full 3D mod...
But looking on the DOOMWiki, and other sources, i have a question i cannot find an
answer to, (after Google-ing) Exactly HOW MANY 3D models will run in DOOM (any Port) Before performance Begins to Slow? Or even Halt Altogether? I see Modern Games, Like Painkiller which seemingly run on full 3D models, but im not sure, and i dont want to continue until i get this settled.
What do you guys think? does it depend on the system, or what?

Share this post


Link to post

Doom engine is not optimized for model usage. I've played around with models before on Zandronum and GZDoom and it does slow down a fair bit on maps with too much stuff, so I'd say you should go easy on the amount of actors per map(Slaughter maps are a no-no).
There's also the 3DGE engine, which I don't know how good it handles models, but the developers are making a 3D mod for it I think, so you should probably give that engine a shot.

Share this post


Link to post

I don't know how relevant is this, but I've played slaughter maps in Risen3D (e.g., maps 20-30 from Alien Vendetta, uv-fast) with models enabled (without hi-res textures) and it works reasonably well. There is some slow down in places like the central room of Darkdome, but in general there are no issues.

I don't know about other ports, because when I want to play Doom with models, I basically always use Risen3D.

Share this post


Link to post

i used to play the model packs in risen, and they do run smoothly, mostly.(they took some time to load each weapon on my older system)
Hence my confusion. i just don't want to overwhelm the processor with too many Models.

anyway, this is not a slaughter map, no.
So, Thanks for your assistance, guys! now that I know for sure, Ill proceed with the project, hopefully it will be fully polished and ready soon.

Share this post


Link to post

<incoming wall of text>

3DGE renders 3D models really well, and it's OpenGL 1.1 compliant so it'll work on older hardware. I've just added a ton of optimizations that will show up in the next version (as well as supporting 3 additional model formats, including Doomsday's DMD). There is still an issue I'm grappling with where the HUD frustum scissors/culls models out of view based on their bounding box (even with parameters supplied in DDF), which is part of the reason I'm integrating a simple physics engine for them so that will not happen. However, the most recent version disables back-face culling on 3D models (allowing for unlimited faces for MD2 and MD3), but I have not noticed a performance hit - something to keep in mind if you do.

However, DOOM was inherently not designed for 3D models, even in an OpenGL port, so it's wise to watch your polycount..I will try to explain.

Hypertension pulls off being full 3D because we have a polygon-limit for every 3D model (limiting to 1K for enemies and 600 for on-screen weapons, and >500tris for static scenery objects). It also helps using a model format that doesn't use vertex keyframes and instead uses a skeleton for animation since the entire model gets duplicated for as many frames you have with vert-anims. I recently threw up 20 (~800-tris) enemy models on screen in MD2/MD3/DMD and did the same thing with MD5/MDL/MS/PSK, and 3DGE didn't slow down ONCE, even on older hardware like the NEC PowerVR2 (Dreamcast). However, it's always more efficient to use MD2 for static objects since it's only rendering one frame anyway (MD3/5 would be a total waste for those).

You also should be mindful of how many animations and triangles are in each model. Keeping it within a good limit is important, because with older formats (especially MD2): the closer it gets to that limit, the model rendering system (in ANY port) starts to struggle to keep it in memory. DDF has the advantage of being able to switch a 3D model out on the fly, even in animation states, so if you have an enemy model that approaches 300+ frames (a few megabytes), you can trim it or slice it in half and render the model separately according to what animation/etc it needs to load in. I'm sure GZDoom/etc also does this, I just cannot verify it.

The model skin formats are equally vital. For 3DGE, it renders JPG the easiest at a comfortable resolution (512x512/1024x1024, though any resolution even non-power-of-two is supported), PNG second (transparency layers), and TGA the last (highest quality, also supports transparency). So, limiting your models to a certain skin resolution and format can definitely help. Hypertension's skins never exceed 512x512, and are rarely used, especially with MD5 where each model group can have a small resolution without it being stretched into one skin (one group), therefore preserving image quality and processing power. Just keep this in mind as 3DGE will load these skins and models on-the-fly.

Spoiler

What we've done for HT is created a "loading-room" in the beginning where Hypertension throws every 3D model into one room (lit to 0) and displays a "loading-screen", so the engine pre-caches EVERYTHING at once to avoid doing it later, resulting in faster load times. I created an RTS script that times this, so once it's all loaded (progress viewable in the console as well), it'll automatically load the first episode. It's hackey, but it really works.

Finally, level design plays a heavy part. If you overload your level with dynamic lights, 3D floors, 3D models, and architecture, you will experience framerate issues in any port. Portals, blocklines, silent teleports, and other trickery are essential to utilizing the best framerates.

In short, you won't see anything super HD quality unless you have amazing hardware (and designed the mod to be used with it) or make very clever use of what you have on screen at once. If you want that, it's best to use a newer engine built around 3D models.

Share this post


Link to post
zaszthedestroyer said:

Exactly HOW MANY 3D models will run in DOOM (any Port) Before performance Begins to Slow? Or even Halt Altogether? I see Modern Games, Like Painkiller which seemingly run on full 3D models, but im not sure, and i dont want to continue until i get this settled.
What do you guys think? does it depend on the system, or what?



It mostly depends on the graphics hardware and driver.
Rendering a model may be lots of primitives but these come with no costly state changes.

With GZDoom 2.x the impact should be negligible because models are rendered from a vertex buffer with a single draw call, but you may get problems with 1.x on older AMD hardware if theres lots of models (several 100) because draw calls are so much more expensive on AMD and a complex model can easily end up as 100 draw calls and more

Share this post


Link to post

@CHU - I'm pretty much mediocre at blender, so my faces may turn out inevitably many.(i really try to keep it down tho.) idk how to attach a pic, or i would show you my work so far.

Also, that spoiler, interesting stuff...(you, sir, have my attention)
-------------------------------------------------------------------------
@graf Zahl - That was about what i had thought when i started... i want a mod for both older and newer machines, if possible... im thinking im going to look up hypertension and 3DEdge.

-----------------------------------------------------------------------------
Kappes buur - this game looks amazing from the start, but it wont work...
(maybe my version of GZDoom is out of date? 1.8.2.0)

Script error, "njgtb4ts.pk3:actors/enemies/strogg/tankboss.txt" line 105:
Unknown identifier 'CHAN_5'
Script error, "njgtb4ts.pk3:actors/enemies/strogg/tankboss.txt" line 109:
Unknown identifier 'CHAN_6'
Script error, "njgtb4ts.pk3:actors/enemies/strogg/tankboss.txt" line 354:
Unknown identifier 'CHAN_7'
Script error, "njgtb4ts.pk3:actors/enemies/strogg/tankboss.txt" line 459:
Unknown identifier 'CHAN_5'
Script error, "njgtb4ts.pk3:actors/enemies/strogg/tankboss.txt" line 463:
Unknown identifier 'CHAN_6'
Script error, "njgtb4ts.pk3:actors/enemies/strogg/tankboss.txt" line 632:
Unknown identifier 'CHAN_5'
Script error, "njgtb4ts.pk3:actors/enemies/strogg/tankboss.txt" line 635:
Unknown identifier 'CHAN_6'
Script error, "njgtb4ts.pk3:actors/enemies/strogg/tankboss.txt" line 637:
Unknown identifier 'CHAN_5'
Script error, "njgtb4ts.pk3:actors/enemies/strogg/tankboss.txt" line 645:
Unknown identifier 'CHAN_5'

Execution could not continue.

9 errors while parsing DECORATE scripts
----------------------------------------------------------------------------


my plan is to mostly use pics of models wherever i can, and to use 3d models to help liven the Atmosphere, basically i want it to look realistic while using as little resources as possible
like in FNAF. (*my research tells me the game is entirely pre rendered...(all pics of models.)

and again, THANK YOU ALL FOR YOUR HELP.

Share this post


Link to post
zaszthedestroyer said:

Kappes buur - this game looks amazing from the start, but it wont work...
(maybe my version of GZDoom is out of date? 1.8.2.0)


Use one of these, depending on your graphics card

1.8.10 is the version for graphic adapters which cannot support OpenGL 3.x
2.1 which supersedes 2.0, is the version for graphic adapters which have support for OpenGL 3.x and above.

See also http://forum.drdteam.org/viewtopic.php?f=23&t=6482

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×