Advertisement Jump to content


This topic is now archived and is closed to further replies.


if (3D_engine != portals ) new_engine = ?

This topic is 6886 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

To create a first person game (or a walktrough app) we need a HSR engine to Remove Hidden Surfaces (we cannot render thousands of polygons if only a fraction of them is visible). One of the most elegant and used solution is the portal engine; this solution however requires an editor to create the world and a human to create portals (it seems that auto-portal compilers are difficult to be implemented and have limitations). I'm testing another solution based on octree. I perform, as first, a view-frustum culling against octree. If a cell is visible I continue to sub-cells but if it's outside the frustum I mark as invisible and continue with other cells. I visit the octree in a approsimated near-to-far order and for every visible cell I consider every polygon in the cell. I mark the polygon as rendered, add to the list and draw it. I compute the shadow-frustum of the polygon and cull every (visible) cell inside the frustum. Of course it's not possible to consider every visible polygon as an occluder, so I choose a polygon as a 'good' occluder if the solid angle (of its shadow) is greater than a certain threshold... The algorithm works and it was simple to be implemented but I have not tested it with a very complex environment yet. Its main advantage is that it does not require special editor and we have simply to insert polygons (passing their vertices to the insertion function). The deletion of polygons is fast too so we can use dynamic objects. I think that this algorithm is very simple but I've found no topic on the argument (only BSP,portals,BSP,portals, My question : is it useful or I should use a standard portal engine instead of waste my time? If is there anyone that has tested these tecniques can report me his experience ? Is there anyone that know alternative tecniques ? P.S.: I hope you've understood my bad english! >Andrea< Edited by - Andrea on 3/11/00 2:55:04 PM

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!