我正在为一个项目在Java(lwjgl)中做一些OpenGL的东西,其中一部分包括导入OBJ格式的3D模型。一切看起来好吧,直到我尝试顶点替换,然后模型分解,你可以看到他们通过。 这是来自搅拌机的苏珊娜(Suzanne),用完全黑色的纹理(为了能见度)映射了UV。在FRAG着色器,我加入了一些白色取决于其正常和世界上方向向量之间的片段角度的片段:顶点位移中断网格
到目前为止好。但是当我在相同的顶点上应用一个小的Y分量位移时,我期望看到这些面的“伸展”向上。相反,出现这种情况:
顶点着色器:
#version 150
in vec3 position;
in vec2 texCoords;
in vec3 normal;
void main()
{
vertPosModel = position;
cosTheta = dot(vec3(0.0, 1.0, 0.0), normal);
if(cosTheta > 0.0 && cosTheta < 1.0)
vertPosModel += vec3(0.0, 0.15, 0.0);
gl_Position = transform * vec4(vertPosModel, 1.0);
}
片段着色器:
#version 150
uniform sampler2D objTexture;
in vec2 texcoordOut;
in float cosTheta;
out vec4 fragColor;
void main()
{
fragColor = vec4(texture(objTexture, texcoordOut.st).rgb, 1.0) + vec4(cosTheta);
}
请在你刚刚投票之前告诉我如何改善我的问题。不要成为懦夫。 – peanutops