Jump to content
  • Advertisement
  • entries
  • comments
  • views

Parallax Occlusion Mapping

Sign in to follow this  
Jason Z


I have been experimenting with Parallax Occlusion Mapping over the last couple of days. It is a very interesting algorithm for reducing geometry processing by encoding the surface information into a texture and the details are figured out in the pixel shader.

This of course reduces vertex cost and increases pixel cost, which most of the time is the opposite of what you want to do [smile] but it is still a pretty cool trick to have at your disposal.

I decided to get the parallax portion of the shader up and running first. My first go at it was alright, the second and third were much better. Finally, I compared my implementation with that of Natalya Tatarchuk from ATI (a reference implementation is in the DirectX SDK). There were a surprising number of similarities, but I guess if you are trying to do the same thing then there is a likely similarity in the possible solutions.

Here is a screenshot of the current iterative implementation:

Sign in to follow this  


Recommended Comments

Wow, that looks amazing. My only gripe would be that in the foremost part of the image the height seems a little granular, probably because of the resolution of the texture or something.

Awesomeness, nonetheless. What kind of FPS are you getting at this point?

Share this comment

Link to comment
You are correct, the scale that I apply to the height read out of the texture is a little bit too coarse. It was actually more for viewing in the snapshot than anything else.

As far as performance goes I am not really sure. I am using an iterative approach with an SM3.0 implementation, but I haven't been able to run it on SM3.0 hardware yet - only the reference rasterizer. My home machine has a GF6200 in it, so it should actually make me optimize quite a bit [smile]!

Share this comment

Link to comment

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
  • Advertisement

Important Information

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

GameDev.net 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!