Parallax Occlusion Mapping with Silhouettes

Normal Mapping

pom_NormalMap

Parallax Occlusion Mapping

pom_POM

Parallax Occlusion Mapping with Silhouettes

pom_POMSilhoutes

Advertisements

About chetanjags

Game Developer

Posted on May 10, 2013, in Game Development, Graphics, JustAnotherGameEngine and tagged , , . Bookmark the permalink. 4 Comments.

  1. Cool effect!
    Would you mind sharing the ideas on how it was implemented?

  2. yes sure.
    Long story short instead of just sampling the surface details (texture, height map, etc. ) at the current pixel location we do a sort of ray trace and we use the first intersection as the location to sample the surface details.
    But during practical implementation there are some challenges and few different solutions have been suggested by different people over the time. I tried few of them.
    Here are some of the references I have checked –
    1) graphics.cs.brown.edu/games/SteepParallax
    2)graphics.cs.brown.edu/games/SteepParallax/mcguire-steepparallax.pdf
    3) http://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdf

    If you want to checkout some working samples instead of research papers check –
    4) MS DirectX SDK Samples
    5) Nvidia Graphics SDK Samples

    and many more. You might wanna google some related terms like parallax mapping, parallax offset mapping, relief mapping, etc.

  3. Thanks for your references
    Would you mind sharing the details on the silhouettes corrections?

  4. Ok so proper way of doing silhouettes corrections is cone stepped parallax occlusion mapping or prism parallax occlusion mapping. Here’s one of those papers http://developer.amd.com/wordpress/media/2012/10/Dachsbacher-Tatarchuk-Prism_Parallax_Occlusion_Mapping_with_Accurate_Silhouette_Generation(SI3D07).pdf

    That been said the way I did it was a hack ( but many algos in gfx programming are a hack afterall ). The idea is to clip the pom algo at the edges more details can be found in this thread – http://www.gamedev.net/topic/427126-fundamental-flaw-with-reliefparallax-occlusion-mapping/?&hl=parallax+mapping

    I used this type of hack because I am going for tessellation anyways.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: