这是我的顶点着色器,我对它的期望是从纹理中获得正确的位移。它的作用是将我的飞机的每个顶点向上移动到同一水平
uniform sampler2D clouds
void main()
{
vec4 position = gl_Vertex;
vec2 uv = gl_MultiTexCoord0.st;
position.z = position.z + texture(clouds, uv.st);
gl_Position = gl_ModelViewProjectionMatrix * position;
}
答案 0 :(得分:0)
我必须用varying
声明我的位置和uv变量,只需要将纹理中的一个通道添加到Position
变量的'z'组件中。
vertex_shader = """
varying vec4 Position;
varying vec2 TexCoord;
uniform sampler2D clouds;
void main()
{
Position = gl_Vertex;
TexCoord = gl_MultiTexCoord0;
Position.z += texture2D(clouds, TexCoord.st).a;
gl_Position = gl_ModelViewProjectionMatrix * Position;
}
"""
我发现this wikibook致力于blender3D的glsl编程