As far as I know, OpenGL specifies that you cannot rely on precise rounding of vertex and edge coordinates for rasterization - which means that T-vertices may cause small artifacts: a continuous and a subdivided edge which should coincide perfectly in world space may in fact leave a small gap when rasterized.

Such an issue could appear regularly on older graphics cards with aggressive floating point optimizations or fixed-point coordinates, which accumulate rounding biases.

Is this, however, still an issue with modern graphics drivers?

Say that I could generate my meshes most efficiently with T-vertices, would it be viable to do so by default and give users an option to use closed (but sub-optimal) meshes if they observe rendering artifacts?

  • 3
    $\begingroup$ Yes it is still as much of an issue today as it was yesterday. $\endgroup$
    – joojaa
    Jul 12 '21 at 14:44
  • $\begingroup$ Perhaps if GPUs used double precision throughout vertex shaders and rasterization then it would not be an issue in practice, but as long as we're all just using single precision, there will still be cracks at T-junctions sometimes. It was not ever really about "aggressive floating point optimizations", it's fundamental to using a non-exact math representation. $\endgroup$ Jul 12 '21 at 17:06
  • $\begingroup$ The floating point representation is exact, just some of the operations on it are not. I wasn't sure whether rasterization could do entirely without these. Thank you for the clarification joojaa! $\endgroup$
    – Tau
    Aug 17 '21 at 17:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.