gpt4 book ai didi

java - libgdx 中使用的 VertexAttribute() 中的第三个参数是什么?

转载 作者:行者123 更新时间:2023-11-29 22:26:26 25 4
gpt4 key购买 nike

嘿,我正在浏览 libgdx 的 wiki 上的基本教程,我被这行弄糊涂了

new VertexAttribute(Usage.Position, 3, "a_position"));

字符串“a_position”有什么用?

最佳答案

Mesh 类适用于 OpenGL ES 1.x 和 2.0。在 OpenGL ES 1.x 中,您使用固定功能管道(无着色器)。这里的属性没有任何用处。在 OpenGL ES 2.0 中,您可以编写所谓的顶点和 fragment 着色器。如果您将一个网格(或者更确切地说是它的顶点)发送到您的顶点/fragment 着色器对,您的着色器必须有一种方法来识别特定的顶点属性,比如顶点位置、纹理坐标、颜色等等。

着色器是用一种称为 GLSL 的语言编写的。顶点着色器可能如下所示:

attribute vec4 a_Position;
attribute vec4 a_Normal;
attribute vec2 a_TexCoord;

uniform mat4 u_projView;

varying vec2 v_texCoords;
varying vec4 v_color;

void main() {
v_color = vec4(1, 0, 0, 1);
v_texCoords = a_TexCoord;
gl_Position = u_projView * a_Position;
}

如您所见,有一些所谓的属性与 libgdx 中的 VertexAttributes 完全相同。因此,第三个参数是在着色器中使用的 VertexAttribute 的名称(如果您为了方便而不是直接使用 GLES 2.0 函数而使用它,那么 libgdx 中的 ShaderProgram 也是如此)。

嗯,马里奥

关于java - libgdx 中使用的 VertexAttribute() 中的第三个参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5814927/

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