WIP: Leopard 2 A5
-
@LS
Thank you very much for the great tutorial.My wheel is 106 tris ATM and split into 4 parts:
I have deleted invisible poly (count…each poly 2x tris):
This might not be as efficient as you think. Compare vertex counts between what you have and if the wheel was one object. Vertices are the things the engine has to transform in order to get your model from object space into world space.
Plus anything that breaks the rendering batch is bad i.e. ptype changes, shading groups, texture change.
Any break in rendering batch mean another draw call, with each draw call you get 300 tris for free effectively. So low level lods less than 300 are probably pointless but they must be all one batch.
Regards
Dave -
My wheel is 106 tris ATM
I also have another think …delete green part and yellow part change in LodEditor as LP- NodeType, then rendering will be 2 sides (I have not tested it yet).
The next think…in my wheel is… reduction from 12 sided cylinder to less in the blue part… but I leave it until my model is below 4K.2- sided rendering would be nice, … keep us updated
I hope you understand what I mean
Absolutely
@Eghi:And please share your experience
Pfff, buy a book or watch tutorials at youtube.
… Master lazystone. :bowd:;)
Compared to those real Masters around, I’m still a rookie.Cheers,
LS -
Compared to those real Masters around, I’m still a rookie.Cheers,
LSWow, the new of the day: Finally, I found the lazy rookie :rofl:
Haha…
Nikos. -
This might not be as efficient as you think.
I guess we thought about polycount (tris), that’s all.
Compare vertex counts between what you have and if the wheel was one object. Vertices are the things the engine has to transform in order to get your model from object space into world space.
Do vertex counts weight more than tri counts?
If the wheel is one object the tri count is 144.
So I think the result in post #16 is the best, tri count is 126 and vertex count is
also less than if the wheel was one object. No?Plus anything that breaks the rendering batch is bad i.e. ptype changes, shading groups, texture change.
Any break in rendering batch mean another draw call, with each draw call you get 300 tris for free effectively. So low level lods less than 300 are probably pointless but they must be all one batch.
Regards
DaveIs the GFX engine smart enough to render all identically ptypes first, then next,
… all identically shading groups first, then next, etc.
or do it render how it comes (which results in more draw calls)?Cheers,
LS -
+1 eager for the answers…
-
What can I say about that? if you remember I came almost to any “new model(s)” thread in the forum and asked to keep tris count to the limits, but some people just say “yea yea yea, so we will make it an independent download”… so people think we are kidding… but at the end of the day your V-Card, whatever type or quality it is, is drawing triangles, so people make 60K vehicles with crazy LOD distance, you have a column of such 6-7 vehicles in front of you, you also have TGP on them, so you got ~300K tris rendered double time just for those vehicles…
I’m not saying the limits cannot get a big higher in the future, but as you see it’s possible to create great looking ground vehicles, ACs and ships within the limits, and with correct LOD distance
Totally agree, there are some good low poly models already in falcon, a thousand ( or two ) poly model can be a big improvement on many of the others.
I don’t need hi detail models on the average ground unit, but it would be nice to see the lods transition nicely preserving the outline/shape texture out to at least 3000ft and then to have decent destroyed models to BDA after.
-
2k Tris limit is hard target for Vehicles with 12 or more Wheels without normal maps.
In other hand, is it very difficult to reduce tris count for LODs from Objects with very high tris count. -
Do vertex counts weight more than tri counts?
Not sure how tris count is calculated in 3D Max but I believe WD knows what he is talking about… e.g a simple cube has 8 vertices, but 12 tris… vertices is indeed what’s being translated, rotated and transformed by DirectX, tris are usually what’s being drawn by draw calls.
Is the GFX engine smart enough to render all identically ptypes first, then next,
… all identically shading groups first, then next, etc.
or do it render how it comes (which results in more draw calls)?Yes, DirectX is a state machine, so you set states for e.g texturing, blending, materila (Ptype) and you draw all you can by a single draw call (of course assuming you pushed everything you need in a smart way to a common vertex and index buffers, because buffers are also set for a draw call…), then if say you need to replace texture then you must update the current texture DirectX will use and execute another draw call, same if you need to update material, you need to update the DirectX state with the material properties and execute another draw call, etc etc… so for example you better have an Aircraft with 1x2048 texture than 4x1024 or 16x512 to cover the same area, much more efficient.
-
If the wheel is one object the tri count is 144.
So I think the result in post #16 is the best, tri count is 126 and vertex count is
also less than if the wheel was one object. No?As I-Hawk explained it has to do with the draw calls so it’s not possible to say from your description because you haven’t specified things like texture usage/mapping and smoothing. If the 144 tri object was one smooth group and didn’t break texture mapping then yes it would probably be more efficient because it could be drawn in one draw call. You can see why giving a simple tri count as the limit is easier for most to deal with.
It would be nice if we have a model viewer that told us how many draw calls a model needed. That was something that DXEdit from FF did which was useful.
I’ve seen some people use untextured polys in models thinking they were being more efficient but as soon as the pType changes it’s another draw call.
Use the node summary in the export to see what pTypes are being generated for the LOD, it can help you ensure that a few incorrect pTypes are getting through adding extra draw calls.
Regards
Dave -
:munch:
:mrgreen:
Regards,
demer -
Not sure how tris count is calculated in 3D Max but I believe WD knows what he is talking about… e.g a simple cube has 8 vertices, but 12 tris… vertices is indeed what’s being translated, rotated and transformed by DirectX, tris are usually what’s being drawn by draw calls.
No doubt
Correct, a simple cube has 8 vertices, but 12 tris.
@LS:
Is the GFX engine smart enough …
Yes, DirectX is a state machine, so you set states for e.g texturing, blending, materila (Ptype) and you draw all you can by a single draw call (of course assuming you pushed everything you need in a smart way to a common vertex and index buffers, because buffers are also set for a draw call…), then if say you need to replace texture then you must update the current texture DirectX will use and execute another draw call, same if you need to update material, you need to update the DirectX state with the material properties and execute another draw call, etc etc… so for example you better have an Aircraft with 1x2048 texture than 4x1024 or 16x512 to cover the same area, much more efficient.
Just to get this right, … in case of smoothing groups (SG) for example …
I know we should use max. 3 SGs, so if I have modelled a untextured tank like Eghi did,
and I have used only SG1, SG2, SG3 and one ptype for the whole model,
then this model will have 4 draw calls, one for each SG + 1 ptype?Cheers,
LS -
As I-Hawk explained it has to do with the draw calls so it’s not possible to say from your description because you haven’t specified things like texture usage/mapping and smoothing. If the 144 tri object was one smooth group and didn’t break texture mapping then yes it would probably be more efficient because it could be drawn in one draw call.
OK, I got it, … it’s all about draw calls, not tri- or vertex count.
You can see why giving a simple tri count as the limit is easier for most to deal with.
Oh, I was also fine with the tri count limit, until I found out that I can keep the limit,
but still being not that efficiently.It would be nice if we have a model viewer that told us how many draw calls a model needed. That was something that DXEdit from FF did which was useful.
Sounds good, … wouldn’t similar be possible within your 3ds plugin?
I’ve seen some people use untextured polys in models thinking they were being more efficient but as soon as the pType changes it’s another draw call.
OK
Use the node summary in the export to see what pTypes are being generated for the LOD, it can help you ensure that a few incorrect pTypes are getting through adding extra draw calls.
Sure, i always use it during export.;)
Cheers,
LS -
Keep it at two calls……ptype2 and ptype14…you will be amazed soon…LOL!!!
The Illuminati…LOL!!!
-
Keep it at two calls……ptype2 and ptype14…you will be amazed soon…LOL!!!
The Illuminati…LOL!!!
What’s the problem here demer? I can’t understand your statements… Is there any sarcastism in your phrase? Wavey, Lazystone and myself are simply trying to advise our friend eghi for his great work…
-
What’s the problem here demer? I can’t understand your statements… Is there any sarcastism in your phrase? Wavey, Lazystone and myself are simply trying to advise our friend eghi for his great work…
No problem, no sarcasm. Just stating that for a Low Priority model in game, it is best to keep it as simple as we can.
I am sure Arek will benefit from the advice and produce great result’sCheers,
demer -
Yes, DirectX is a state machine, so you set states for e.g texturing, blending, materila (Ptype) and you draw all you can by a single draw call (of course assuming you pushed everything you need in a smart way to a common vertex and index buffers, because buffers are also set for a draw call…), then if say you need to replace texture then you must update the current texture DirectX will use and execute another draw call, same if you need to update material, you need to update the DirectX state with the material properties and execute another draw call, etc etc… so for example you better have an Aircraft with 1x2048 texture than 4x1024 or 16x512 to cover the same area, much more efficient.
would it be even better if u used a 1x4096 than 2x2048 or 4x1024 or 8x512? or in your optimization tests found that 2048 is the equilibrium point.
Example airbases they have a serious amount of textures… the old ones instead of the new ones like kimpo that uses just 7 IIRC.So as Demer said (using materials instead of textures is better) if using materials instead of textures the effect is the same? also if u think materials are light and u use much of them like 10 -15 materials instead of 4 textures of 2048 then u can have the opposite result? have you done some tests on that?
Also just in case, another point of hard proof why BMS team must have the 3d source files. In case a massive optimization like this needs to be done just to ease up the engine.
About materials … asking cause this one sounded as an ease of work for my buildings project. So just use 3-4 materials and just play with color brightness etc… wouldn’t it be better instead of using like +100 textures?
-
Busy in RL, I have time only on weekends. Today unwrap and texture will be finished.
2614 Tris model (WIP):
-
Looks really really good. As usual in your work.
-
would it be even better if u used a 1x4096 than 2x2048 or 4x1024 or 8x512? or in your optimization tests found that 2048 is the equilibrium point.
Example airbases they have a serious amount of textures… the old ones instead of the new ones like kimpo that uses just 7 IIRC.So as Demer said (using materials instead of textures is better) if using materials instead of textures the effect is the same? also if u think materials are light and u use much of them like 10 -15 materials instead of 4 textures of 2048 then u can have the opposite result? have you done some tests on that?
Also just in case, another point of hard proof why BMS team must have the 3d source files. In case a massive optimization like this needs to be done just to ease up the engine.
About materials … asking cause this one sounded as an ease of work for my buildings project. So just use 3-4 materials and just play with color brightness etc… wouldn’t it be better instead of using like +100 textures?
Nice work again Arek……!!!
To Artys point…I took some time today to show us\redo some tests as to my already proved to me “Proof of Concept”……;)
First pic is CCC’s FFG Perry @ 126 Tris and textured\DOF’d along with my conversion of Army Souls FFG Boone @ 29,000 Tris……but no texture’s and only Material mapping.
Second pic is CCC’s model alone. Though still in the taskforce (other models within the booble affect each other……;) )
Third pic is my conversion of Army Souls FFG Boone alone but still in the Task force. I have only Textured with “Materials” the gun and Helo Pad @ this time.As we can see, there is a significant FPS gain using this technique.
Also, as stated to Radium, I only use this technique for Low Priority models ATM… I cannot imagine the Falcon time it would take to do a complex model this way……LOL!!! BUT, I guess you could if you wanted to (I see divorce court coming……LOL!!!)
I am using this technique in upcoming GUAM for Das Boots because the Capital ships are HUGH (Features) on the moving objective. I need to save the FPS budget where I can……sighAs well, using only 2 pTypes allows me to target only those Polys that I want to illuminate at night…instead of ADDING carrier lights.blk et al (just more Tris to the Model)
Cheers,
The Illuminati -
Nice work again Arek……!!!
To Artys point…I took some time today to show us\redo some tests as to my already proved to me “Proof of Concept”……;)
First pic is CCC’s FFG Perry @ 126 Tris and textured\DOF’d along with my conversion of Army Souls FFG Boone @ 29,000 Tris……but no texture’s and only Material mapping.
Second pic is CCC’s model alone. Though still in the taskforce (other models within the booble affect each other……;) )
Third pic is my conversion of Army Souls FFG Boone alone but still in the Task force. I have only Textured with “Materials” the gun and Helo Pad @ this time.As we can see, there is a significant FPS gain using this technique.
Also, as stated to Radium, I only use this technique for Low Priority models ATM… I cannot imagine the Falcon time it would take to do a complex model this way……LOL!!! BUT, I guess you could if you wanted to (I see divorce court coming……LOL!!!)
I am using this technique in upcoming GUAM for Das Boots because the Capital ships are HUGH (Features) on the moving objective. I need to save the FPS budget where I can……sighAs well, using only 2 pTypes allows me to target only those Polys that I want to illuminate at night…instead of ADDING carrier lights.blk et al (just more Tris to the Model)
Cheers,
The IlluminatiOk I don’t understand.
I have only Textured with “Materials” the gun and Helo Pad @ this time.
you mean you created a dds texture for gun and helipad?
I done some models with material only and as I can see it u use blinn only and you play with color on Diffuse only right?
For the illuminated at night u set the ptype correctly u create the switch and that way how you do it without a texture? IIRC it needs a texture (dds) to alter the settings for the ptype to be set correctly from 3ds.
Unless:
1. u do it from lodeditor.
2. U select texture but don’t set a texture and just alter the settings to have the effect, and it works like it has a texture but displays the color u set in diffuse?Edit: ok I played a little with those… when u export it gets the 0.dds as default texture. so it fubars the displayed model, but if u erase the texture setting from LE then it shows ok.
Also about the night light u declare a bitmap for mapping but u don’t set an actual image u just set the settings and the switch and it works.