gpt4 book ai didi

java - libgdx 中 VertexAttribute 构造函数的整数参数是什么?

转载 作者:行者123 更新时间:2023-11-29 07:17:59 24 4
gpt4 key购买 nike

在 libgdx Mesh, Color, Texture tutorial表示一个简单三角形的网格,每个顶点具有颜色和纹理信息,由以下方法创建:

mesh = new Mesh(true, 3, 3, 
new VertexAttribute(Usage.Position, 3, "a_position"),
new VertexAttribute(Usage.ColorPacked, 4, "a_color"),
new VertexAttribute(Usage.TextureCoordinates, 2, "a_texCoords"));

VertexAttribute 构造函数中的整数参数是什么?文档说它是编码信息所需的“组件数量”。

我将其读作每个条目使用的“顶点”数组( float 数组)中的条目数。因此,对于第一个为 3 的 VertexAttribute,这是有道理的(x、y 和 z 各一个)。但是,ColorPacked 属性有 4,但是由于颜色数据被编码为单个 float ,所以这不应该是 1 吗?最后添加纹理坐标(得到 2,这与每个顶点所需的两个浮点 u、v 坐标相匹配)。

javadoc for the VertexAttribute constructor说这个参数是:

numComponents - the number of components of this attribute, must be between 1 and 4.

注意一个较旧的问题, Whats the 3rd argument in VertexAttribute() used for in libgdx? , 覆盖了这个构造函数的第三个参数,所以我们只需要一个 SO 问题来覆盖第一个。 :)

最佳答案

VertextAttribute 构造函数的 numComponents 整数参数是 gl*Pointer 的“size”参数

  • Usage.Position -> glVertexPointer
  • Usage.Color -> glColorPointer
  • Usage.ColorPacked -> glColorPointer
  • Usage.TextureCoordinates -> glTexCoordPointer
  • Usage.Normal -> glNormalPointer

使用 ColorPacked 属性将调用 glColorPointer 的“类型”参数从 GL10.GL_FLOAT 更改为 GL11.GL_UNSIGNED_BYTE。颜色需要 4 个字节,因此您需要将“numComponents”参数设置为 4。

来源:VertexArray.bind()glColorPointer

关于java - libgdx 中 VertexAttribute 构造函数的整数参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7899353/

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