Opengl 如何在VBO数组中使用GL_INT_2_10_10_10_REV指定法线?
我的法线是(x,y,z)作为3个浮点数,我想将它们作为GL_INT_2_10_10_10_10_REVs打包到一个VBO数组中,以减少图形卡上的内存消耗。在C++中,有人能提供一个例子吗? OpenGL文档说您可以这样做-Opengl 如何在VBO数组中使用GL_INT_2_10_10_10_REV指定法线?,opengl,Opengl,我的法线是(x,y,z)作为3个浮点数,我想将它们作为GL_INT_2_10_10_10_10_REVs打包到一个VBO数组中,以减少图形卡上的内存消耗。在C++中,有人能提供一个例子吗? OpenGL文档说您可以这样做- 但是,我找不到任何关于如何将三个浮点(可以是正的或负的)放入单压缩4字节结构的示例。您需要将它们打包到一个类似以下内容的位字段中: struct norm{ int a:2; int Z:10; int y:10; int X:10;
但是,我找不到任何关于如何将三个浮点(可以是正的或负的)放入单压缩4字节结构的示例。您需要将它们打包到一个类似以下内容的位字段中:
struct norm{
int a:2;
int Z:10;
int y:10;
int X:10; //order may need to be different
}
确保您输入的字段按比例缩放到
-512
到511
您需要将它们打包到一个类似以下内容的位字段中:
struct norm{
int a:2;
int Z:10;
int y:10;
int X:10; //order may need to be different
}
确保您输入的字段按比例缩放至-512
至511
检查,第10.3.8节,“压缩顶点数据格式”,第343页:
对于INT_2_10_10_10_10_REV
,x、y和z分量表示为10位有符号2的补码整数值,w分量表示为2位有符号2的补码整数值
检查,第10.3.8节,“压缩顶点数据格式”,第343页:
对于INT_2_10_10_10_10_REV
,x、y和z分量表示为10位有符号2的补码整数值,w分量表示为2位有符号2的补码整数值
谢谢-那里的图表让事情变得非常简单。谢谢-那里的图表让事情变得非常简单。