programming hints
OpenGL correctness hints
Chapter 5 51
OpenGL correctness hints
Hints provided in this section are intended to help you correctly use HP’s
implementation of OpenGL.
4D values
When specifying 4D values, such as vertices, light positions, etc, if
possible supply a w value that is not near the floating point limits of
MINFLOAT or MAXFLOAT. Using w values near the floating point limits
increases the likelihood of floating point precision errors in calculations
such as lighting, transformations, and perspective division.
Also, performance will be best when 4D positions are normalized such
that w is 1.0.
For best accuracy and performance, if you want to specify some 4D
position like (0.0, 0.0, 5e10, 1.5e38), instead use the equivalent
normalized position (0.0, 0.0, 3.33e-28, 1.0).
On HP Visualize fx devices only, if a light position must be specified with
a w value that is near the floating point limits, consider setting
HPOGL_LIGHTING_SPACE=EC
to ensure that lighting occurs in Eye Space. This will eliminate an extra
transformation of the light position, giving the best possible solution.
texture coordinates
When using non-orthographic projection, keep in mind the texture
coordinates will be divided by w as an intermediate calculation. HP’s
implementation of OpenGL estimates that for VMD, the texture
coordinates used in perspective projections will have only five significant
digits of precision. Therefore, when you have texturing close to a window
edge and the decomposition of the primitive causes the vertices to have
very closely-spaced texture coordinates after perspective projection, you
may see loss of texturing precision. This loss of precision may make the
texture primitive seem locally smeared.
OGLImp.book Page 51 Tuesday, February 14, 2006 9:15 AM