View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# Best way to render complex model

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

5 replies to this topic

### #1BlackJoker  Members

Posted 14 May 2013 - 12:58 AM

Hello,

I have an interesting question on my opinion and I dont know an answer yet.

I want to hold in memory and render a models which consist from big amount of different meshes (for ex. a big space ship) It has a lot of decks and dirrerent stuff inside and outside. Of course I want to have possibility to remove and add any item to/from this ship in any time.

Each mesh has its own matrix. So, when I start moving a ship I had to multiply all matrices to move all objects correctly. But If I have a lot of matrices I could not do everything in time because multiplying all matrices could take a lot of time and in that case I will have lags.

If I merge all meshes in 3ds max I loose possibility to move separate objects.

So, my question is: what is the effective render algorithm if I want to have models consists from huge amount of other objects?

I don`t want to have a monolithic ship or any other object. I want to have possibility to remove any part away in any time.

Who has the same problem, please, say which way you choose to render meshes!

### #2Yourself  Members

Posted 14 May 2013 - 02:30 AM

POPULAR

Do occlusion culling. Do not render/update the objects that are not visible.

For example the inside when you are on the outside of the ship (and vice versa) isn't visible so shouldn't be rendered/updated.

Also, if you are on the inside, only render the decks/objects that you can actually see.

Google a bit for different occlusion culling algorithms.

There is no magic bullet for this so compaire different solutions and pick the best for your situation.

Also ask yourself if you really have to move everything at any time. There is a reason you cannot do that in most (AAA) games.

### #3BlackJoker  Members

Posted 14 May 2013 - 03:34 AM

Yourself

Thanks for clarification. I forgot for occlusion algorithms, but I want to ask is occlusion will work for objects, which are inside model and not behind it?

### #4Tordin  Members

Posted 14 May 2013 - 06:35 AM

You can try out a BSP tree culling, and then start having Occlussion culling if that is needed. and i dont know how many objects you are having in your sceen, but you can easily optimize the

matrix multiplication with SIMD & Parrarlism. this will probably have a good effect for you.

But as the previous answer said, is that, there is no "common" way for this, try out some stuff and find the best solution for yourself.

"There will be major features. none to be thought of yet"

### #5Norman Barrows  Members

Posted 14 May 2013 - 08:25 AM

you really have 2 types of scenes, exterior, and interior.

for exterior, you should have just the meshes that can been seen from outside.

for interior, its basically a first person shooter level kinda thing.  there you'd only have the meshes visible from a particular area or room.

so you'd have one set of meshes for exterior, and another for each interior scene. never would you try to draw it all.

make a copy of your master model and split it up based on which scene it belongs in. then you'd have 2 basic types of drawing routines, one for exterior, and one for interior scenes. almost 2 graphic engines, one a space flight sim, and the other a first person shooter.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

### #6BlackJoker  Members

Posted 16 May 2013 - 10:59 PM

Thaks for clarifying this problem. Now its more clear.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.