gpt4 book ai didi

opengl - OpenGL:布局限定符?

转载 作者:行者123 更新时间:2023-12-03 14:52:11 25 4
gpt4 key购买 nike

所以我一直在学习一些OpenGL,要花很多时间,而且我只是一个初学者,但是我不理解GLSL中的“布局限定符”。

所以像这样:

layout (location = 0) in vec3 position;

在一个简单的顶点着色器中,例如:
#version 330 core
layout (location = 0) in vec3 position; // The position variable has attribute position 0

out vec4 vertexColor; // Specify a color output to the fragment shader

void main()
{
gl_Position = vec4(position, 1.0); // See how we directly give a vec3 to vec4's constructor
vertexColor = vec4(0.5f, 0.0f, 0.0f, 1.0f); // Set the output variable to a dark-red color
}

我了解例如vec4(因为多数民众赞成去片段着色器)。例如,vertexColor是有意义的。

但是也许我不理解“位置”,从这个意义上说这到底意味着什么?有人愿意解释吗?老实说,opengl Wiki对我没有帮助。

但是也许我误解了什么是顶点着色器(当然仍然不确定管道)。但是据我了解,顶点规范是我们要做的第一件事吗? (如果需要,则包含顶点/索引),并将其存储到VAO中。

那么顶点着色器正在与每个单独的顶点交互? (我希望)因为那是我的理解方式?

最佳答案

没错,每个顶点都会执行顶点着色器。

顶点由或由多个属性(位置,法线,纹理坐标等)组成。

在CPU端,当您创建VAO时,您通过说“每个缓冲区中的数据将是属性0,其旁边的数据将是属性1,等等”来描述每个属性。请注意,VAO仅存储此人的信息。实际的顶点数据存储在VBO中。

在顶点着色器中,具有布局和位置的行只是说“获取属性0并将其放在名为position的变量中”(该位置代表属性的编号)。

如果正确完成了两个步骤,则应该在变量position中找到一个位置:)是否更清楚?

关于opengl - OpenGL:布局限定符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33493709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com