Upload
g003872a
View
216
Download
0
Embed Size (px)
Citation preview
7/27/2019 Parallax Occulsion Mapping Guy Gildersleve g003872a
1/7
Parallax Occlusion Mapping
Guy Gildersleve g003872a
Parallax Occlusion mapping (POM for short) is an enhancement of parallax mapping which like
normal mapping creates additional apparent Depth and thus greater realism with a less hit on
performance1
Parallax Occlusion mapping goes one step further with the parallax mapping technique that is
used to fake detail and depth within texture through the use of a displacement maps, instead of
generating more geometry it fakes the detail making the object look more detailed than it
actually is. The main advantage over normal mapping is to correctly change perspective and
with the use of self-occlusion and shadowing in real time, without sacrificing processor cycles
the same effect would achieve with actual 3d geometry.2POM was first documented in 2004 by
Zoe Brawley and Natalya Tatalya Tatarchuk in ShaderX33.
4
The advantage of using POM over Normal Mapping
1ShaderX3: Advanced Rendering with DirectX and OpenGL Page 127
2Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows Page 8
3ShaderX3:Advanced Rendering with DirectX and OpenGL Page 135
4 Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows Page 9
http://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion#v=onepage&q=parallax%20occlusion&f=falsehttp://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion#v=onepage&q=parallax%20occlusion&f=falsehttp://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion#v=onepage&q=parallax%20occlusion&f=falsehttp://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion#v=onepage&q=parallax%20occlusion&f=falsehttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion#v=onepage&q=parallax%20occlusion&f=falsehttp://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion#v=onepage&q=parallax%20occlusion&f=falsehttp://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion#v=onepage&q=parallax%20occlusion&f=falsehttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion#v=onepage&q=parallax%20occlusion&f=falsehttp://developer.amd.com/wordpress/media/2012/10/Tatarchuk-POM.pdfhttp://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion#v=onepage&q=parallax%20occlusion&f=falsehttp://books.google.ca/books?id=DgMSb_10l7IC&pg=PA135&dq=parallax+occlusion#v=onepage&q=parallax%20occlusion&f=false7/27/2019 Parallax Occulsion Mapping Guy Gildersleve g003872a
2/7
Though using Parallax Occlusion mapping doesnt mean that normal maps arent required
anymore as they are still used to help with the calculation of POM. The basic idea behind
Parallax occlusion mapping is for each polygon mesh we would like to simulate a more complex
shape, a higher polygon version, for example if you wanted bricks to pop out, you could get a
simple polygon plain surface consisting of 2 triangles as a low poly mesh and then a higher
polygon surface showing 3d representation of those bricks to generate normal maps and heightmaps to project onto that 2 triangle surface and give the illusion of it being a lot higher than it
actually is, the height map values range from 0 to 1 with 0 being the deepest and 1 being the
highest. This is used in conjunction with the players/cameras viewing direction to calculate how
the effect should look like.
A diagram showing how POM mapping works5
If implemented correctly the shader and texture of the model should look 3D and highly detailed
that will actively change depending on the viewers direction and look almost like the higher
polygon model its designed to look like without the higher performance hit on the system.
Parallax Occlusion mapping is now it is supported by most modern engines such as The Unreal
Engine6Unigine7CryEngine38Source engine9and Ubisofts Anvil Next Engine10just to name a
few, along with many various game mods like for Doom 3 11and Elder Scrolls IV: Oblivion12.
5http://images.gamedev.net/columns/hardcore/pom/V_volume_intersection.jpg
6 http://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.html
7http://unigine.com/products/unigine/features/
8http://mycryengine.com/index.php?conid=8 Click on Visuals.
9https://developer.valvesoftware.com/wiki/Parallax_mapping
10NVidia Conference 16th October
11http://www.moddb.com/mods/wulfen-texture-pack
12http://obge.paradice-insight.us/wiki/POM_(Module)
http://images.gamedev.net/columns/hardcore/pom/V_volume_intersection.jpghttp://images.gamedev.net/columns/hardcore/pom/V_volume_intersection.jpghttp://images.gamedev.net/columns/hardcore/pom/V_volume_intersection.jpghttp://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.htmlhttp://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.htmlhttp://unigine.com/products/unigine/features/http://unigine.com/products/unigine/features/http://mycryengine.com/index.php?conid=8http://mycryengine.com/index.php?conid=8http://mycryengine.com/index.php?conid=8https://developer.valvesoftware.com/wiki/Parallax_mappinghttps://developer.valvesoftware.com/wiki/Parallax_mappinghttp://www.examiner.com/article/ubisoft-shows-off-current-to-next-generation-assassin-s-creed-comparison-imageshttp://www.examiner.com/article/ubisoft-shows-off-current-to-next-generation-assassin-s-creed-comparison-imageshttp://www.examiner.com/article/ubisoft-shows-off-current-to-next-generation-assassin-s-creed-comparison-imageshttp://www.moddb.com/mods/wulfen-texture-packhttp://www.moddb.com/mods/wulfen-texture-packhttp://www.moddb.com/mods/wulfen-texture-packhttp://obge.paradice-insight.us/wiki/POM_(Module)http://obge.paradice-insight.us/wiki/POM_(Module)http://obge.paradice-insight.us/wiki/POM_(Module)http://obge.paradice-insight.us/wiki/POM_(Module)http://www.moddb.com/mods/wulfen-texture-packhttp://www.examiner.com/article/ubisoft-shows-off-current-to-next-generation-assassin-s-creed-comparison-imageshttps://developer.valvesoftware.com/wiki/Parallax_mappinghttp://mycryengine.com/index.php?conid=8http://unigine.com/products/unigine/features/http://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.htmlhttp://images.gamedev.net/columns/hardcore/pom/V_volume_intersection.jpg7/27/2019 Parallax Occulsion Mapping Guy Gildersleve g003872a
3/7
13The Low poly version of the model next to the higher poly version
Though isnt without its flaws, while it comes very close to achieving its higher polygon
counterpart there are still various limitations that hold it back, for example its advisable to use it
on flat surfaces as more curved surfaces squash and limit the illusion somewhat. This is due to
the nature of how parallax occlusion mapping is generated through the depth layers of the
material. These depth layers represent the different height coordinates from the height and
normal maps.
14The difference between POM being used on a flat surface and a curved surface notice the
layers visible on the sphere along with the distortion of the created on the material.
13Created within 3ds Max
14POM represented in UDK
7/27/2019 Parallax Occulsion Mapping Guy Gildersleve g003872a
4/7
POM also requires the various maps in question to use the full UV space of the model, failing to
do so breaks up the materials with nothingness before tiling again. However this is also a
strength as if all the UV space of the model is taken up with the texture the Parallax effect will
effectively tile it for you, making it seem like it continues to go on constantly, it also lines up to
the save duplicate of the same model perfectly.
15POM close up showing the layers issue and showing the tile parallax affect where if there is
empty space within the UV it shows that as well.
The main issue with POM is the layering effect, when the player or camera gets close to it at a
certain angle you can see how the effect is being generated with these layers from the height
map, Epic Games calls this the Stepping Pancake16.
17Epic Games showing the same issue
15POM issues in UDK
16http://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.html
17http://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.html
http://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.htmlhttp://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.htmlhttp://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.htmlhttp://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.htmlhttp://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.htmlhttp://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.htmlhttp://udn.epicgames.com/Three/rsrc/Three/DevelopmentKitGemsParallaxOccludedMapping/ParallaxOcclusionSteppingProblem.jpghttp://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.htmlhttp://udn.epicgames.com/Three/DevelopmentKitGemsParallaxOccludedMapping.html7/27/2019 Parallax Occulsion Mapping Guy Gildersleve g003872a
5/7
Parallax Occlusion Mapping isnteasy on the system either, while it is less than actual geometry
it does require a lot of material instructions to go through and read to achieve the effect while
normal mapping on its own is considerably less than POM.
18The amount of Material Instructions POM has to go through to achieve the effect. Note this is without Self
Shadowing capabilities.
Though there is other alternatively to Parallax Occlusion Mapping, one being plain normal
maps, the other is through the use of Tessellation which actually builds the geometry within the
engine from the normal and height maps onto the low poly. This has the advantage of still being
considerably less than the real high poly model that the normal maps and height maps where
generated from (which can be in the millions of Polygons) while keeping the details that came
on the normal and height maps.
19Tessellation, POM and Normal Mapping next to each other with UDK
18Self-Created POM in UDK
19Self-Created in UDK comparing the differences between Tessellation, POM and Normal Mapping
http://i1303.photobucket.com/albums/ag153/guy_gildersleve7/ParallaxTessellationNormal2_zps898560dd.pnghttp://i1303.photobucket.com/albums/ag153/guy_gildersleve7/ParallaxInstructionsUDK_zps63c3e2b7.png7/27/2019 Parallax Occulsion Mapping Guy Gildersleve g003872a
6/7
Tessellation can be adaptive between distances between the player and the mesh reducing
when the player isnt close and increasing it the closer the player gets so no detail is missing.
Though the problem with this is that its creating a lot more physical geometry compared to the
other two which can stress the system out more.
20Tessellation, POM and Normal Mapping next to each other with UDK in wireframe view.
21Normal Mapping in UDK Material instructions.
20Self-Created in UDK comparing the differences between Tessellation, POM and Normal Mapping
21Normal Mapping in made in UDK
http://i1303.photobucket.com/albums/ag153/guy_gildersleve7/Normal_instructionsUDK_zpsede07add.pnghttp://i1303.photobucket.com/albums/ag153/guy_gildersleve7/ParallaxTessellationNormal2polycount_zps637662fa.png7/27/2019 Parallax Occulsion Mapping Guy Gildersleve g003872a
7/7
22Tessellation in UDK Material instructions
Normal Mapping is the less resource intensive than both of them however it lacks any real depthbetween the three appearing flat and fake at times. While Tessellation has the physical detail it
can take up quite a bit more resource. Then Parallax Occlusion Mapping which brings the best
of both worlds, being not as stressful on the system and giving the sense of 3D geometry there
where there is none, however with the downsides of the pancakelayering issue and the use of
it being on flat surfaces. Where tessellation and normal mapping can be used on more different
types of surfaces.
Parallax Occulsion mapping is a powerful technique when used properly can be a powerful tool
to use espically when there is a flat mesh that requires the detail that normal mapping simply
cant supply and that tessellation would be too much to use on the system. POM seems like a
nice middle ground to choose to get that detail in there despite its flaws.
Parallax Occulsion mapping is something that may pop up a lot more in this next coming upgeneration of consoles and games, its certainly a good skill to possess for the future espically
when more and more game engines adding support.
22Tessellation made within UDK
http://i1303.photobucket.com/albums/ag153/guy_gildersleve7/TessellationInstructionsUDK_zps00840a2b.png