首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在VBO数组中使用GL_INT_2_10_10_10_REV指定Normals?

如何在VBO数组中使用GL_INT_2_10_10_10_REV指定Normals?
EN

Stack Overflow用户
提问于 2014-11-18 14:32:01
回答 2查看 952关注 0票数 1

我有法线,它们是(x,y,z)作为3个浮点数,我想把它们作为GL_INT_2_10_10_10_REVs打包到一个VBO数组中,以减少图形卡上的内存消耗。有人能提供一个如何在C++ / C#中这样做的例子吗?

OpenGL文档说您可以这样做- 实践

但是,我找不到任何示例说明如何将三个浮点数(可以是正的或负的)放置到单个填充的4字节结构中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-18 14:58:18

请参阅规格,第10.3.8节,“打包顶点数据格式”,第343页:

对于INT_2_10_10_10_REV,x、y和z分量表示为10位带符号的2的补整数值,w分量表示为2位有符号的2的补整数值。

票数 1
EN

Stack Overflow用户

发布于 2014-11-18 14:55:47

您需要将它们打包到一个类似于以下内容的位字段中:

代码语言:javascript
复制
struct norm{
    int a:2; 
    int Z:10; 
    int y:10; 
    int X:10; //order may need to be different
}

确保您输入的字段被缩放到-512511

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26996740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档