如何用细分评估着色器定位顶点为完整球体?卦限球方向异常
细分评估着色器生成球体卦限的定向问题
我距离解决问题已近在咫尺:目前可以通过细分评估着色器生成球体的一个卦限,但无法将它们正确定向以组成完整球体。
第一次尝试:所有卦限堆叠成单个卦限
我发现归一化细分坐标对将新顶点重新定位到球面上十分重要,但这次所有卦限球堆叠在了一起:
#version 460 core // Triangles layout (triangles, equal_spacing , ccw) in; layout(location = 0) uniform mat4 modelMatrix; layout(location = 1) uniform mat4 camMatrix; void main() { vec3 pos = normalize(gl_TessCoord); gl_Position = camMatrix * modelMatrix * vec4(pos, 1.f); }
生成效果:所有卦限球堆叠为单个卦限

第二次尝试:位置正确但定向错误
这次调整后卦限球的位置已处于正确区域,但仍无法正确定向以组成完整球体:
#version 460 core // Triangles layout (triangles, equal_spacing , ccw) in; layout(location = 0) uniform mat4 modelMatrix; layout(location = 1) uniform mat4 camMatrix; void main() { vec4 pos0 = gl_in[0].gl_Position; vec4 pos1 = gl_in[1].gl_Position; vec4 pos2 = gl_in[2].gl_Position; vec3 pos = normalize(gl_TessCoord) + pos0.xyz + pos1.xyz +pos2.xyz; gl_Position = camMatrix * modelMatrix * vec4(pos, 1.f); }
生成效果:卦限球位置正确,但定向错误

注:尚未为场景添加光源,先优先解决球体生成问题,图片对比度不足请见谅。
内容的提问来源于stack exchange,提问作者ModernEraCaveman
相关产品推荐
相关产品推荐

