Sign in to follow this  
jeremy_huang

Parallax Occlusion Mapping questions

Recommended Posts

Is this published other than in the book ShaderX3? I emailed the original author (not expecting answer soon, and can't find Zoe Brawley's email): 1) on page 145, the line: float fParallaxLength = -sqrt( 1- vViewTS.z*vViewTS.z ) / vViewTS.z ; The value of the above seems to be 1/tan(alpha). Assumingly |V| is fHeightScale, then the actual parallax length should be fHeightScale*(1/tan(alpha), which is formula 2.5.5 2) Secondly, on page 147, a parallax vector is passed to ps_main() Is this parallax vector the average of the four parallax vectors from each corner of the quad being shaded? I really would appreciate an updated article or alternate sources

Share this post


Link to post
Share on other sites
Quote:
Is this published other than in the book ShaderX3?

Michael Donnelly introduces (?) Parallax Occlusion Mapping in GPU Gems2 as well. I don't know if it's the same as X3's though. It's actually available online at NV's site: http://download.nvidia.com/developer/GPU_Gems_2/GPU_Gems2_ch08.pdf
(I know that the paper doesn't refer to the algo as parallax occlusion mapping, but both ATi's powerpoint on their Toy Shop demo for the X1000 cards and NV's SIGGRAPH presentation of the "hot-chick" demo for the GF7000 cards refer to it as such)

Share this post


Link to post
Share on other sites
I suppose Parallax Occlusion Mapping is the same as Parallax Mapping (aka Offset Mapping). If that's the case here are some links:

- The original white paper by Terry Welsh (hosted here)
- A Delphi3D.net article by Tom Nuydens An Overview Of Bump Mapping Techniques, with a nice picture of Parallax Mapping (see Figure 8)
- The original (re-)discovery of Parallax Mapping on OpenGL.org forums (I believe Mogumbo is Terry Welsh, but I'd have to check to be certain)

Share this post


Link to post
Share on other sites
Hi, If you download the ATI SKD you will find that POM is included as both a document explaining how it works(well it could go into more detail but it's decent) and a rendermonkey implementation.

1) perhaps they just assume height is 1? I dunno they did not explain the logic behind that in the docs.
2) it is interpolated in the pixel shader across the triangle.

POM isn't the same as standard parallax mapping and it isn't the same as that nvidia distance mapping which uses 3D textures either.

I have implemented POM and per-pixel displacement mapping with distance functions in GLSL and found POM to run better, this is on a nvidia 6800.

Share this post


Link to post
Share on other sites
Quote:
Original post by Devilogic
I suppose Parallax Occlusion Mapping is the same as Parallax Mapping (aka Offset Mapping).


POM is intended to be a more accurate, higher quality version of PM.

Share this post


Link to post
Share on other sites

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

Sign in to follow this