gpt4 book ai didi

android - OpenGL ES 2 : Passing scalar vertex attributes to shader program

转载 作者:搜寻专家 更新时间:2023-11-01 08:50:57 25 4
gpt4 key购买 nike

据我所知,每个顶点属性都包含一个 4 元素向量值,而不管在调用 glVertexAttribPointer 时提供的每个通用顶点属性值的组件数量。

这意味着如果我传入 float 的平面数组,顶点着色器将接收这些 float 作为 vec4,其中 x 将设置为提供的值,yzw 字段将分别设置为0、0、1对吧?

最佳答案

大部分是对的。如果您在着色器中将该属性声明为 vec4,则输入数组中不存在的组件将填充为 y = 0、z = 0、w = 1。

不过,您不必在着色器中将属性声明为 vec4。如果您的属性真的只是一个 float ,您可以在着色器中使用 float 类型声明它。来自 ES 2.0 规范:

The attribute qualifier can be used only with the data types float, vec2, vec3, vec4, mat2, mat3, and mat4.

支持的属性数量限制以 vec4 为单位表示,float 属性将使用其中一个属性槽,就像 vec4 会。因此,如果您需要一堆浮点属性,并且接近支持的属性数量限制,开始将它们打包成向量可能是个好主意。无论如何,这很可能对性能有益。

关于android - OpenGL ES 2 : Passing scalar vertex attributes to shader program,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23526968/

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