APa*_*mer 4 opengl glsl geometry-shader
此时我有一个工作顶点和片段着色器.如果我完全删除了几何着色器,那么我会得到每个顶点都有颜色的预期立方体.但是添加了几何着色器后,根本没有显示几何体.
顶点着色器:
#version 330 core
layout(location = 0) in vec3 vertexPosition_modelspace;
layout(location = 1) in vec3 vertexColor;
out VertexData
{
vec3 color;
} vertex;
uniform mat4 MVP;
void main(){
gl_Position = MVP * vec4(vertexPosition_modelspace,1);
vertex.color = vertexColor;
}
Run Code Online (Sandbox Code Playgroud)
几何着色器:
#version 330
precision highp float;
in VertexData
{
vec3 color;
} vertex[];
out vec3 fragmentColor;
layout (triangles) in;
layout (triangle_strip) out;
layout (max_vertices = 3) out;
void main(void)
{
for (int i = 0; i > gl_in.length(); i++) {
gl_Position = gl_in[i].gl_Position;
fragmentColor = vertex[i].color;
EmitVertex();
}
EndPrimitive();
}
Run Code Online (Sandbox Code Playgroud)
片段着色器:
#version 330 core
in vec3 fragmentColor;
out vec3 color;
void main(){
color = fragmentColor;
}
Run Code Online (Sandbox Code Playgroud)
从我所知道的,我的显卡支持OpenGL 3.3.而且,正如我所说.它没有几何着色器.作为数据,我传递两个GLfloat数组,其中每个都是顶点或顶点颜色.
for (int i = 0; i > gl_in.length(); i++) //note the '>'
Run Code Online (Sandbox Code Playgroud)
这个循环条件从一开始就是假的,所以你不会发射任何顶点.你最有可能的意思是i < gl_in.length()
.
归档时间: |
|
查看次数: |
1540 次 |
最近记录: |