【发布时间】:2016-06-22 03:11:30
【问题描述】:
我有两个这样的着色器:
const char* vertexShaderData =
"#version 450 \n"
"in vec3 vp;"
"in vec3 color;\n"
"out vec3 Color;\n"
"void main(){"
"Color=color;"
"gl_Position = vec4(vp, 1.0);"
"}";
const char* fragShaderData =
"#version 410\n"
"uniform vec4 incolor;\n"
"in vec3 Color;"
"out vec4 outColor;"
"void main(){"
"outColor = vec4(Color, 1.0);"
"}";
我知道每个顶点都会调用每个着色器。
- 我的
vertexShaderData中的in参数在哪里获取它们的值?在代码中,我没有指定 vp 是什么或颜色是什么。在第二个着色器中,我知道invalue 来自第一个着色器的out值。但是最初的ins 是从哪里来的呢? - 关于
fragShaderData的out值:这个值是如何使用的?换句话说,OpenGL 是如何知道这是一个 RGB 颜色值并知道用这种颜色绘制三角形的?
【问题讨论】:
-
A rather good OpenGL tutorial 应该能解释您需要的大部分内容。
-
他们从你用
glbind绑定到GL上下文的缓冲区中获取它们 -
@G.M.好的,谢谢,我使用的是 open.gl