in vec和out vec是什么意思
What does in vec and out vec means?
在GLSL中我不明白什么是" In "answers"out"变量,它是什么意思?以下是我从教程中复制的代码示例。
// Shader sources
const GLchar* vertexSource =
"#version 150 coren"
"in vec2 position;"
"in vec3 color;"
"out vec3 Color;"
"void main() {"
" Color = color;"
" gl_Position = vec4(position, 0.0, 1.0);"
"}";
const GLchar* fragmentSource =
"#version 150 coren"
"in vec3 Color;"
"out vec4 outColor;"
"void main() {"
" outColor = vec4(Color, 1.0);"
"}";
在"文件"作用域中声明的变量in
和out
指的是阶段输入/输出。
-
在顶点着色器中,变量声明为
in
是一个顶点属性,并且在OpenGL中由一个整数位置匹配到顶点属性指针。 -
在片段着色器中,声明为
in
的变量应该通过名称匹配顶点着色器的输出(名称相同,但out
)。 -
在片段着色器中,变量声明为
out
是一种颜色输出,并在您正在绘制的帧缓冲区中具有相应的颜色附件。
在你的顶点着色器中,你有两个顶点属性(position
和color
)用于计算片段着色器(Color
)中插入的输入。片段着色器将插入的颜色写入outColor
标识的颜色缓冲区附件。
这是不可能告诉什么顶点属性position
和color
和什么颜色缓冲outColor
与您的着色器代码相关联。这些必须在GL代码中通过调用glBindAttribLocation (...)
和glBindFragDataLocation (...)
在链接之前进行设置。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- 错误:无效的预处理指令 #i 的意思是 #if?
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- Trie*& 和 Trie** 的意思是 Same?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- typedef Vec<int, 2> Vec2i; 这个定义是什么意思?
- in vec和out vec是什么意思