火狐显示网站开发,东莞外贸网站建设哪家好,网站建站常见问题,用游戏人物做网站属于侵权吗细分 Tessellation
Tessellation#xff08;细分#xff09;是计算机图形学中的一种技术#xff0c;用于在渲染过程中提高模型表面的几何细节。它通过在原始图元#xff08;如三角形、四边形或补丁#xff09;之间插入新的顶点和边#xff0c;对图元进行细化分割#x…细分 Tessellation
Tessellation细分是计算机图形学中的一种技术用于在渲染过程中提高模型表面的几何细节。它通过在原始图元如三角形、四边形或补丁之间插入新的顶点和边对图元进行细化分割从而生成更复杂、更多细节的几何形状。
在现代图形管线中细分通常由特定的硬件单元——细分着色器Tessellation Shader支持。细分过程通常包括以下阶段 控制细分级别应用可以通过 glPatchParameterfv 等函数来指定每个补丁的默认细分级别决定如何增加额外的顶点。 细分控制着色器Tessellation Control Shader/ Hull Shader该着色器可以动态地为每个补丁生成不同的细分参数并重新组织补丁的顶点数据输出到下一个阶段。 插值器Tessellator根据细分控制着色器提供的参数对输入的图元进行细分操作生成更多的顶点和新的图元。 细分评估着色器Tessellation Evaluation Shader/ Domain Shader针对插值器生成的每个新顶点运行此着色器计算其最终的位置和其他属性。
通过细分技术可以在保持较低内存占用的同时极大地提高模型表面的视觉细节尤其是在渲染复杂曲面和大规模场景时效果尤为显著。
设置OpenGL的曲面细分阶段中的某些参数
void glPatchParameterfv( enum pname, constfloat *values );pname: 该参数指定了要设置哪个参数。当前仅支持的值为 GL_PATCH_DEFAULT_OUTER_LEVEL 和 GL_PATCH_DEFAULT_INNER_LEVEL它们分别用于定义补丁的默认外层和内层细分级别。values: 指向浮点数数组的指针。这些值的数量和含义取决于所指定的 pname。对于细分级别它应该是一个包含四个元素xyzw的数组表示细分级别。
在细分语境下这些参数决定了当补丁被 GPU 的细分硬件阶段细分时沿着每个边进行多少段或“细分”。