Jump to content
  • Advertisement
Sign in to follow this  

manage complex geometry?

This topic is 3088 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

hi, i've found a nice 3d model of a house with about "millions" of faces. then i loaded it into my little directx based engine and as expected the performance was very bad. i thought about generating a few reduced versions of the model and tiling them up and dynamically load them from an octree (kind of like megatexture, just with model pieces). for tiling i might have to add a some extra vertices (not sure about that though). but im not sure if that approach really a good idea. i also might want to have a few of those houses in my scene (and an outdoor world connecting them). so, since the 3d graphics world is moving fast, i was wondering what are some state of the art solutions to deal with massive model data? ps: unfortunately i don't have access to directx11 hardware yet :/ best regards scope

Share this post


Link to post
Share on other sites
Advertisement
You should try to lower that polycount. You can for example use bumpmapping instead of actual geometry in many places.

An octree will only help you if the player cannot see the whole house at once. Since increasing min-fps is most important when optimizing.

Share this post


Link to post
Share on other sites
At first you should take a look where your bottleneck in the rendering is. For instance if you are proceeding a lot of rendercalls for all those faces with the same material you can optimize this by rendering them in one rendercall.
But this depends on the design of your renderengine. So my first approach to makes things faster is just understanding where all the proceeding time hangs.

Of cource you should also try to optimize your model, too.

With best regards,
Kimmi

Share this post


Link to post
Share on other sites
hi, first of thanks for your responses.

i've worked on a almost completely functional implementation of megatexture lately, so drawing a lot of polys at once will be possible.

I'm not really the type to edit some models in 3d max, i'm more of the procedural type of guy. i rather melt my brain over some algorithms once.

the player should be should be able to see the outside sceanary when hes looking out of the windows :)

oh, the house is so big and has so many rooms, its impossible to load it all at once even if its low poly. and there will even be bigger ones in the future, so it should be able to manage really REALLY big stuff.

edit: i already stuffed all subsets into one vertex buffer and that increased the fps from 5 to about 100, but still i need to be able to work with much larger model data. model data that fits in no vram. imagine a city with houses that all have complex interior. but any model data should work.

Share this post


Link to post
Share on other sites
Do you know the ideas behing resource management? As a starting you can take a look into the following article regarding a simple resource manager:
STL based resource manager
The idea behind this is to load the data on demand. If your data is too big to hold it in memory you can load it using a background thread if your application needs it to display a new part of your geometry.

-Kimmi

Share this post


Link to post
Share on other sites
I would suggest looking into cPLP and PLP implementations for models of that size. Game Programming Gems 3 has a whole section devoted to it and they show an example with over 13 million polygons. The background loader is also a very good idea as well. The March '09 DX SDK has an example of this but it's for DX 10.

Share this post


Link to post
Share on other sites
Thanks a lot for the recommendation. PLP and cPLP seem to apply to what i was looking for and I can deal with the drawbacks. implementation can be fairly easy. i'm going to try it.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!