Visibility Culling

When virtual world become complex and big, the performance of rendering will decrease.  So Visibility Culling is come for this problem, the resolve method is try to find out only the potentially visible objects to draw. 

See picture above, a room have a window and a door, only a bed in it. Assume you stand in room, the possible visible objects is room self ( bed, walls ), and seeing things through window & door. So this is the Visibility Culling algorithm in Awakening: Section + PortalThe room interior space is Section, the window & door is Portal.

Section is described by a series planes (a surface can be look upon a plane) in Awakening. To create section, hold Ctrl & left click to select a series surfaces ( in above room, they should are room's four wall + floor + ceiling ), then select menu: Create > Section.

Portal is described by a rectangle in Awakening, portal is lie at surface. To create portal, click the drop down arrow right at in toolbar, select 'Portal' in popup menu. Then left - click & drag in surface, you will see a blue rectangle sizing along with your mouse move. You also can adjust portal use standard Move/Rotate/Scale command of Main Toolbar

After creating sections & portals, you need compile scene ( press Ctrl + F7 ) to view right result.

In sometime, some surface will be invisible, this caused by section's pane too close with surface. To solve this, select View > List Objects... in main menu, then select correct section in Object List Dialog. Then select correct pane (the selected pane shows in green in viewport) in Section Panel:

Slightly adjust plane's Distance to bigger or smaller. Don't forget compile scene to view result.