Sign in to follow this  
CadeF

Creating a scene graph for an Unreal T3D Map

Recommended Posts

How would I go about making a scene graph (Octree, BSP etc) for an Unreal T3D map? What I mean by that is that the map file (in my loader) only contains -Vertices -Normal -Binormal -Tangent For EACH polygon. From this, how would I go about creating a visibility testing system? Thanks :) Update: I've started on octrees. So far I have partitioned the map and split the map up into nodes in the tree. Is octrees the best method to use? [Edited by - CadeF on November 3, 2005 5:12:16 AM]

Share this post


Link to post
Share on other sites
Quote:
Original post by CadeF
How would I go about making a scene graph (Octree, BSP etc) for an Unreal T3D map? What I mean by that is that the map file (in my loader) only contains

-Vertices
-Normal
-Binormal
-Tangent

For EACH polygon.

From this, how would I go about creating a visibility testing system?

Thanks :)

Update: I've started on octrees. So far I have partitioned the map and split the map up into nodes in the tree. Is octrees the best method to use?


Compute a PVS for the level.
Enclose all vertices with a AABB, then subdivide it with regular grid, where cell size is large enough to represent average room in your environment (say 5x5x5 meters).
Then for each cell, render the whole level, giving unique colors for all other grid cells, read back front buffer and see what cells are visible from the one you render. PVS!

Share this post


Link to post
Share on other sites
Thanks, but I'm using quadtree instead. I've already got it implemented and it's pretty fast. I'm not splitting polygons that exist in more than 1 node, but letting that polygon exist in both nodes.

Looking at a wall with a lot of stuff behind it - 250 FPS
Nudging the camera a bit left, so all the stuff behind it is visible - 100 FPS

It works pretty efficiently. :)

Share this post


Link to post
Share on other sites
Quote:
Original post by CadeF
Thanks, but I'm using quadtree instead. I've already got it implemented and it's pretty fast. I'm not splitting polygons that exist in more than 1 node, but letting that polygon exist in both nodes.

Looking at a wall with a lot of stuff behind it - 250 FPS
Nudging the camera a bit left, so all the stuff behind it is visible - 100 FPS

It works pretty efficiently. :)


But this is only frustum culling.
And it can work well, on polycounts of a regular Unreal maps, with front-to back z-only pass especially.
But when you put objects in this level, and having only frustum culling, you'll face large amount of 'visible' objects.
That's why occlusion culling is important for indoor engines (even if we forget for a moment about the insane overdraw).

Share this post


Link to post
Share on other sites
Yes, this is occlusion culling, think about it. I'm looking at a wall. On it's other side, there are lots of things. I nudge the camera to the left of the wall and those things are rendered.

Share this post


Link to post
Share on other sites
Quote:
Original post by CadeF
Yes, this is occlusion culling, think about it. I'm looking at a wall. On it's other side, there are lots of things. I nudge the camera to the left of the wall and those things are rendered.


...
So? :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this