Parallax Occlusion Mapping (POM) is a high-end technique (and important for creating 3D configurators) for shading GPU fragments that effectively gives every Texel a height value.
Normal Mapping changes the illumination of each fragment so that it looks as if the surface is aligned in a different direction. This allows the light to play over “surface irregularities” as if they were present in the geometry. This provides a convincing result, but suffers from various limitations when viewed at close range, including:
Normal Mapping changes the illumination of each fragment so that it looks as if the surface is aligned in a different direction. This allows the light to play over “surface irregularities” as if they were present in the geometry. This provides a convincing result, but suffers from various limitations when viewed at close range, including:
- The absence of Parallax Motion. For example, the tops of the bumps (which should be closer to the camera) do not move across the field of view at a different speed than the bottom of the holes (which should be further away from the camera). This lack of relative motion reduces the effectiveness of the technique.
- The error of any form of self-occlusion. For example, when viewed at a grazing angle, a dent should close a portion of the flat surface behind the dent. Normal mapping does not provide this and you can see the entire surface regardless of the viewing angle.
- The absence of any form of self-shading. For example, a bump does not create shadows on the nearby flat surface.
Taken together, these reduce the effectiveness of Normal Mapping, so the result is less convincing from certain angles, under certain lighting conditions, and with bumps or holes of considerable depth.
Parallax occlusion mapping.
POM adds text height data separately from the normal text data. Each fragment is scanned on the graphics processor to determine the correct visual result and eliminate all of the above limitations. This leads to an extremely realistic result under many viewing conditions, at the expense of a significant GPU time.
The effect still has some limitations compared to the actual geometry:
- The silhouette of the geometry remains unchanged. At extreme viewing angles it can still be seen that the geometry has a flat silhouette. This is typically moderated by the limited use of the actual geometry to avoid a flat silhouette.
- Multi-pass rendering techniques are unusable or of reduced effectiveness due to height mismatches between passes.
- POM is sensitive to variations between the normal fragment and the face normal. Geometries in which smoothed adjacent surfaces have substantially different standards lead to poor results when using POM.
As with normal mapping, POM is expected to improve the visualization of the already acceptable geometry. It cannot be used to create the appearance of an acceptable geometry from a poor-quality geometry.
Heightmap data.
Each texel in a POM material has a single channel of heightmap data, normalized between 0.0 (countersunk in the geometry to the maximum amount) and 1.0 (increased from the geometry to the normal amount). What this exactly means depends on the material used. Typical mesh materials have 1.0 flush with the geometry, with the result that it is only possible to penetrate the geometry, never to pull it out. Base materials, on the other hand, have 0.5 at the reference base height, where 0.0 is moved below the reference and 1.0 above the reference – this is effectively achieved by extruding the soil nodes before applying the POM effect.
Heightmap data can be manually edited in a program such as Adobe Photoshop if a linear color space is used. Using a nonlinear color space results in a wrong center point and distorted height ranges. If you edit heightmap data manually, make sure you use a tool to restore the normal map data so that the two data sets remain in sync – with the two effects simulating conflicting surface details producing poor results.
Performance.
Parallax Occlusion Mapping can be very GPU intensive. We expect that users with GPUs in the lower to medium performance range will have this effect disabled. Disabling the effect is a switching of settings and simply causes the elevation data to be ignored.
Artifacts.
There are a number of possible artifacts that result from using the POM technique. POM is not a “Set and Forget” technique – content creators must design a suitable geometry, use a suitable UV mapping method, and carefully test the results. In particular, it is the responsibility of the creator to address the following issues:
- POM can make textiles visible that are outside the UV-imaged area of the texture.
- The more extreme the viewing angle and the deeper the parallax, the further outside the intended assignment the user can see.
- The simplest use of POM, which completely avoids this problem, is to use the entire area of a texture that uses texturing along both axes.
- In some cases, this requires the use of a number of additional materials, as textures that could previously be part of a texture atlas now require their own unique tile texture.
- If you increase the number of materials in this way, make sure you use a different strategy in your lower LODs to avoid inflating the number of draw calls. Disabling POM at lower LODs is a valid strategy.
- Alternatively, the content creator can use different strategies to prevent this artefact from becoming visible to the user.
- If the POM geometry is completely enclosed by another geometry so that it cannot be viewed at a sharp angle, this artifact may not be problematic.
-
-
- If the POM displacement map contains a high border with sufficient texel width, any trace heading outside the desired range will be blocked by that border.
- If the texture is not tiled, the trace can normally be blocked by the edge of the texture.
- POM is highly sensitive to the text-to-meter ratio of each fragment.
- It is critical that each texel is mapped in such a way that it is almost square and of constant size.
-
Thank you very much for your visit.
Leave A Comment