Poly count limit?

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Pilotze
Posts: 19
Joined: Tue Aug 24, 2004 1:33 pm
Contact:

Post by Pilotze »

I agree that 65k polys for a model is
more then enough , I just loaded
those 130k to show dogs what is
possible ;)

I hope he agrees now...
Das war jetzt erstmal der letzte fürs erste
Thulsa Doom
Posts: 63
Joined: Thu Aug 05, 2004 9:40 am
Location: Germany

Post by Thulsa Doom »

Hello mm765,
could you give a short explanation what exactly the difference between strips/lists & fans is, please? I'm less experienced with hardware acceleration.
Dogs
Posts: 195
Joined: Wed Sep 15, 2004 1:04 am
Location: michigan

Post by Dogs »

Well it has nothing to do weaher this is a competition to prove me wrong lol.. Its just plain and simple its not working for me lol..

Now as for mm765 Thats the best info ive got on this subject yet...
And it makes sense...

Ive noticed that with the same model in 3ds max6 around 500kb or so loads fine...

If I export the exact modle as .obj its almost three times that size and irrlicht craps out loading it..

Same with .x format..

So It just may as well be the loaders in the engine that are just not happy with the way my models are created...

I was shocked to get a response saying they loaded such hi poly models...
I looked closer and Im kinda wondering if maybe its really not a poly isue at all but file size problem insted...?
Could this be?
What sizes are those monsters with all those polys your loading?

All I know is that exporting to .obj is outa the question on my end here cause they are huge in size and irrlicht wont load them unless I want to waite over an entire min... lol.

Im wondering also if everyone here says that it can load such high poly models then maybe its my direct.x

I just updated to the new dir x 9.b or what ever it is... What modes do you use to load your higher poly models...?
Im confused now.. :?
mm765
Posts: 172
Joined: Fri May 28, 2004 10:12 am

Post by mm765 »

ill try though im usually not good at explaining things.

the difference is the amount of indexes needed to display a certain amount of triangles(tris).
trianglelists are the most flexible but also the most memory-intensive. for each triangle you need 3 vertexes and 3 indexes.
if you want to display 2 quads next to each other (4 tris) you would need 6 vertexes and 12 indexes.
trianglestrips "reuse" the last 2 indexes to build a triangle with only one added index so you would need 6 vertexes and 6 indexes to display the same 2 quads.

Code: Select all

1----------2----------4
|       /  | \        |   
|     /    |   \      |
|   /      |     \    |
| /        |       \  |
0----------3----------5
for lists you would need the following indexes:
0,1,2 0,2,3 3,2,5 5,2,4

for strips:
1,2,0 3 5 4 (not neccessarily in this order)


generally for lists you need triangleCount * 3 indexes, for strips triangleCount + 2. so you can calculate the difference yourself for large amounts of tris :)


now, what to do when you want something like this:

Code: Select all

6----------7----------8
| \        |        / |   
|   \      |      /   |
|     \    |    /     |
|       \  |  /       |
1----------2----------4
|       /  |  \       |   
|     /    |    \     |
|   /      |      \   |
| /        |        \ |
0----------3----------5
with lists its easy as you just add the vertexes and indexes (thats why i said they are the most flexible).
to use strips here, you have to use a little "trick", you add triangles that are not visible by adding some indexes multiple times to make the transition to the start of the next strip (which costs a little speed but is still faster than lists, because they are filtered by the graphicscard anyway).

and finally thats where fans come in :) you can imagine fans as using one central point and generating tris around this central point (point no 2 in this example). so in this case, a first triangle would be setup (lets say 2,6,7) and then only the additional vertexes have to be added (clockwise 8,4,5,3,0,1) so with a fan you need 9 indexes for this small figure , whereas with lists you need 24 (8 tris x 3).
for strips its 8tris + 2 +2(invisible), which is 12 in total.

so lists are the most flexible but slowest, strips are quite fast and flexible and fans are very fast but only usefull in certain cases.

hth, if not, ask :)
Last edited by mm765 on Tue Oct 19, 2004 2:42 pm, edited 1 time in total.
Dogs
Posts: 195
Joined: Wed Sep 15, 2004 1:04 am
Location: michigan

Post by Dogs »

Very interesting....

It show how poor of a modeler I am now.. lol
I didnt know there was a diff or that there was other options like this at all...
How would one convert there allready pre built meshes to an optimized system like your talking about...

I use max6 and I use the optimizer section to lower the polys and so on but Im not sure ive seen the things your talking about in max...

If you use max as well maybe you can point out this nice optimizing trick to me and others that read this post as well..

Thanks again for your great info mm765.. :)
mm765
Posts: 172
Joined: Fri May 28, 2004 10:12 am

Post by mm765 »

actually im not a modeler at all and was strictly speaking from an engine point of view.

BUT i know (read it somewhere) that there are tools that are specifically designed to convert models so that they can be displayed as strips instead of lists. there are even different optimizers (because as you can imagine there are endless ways to convert a model so that it can be displayed as strips).

sorry i really cant remember where i saw it or what the name was...but i THINK i saw it somewhere on gamedev.net.
Tyn
Posts: 932
Joined: Thu Nov 20, 2003 7:53 pm
Location: England
Contact:

Post by Tyn »

Hmm, I was under the impression that things like strips and fans were an engine level optimisation rather than something from the modeller, learn something every day :)
mm765
Posts: 172
Joined: Fri May 28, 2004 10:12 am

Post by mm765 »

Tyn wrote:Hmm, I was under the impression that things like strips and fans were an engine level optimisation rather than something from the modeller, learn something every day :)
they are.
but there are many possible ways to split one object into strips and thats where those tools come in. they also take things like materials into account (the less material-changes needed while rendering the better).
Dogs
Posts: 195
Joined: Wed Sep 15, 2004 1:04 am
Location: michigan

Post by Dogs »

Ok now to make an ass of myself...

After hearing so much about people loading these high poly models I went and rewrote a new script to load an object...

And low and behold it worked..

So I compared it to my code im using for my program and after looking for a while i found the culprit...

It seems there is a poblem loading a shadow for my model..
The shawdow node was added and when I removed it everything went fine...
As soon as I added it again the lag and stall was back and ... I never really payed much attention but it never was loading a shadow anyway..

So maybe the long waite was just the engine thinking of what to do next because it couldnt load the shadow...

I played around with my higher poly models and now I get the error saying its to many polys if I use one that is to high lol..
Before I never got that, strange

Oh well Its working now kinda anyway...

Now here is the big question...

For some reason it loads my very high poly models in the format of .obj but not in 3ds..

Im not sure but does .obj format reatain animations?
These high poly models are my characters so they will be animated..
If not then ill go with my lower poly models and animate them and export them as .3ds

I didnt mess with the panda exporter much but does .x format work with animations too...?

I gues what im getting at is this...
My character will most likely end up with only one texture anyway...
I thouht that only 3ds files would work with multiple textures so if im only going to use one texture then if all of the formats will retain there animation data then it really dosnt matter what format I use then yes no..?

Oh well somone set me strait on this please..
Im so lost now I dont know what im doing lol... :?
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

for what i know, I have send to engines models in many kind of ordering the faces , and they mainly loaded ok all...I guess is more an engine thing to do...

Also, OBJ -an ascii list- and x ascii are not th emost optimal formats to load directly in an engine, that I have been told, but I dunno if Irrliccht does convert it previously to something binary faster to load.

What i know is: if your model haver vertices unwelded, or is really, actually made of many tiny different surfaces (I've seen some weird cases of one group/object PER triangle ) it can really kill any engine.

Now, while not, this wasn't a competition to prove you wrong, heh, but more than that a global curiosity if it was happening that Irrlicht was dying with very standard models.

130 k model is something really huge. If irrlicht can eat that , hey, I wouldn't complain. ;)
And well, if it can in one computer, then there's something u're making wron in artist or coding side, or there's something the othge rguy is doing extremely well... ;)

We used to see problems on the way we modelled, there are things, technical ways of doing in modelling, that kill the frame rate; if they're repeated in huge triangle count mesh, I suppose the bottleneck get enormously increased.

Anyway, I don't understand what's happening really, maybe my language barrier :)
Finally making games again!
http://www.konekogames.com
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

crossposting; you replied while I was writting...

--------
For some reason it loads my very high poly models in the format of .obj but not in 3ds..
----------

*.3ds is an old format that i don't like, though it have a binary format that obj hasn't, maybe it's quicker on load, I dunno.
*.3ds does not support shared uvs (it does but breaks the mesh as a seam if it finds that)
does not support long names.
doe shave a 65k tris triangle limit.Perhaps u surpased it.


-----
Im not sure but does .obj format reatain animations?
-----------

Nop.Dunno if initially there was support, as is common that specs of a format is not supported fully later on by packages, but none of the ones I have used, makes obj support it. In a word: no.


------------
These high poly models are my characters so they will be animated..
----------

It's an overkill even for Unreal latest engine (maybe no the nº 3 ;) but depending on the future cards, of course ;) ) even, to use such high count meshes,,,besides,if an artist need a characetr so high, he is not very good at optimizing...even for hi res rendering is better use displacement maps, as Max will die trying to move those wire frames in a complex animation.


------------
If not then ill go with my lower poly models and animate them and export them as .3ds
----------

Which count are u using? :o
I mean, hey. 3,500 tris is already a load to make super realistic models, if u know the stuff.

I'd say even stay at 2k limit if u really want to make a good playable game with an open source engine. Perhaps I'm staying too low, just that i feel usually comfortable at that count. Of course, if a coder gives me more, party time :)

-------------------
I didnt mess with the panda exporter much but does .x format work with animations too...?
-------------------

totally, but not with biped. There's a trick involved with fbx import export to convert biped to bones once u have ended doing all anims. But involves more possibilities of errrors. If ur non artist, can lead you to a nightmare.
Anyway, preferrable than learn animate with bones, as at the end is more complex.

--------------
I gues what im getting at is this...
My character will most likely end up with only one texture anyway...
-----------

usually better for engines.
Most kickass models I've see from great pros where using one texture, but anyway, today engines, and in a gam company, it's all up to what the coders provide. But in an indy game, ur alone in the dark, depending on formats an ddealing problems with hacks.


------------
I thouht that only 3ds files would work with multiple textures so if im only
------------

I think x file sare not too friendly with mor ethan one mesh or more than one texture.Anyway, I am too used to force my self to one:one, as is usually required for performance and othe reasons....The fewer nº of textures and meshes, the better perfromance...but don't achive this increasing crazily texture size or mesh count, or it will somewhat kill performance also.


-----
going to use one texture then if all of the formats will retain there animation
----------

cal3d and x, for now, in irrlicth. For a no organic animation (or an organic one if u don't care bad meat bending) , milkshape ascii format. Robots,mechs, machines, articualted, cars, ideally for this format and ms3d software(which has no weights support).


---------
data then it really dosnt matter what format I use then yes no..?
----------

obj or 3ds are static. 3ds supported keyframe data animation but..well forget it, is of no use, mainly.No use in characters.
Finally making games again!
http://www.konekogames.com
Dogs
Posts: 195
Joined: Wed Sep 15, 2004 1:04 am
Location: michigan

Post by Dogs »

Thanks for your reply...

So the last queston id like to know is this then...
from your perspective with what tools im useing (max6) and various paint software, What approch would you take to create a nice life like looking human models that will be my characters in my program and will have nice animations (walk,stand,jump) those kinda things..?

Ive read many different ways to do it in this forum and you seem to have laid out the methods here well...
But im still not clear on what method you or anyone else that uses this engine would sugest I use....

Thanks for your help agian.. :)
Thulsa Doom
Posts: 63
Joined: Thu Aug 05, 2004 9:40 am
Location: Germany

Post by Thulsa Doom »

Hello again mm765 !
Dogs wrote: ...
Thanks again for your great info mm765.. :)
...
I totally agree with Dogs, just also want to thank you for you're comprehensive explanation on this matter.
Dogs
Posts: 195
Joined: Wed Sep 15, 2004 1:04 am
Location: michigan

Post by Dogs »

lol you can sure tell im not a 3d engine writer lol..
You learn something new everyday I gues lol.

But I still dont have any idea what format I should use ... :(

I feel bad enouph from what has been said so far lol..
Id still like to know why my models are causing this problem when the shawdows are set in the code...
Im not sure realy what the shadow is... Maybe its a copy of the model in a sort of way and when that happens my models become almost twice in size then and thats why the engine lags to a halt like its doing..

This kinda sucks if the case because I want shadows on my charachers. lol

Well I gues time will tell anyway...

Im not the best modeler when it comes to making 3d human models so I went out and got poser5..
Now poser 5 human models are way outa the question because they are huge in poly count..
But you have the option in the program to use any of the older human models from past vertions and those are much lower in polys..

In fact poser 1 models are not the best and Im hopeing for poser 2 or would be happy with 3...

I can load poser 3 human models just fine in .obj format but in .3ds sometimes it dosnt load all of model and there are holes in my model..lol

Im thinking that poser was a lost 200.00 bucks.. Ill most likely end up using diff human models..

Maybe someone here in this forum know where I can get some nice looking human models (naked) that would look good in game play for a 3d chat program...

I want them naked because im going to have my artist that creates textures and stuff for the program create many diff skins with diff clothing styles and so on...

Other then the nice looking human models the rest of this engine is more then capable of doing just what i want for it do...
But I need to figure out what format to export from max that will retain animations for use in irrlicht...

Some more in detail info on this subject would be great...

Thanks again for all the help so far... :)
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

poser models are allways too hi poly,and not actually thought for that...

besides, is not legal.Poser does not allow using othe thing than 2d output (renders, etc.) Not for games.


besides, it has other problems.

Max6 is the key. Model teh character, animate it with character studio, export as fbx, import the fbx back in max6 again, now it is bones and weights, export teh animation as *.x file, save the anim in mview to allow irrlicht load without problems.

Is my advice.

If you don't have max6, then I'd advice Blender, and Jox *.x exproter.


Go to turbosquid, do a search, models, humans, and put 0$ as maximun price.

You'll find some, but most are hi res.
Finally making games again!
http://www.konekogames.com
Post Reply