How does it happen?When visualizing a surface with a low-angle camera, visual artefacts might appear. This is due to the lighting computation which is done per vertex. In that case, the standard OpenGL lighting mode is used. The OpenGL lighting model is hard-coded in the graphics card and works as follows: given the color of the three vertices, the color of pixels within a triangle is computed as a linear combination of the color at the three vertices of the triangle. Of course, it is an approximation of the real computation. Below is an example showing how white stripes are triangle-dependent: |
||||||||
|
||||||||
This visual artefact might be removed by using an advanced material
(such as a CgFX material) because the texture fetch is performed at
pixel level, and not at vertex level. For detailed information about
advanced materials, refer to the Version 5 - Real Time Rendering
User's Guide. The pictures below show how the visual artefact disappears when applying advanced materials: |
||||||||
|
||||||||
Decreasing the
sag value (which makes the tessellation more accurate) reduces the
visual artefact because there are more triangles, these triangles are
smaller and therefore, the density of vertices is higher.
However, if you keep on zooming in, this visual artefact will reappear when the camera is getting closer to the mesh. |
||||||||
How to solve this?The visual artefact can be reduced be modifying the tessellation settings (i.e. the 3D accuracy and the curves' accuracy ratio) and by reducing the material reflectivity. |