Why do we need floating point tessellation level since the hardware does not render partial triangles? An answer is that floating point tessellation levels combined with fractional_even_spacing and fractional_odd_spacing allow smooth transition between different levels of tessellation (useful for LOD algorithms). Layout(triangles, fractional_odd_spacing) in Layout(triangles, fractional_even_spacing) in The tessellation spacing modes are defined in the tessellation evaluation shader with the following syntax in the case of a triangle patch: Tessellation level of 8 leads to 9 different segments for fractional_odd_spacing (yellow) Tessellation level of 7 leads to 7 identical segments for fractional_odd_spacing (yellow) For example, with fractional_odd_spacing, a tessellation level of 7.0 will produce 7 identical segments while a tessellation level of 8.0 will produce 9 different segments (7 identical + 2 smaller ones). With these modes, segments can be identical or not depending on the tessellation level. This is not the case with fractional_odd_spacing and fractional_even_spacing. I said that equal_spacing divides an edge in n identical segments. Example: a level of 3.75 will be rounded up to 4 and the edge will be divided in 4 segments. fractional_even_spacing: the tessellation level is clamped to the range and then rounded up to the nearest even integer n.Example: a level of 3.75 will be rounded up to 5 and the edge will be divided in 5 segments. fractional_odd_spacing: the tessellation level is clamped to the range and then rounded up to the nearest odd integer n. Example: a level of 3.75 will be rounded up to 4 and the edge will be divided in 4 identical segments.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |