glVertexAttribPointer规范化


11

glVertexAttribPointer(索引,大小,类型,归一化,步幅,指针);

如果我使用type = GL_UNSIGNED_BYTE和normalized = GL_TRUE

如何标准化?将数据除以256进行归一化吗?要么?这将意味着无法将归一化值为“ 1.0f”。

Answers:


13

从手册中

如果设置为GL_TRUE,则归一化表示在访问和转换为整数格式的值时,它们将被映射到[-1,1](对于有符号值)或[0,1](对于无符号值)范围。浮点。

我的意思是,对于无符号8位类型,0将映射到0.0f,而255将映射到1.0f。


这意味着它被255除以?
乔纳森

正确,无符号字节的范围为0-255。因此,如果传递0xFF(等于255),则将得到1.0f。
notlesh 2011年

7
...您曾经玩过原始的《塞尔达传说》吗?您可以容纳的最大红宝石数量为255,而不是256;)
notlesh 2011年

我知道无符号字节只能达到255。.我只是在想,因为GPU逻辑除以2的幂似乎是逻辑
Jonathan

我想知道类似的事情。从uint_8到float可能有一种有效的转换,它所做的不过是移位位,而我不是要问的人。。。了解FPU可能更多的人吗?
notlesh 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.