How to split ABT tree for portals

Started by
12 comments, last by trs79 16 years, 11 months ago
Promit:
Oh yeah, this one. Sadly, the game was sacked. Oh well.

We're using billion face data sets today, streamed over Myrinet fibre channels from a SAN, and rendered to Barco CAD walls with stereo and head tracking :)

Quote:
Sorry if I took your ABT out of context Yann, I'm so new to this I'm just trying to get a grasp of all the concepts available. Curious, are ABT's still best for narrowing down large amounts of outdoor geometry for frustum culling? Would the best system be to use that for a large outdoor level then switch to something else for inside? Eventually I do plan on having much larger levels so spacial efficiency will most likely be an issue, thanks.

The best choice of a spatial structure depends a lot on the way you design your engine, and on the type of 3D geometry you use. ABTs, and Kd trees in general, are designed for a certain type of geometry. The idea behind them was to eliminate the need to diferentiate between outdoor and indoor gemoetry, and to avoid having to conform the modelling to some arbitrary limitations such as portals.

But if you have a very closed, room-like geometry, with sporadic outdoor parts (read: Doom3-like), then portals and quadtree terrain rendering might still be the best approach.

Tell us a little bit more about your levels or scenes, and we can see what might be the best fit for you.
Advertisement
!!!!!!! That image is amazing, not to mention a dataset in the billions of triangles! I have a lot to learn that's for sure! Thanks for the interest, you all are life savers for beginning game designers like me :)

A typical level will be a combination of indoor and outdoor, mostly resembling urban neighborhoods/cities. My test level right now consists of a cul-de-sac neighborhood, with one main house at the end of the circle, the street, and several side houses with fence and backyards.

Players can start out at any point in the neighborhood, so they very well could start outside, run into a house, explore, go back outside, go into another house, etc. I guess that's why I'm a bit confused as to how to proceed since I don't have the luxury of keeping the player in a nicely confined house.

That's why I thought if the player was inside of a house, maybe a good way to go would be to use an ABT to quickly cull away the rest of the neighborhood and even somehow the rest of the rooms in the house to quickly isolate which room the player was in. Then I thought about using portals from that point on, but only if the player was inside the house. If they were outside, ABT would be all that was used.

However triangle count even with shadows and the entire neighborhood in the frustum was 400K, so maybe I don't even need partitioning as mentioned, however when I do get larger datasets (i.e. an entire city is a level) I would like to have some kind of an action plan. I hope that gives some better info, thanks.
As Yann mentioned ABTrees remove the need to differentiate between indoor and outdoor scenes, I think if you want a (nearly) good-for-all solution then go for my second point I gave earlier [smile],

Quote:2) Consider that you're house is static geometry, as is the urban world around it, you could simply partition the scenery and the house under the same ABT. Modern GFX cards are powerful beasts and depending on the complexity of the house you may even find your entire house is contained within one leaf node of the ABT and can be sent to the GFX card all in one batch.
Sounds good, thanks dmatter and everyone for the advice

This topic is closed to new replies.

Advertisement