Jump to content
  • Advertisement
Sign in to follow this  
Jan K

Mesh Subdivision for optimal Ambient Occlusion

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

Hi I have implemented an application to test ambient occlusion. Results are nice so far, but my mesh is very low-res, so that the lighting is not good enough. I calculate ambient occlusion per vertex right now. So for more detail, i need to divide my mesh into smaller polygons. In GPU Gems 2 i read, that Stalker uses AO and that they used an algorithm to insert vertices only at certain positions to get an optimal approximation with as few additional polygons as possible. Now i have no experience with mesh optimization algorithms, i only know that there are different algorithms for different tasks. Usually when one talks about "mesh optimization", he means to reduce the number of polygons. Therefore my searches on Google were not successful. Therefore my question is: Does anyone know an algorithm for this task? Maybe just a keyword, that i can look up in Google? Or can someone explain to me, what i need to do to achieve the desired result? My idea is, that for an optimal subdivision, every triangle in the resulting mesh should have roughly the same area and it should be compact. That means, it should not be a long "needle" triangle. Is this assumption correct? Any hints, ideas, links are much appreciated. Jan.

Share this post


Link to post
Share on other sites
Advertisement
Polys greater than X area get tesselated, and only if the occlusion level varies across that poly. I'm guessing here.

Needle polys shouldn't be a problem if the mesh is modeled correctly.

Share this post


Link to post
Share on other sites
IIRC the algorithm is basically what Slackweed described.

Try searching for "Adaptive subdivision radiosity" or "Mesh Substructuring" (without the quotes). I think this is what the algorithm you described is called.

Hope that helps.

HellRaiZer

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!