GLhalf是浮点型还是整数?

时间:2017-11-11 04:38:41

标签: opengl

opengl规范中的表2.2中说GLhalf是16位浮点标量但是在头文件glext.h中它定义为

typedef unsigned short GLhalf;

这意味着它是一个整数类型。哪一个是对的?

1 个答案:

答案 0 :(得分:0)

在GPU上,GLhalf是一个16位浮点标量数,并且将以该格式添加/相乘/等。

在CPU上,许多C编译器没有16位浮点类型。因此,无符号短定义告诉C编译器每个值将占用内存中的16位。

不幸的是,这意味着C编译器还允许你添加/乘以/ etc /这些值,这将完全搞砸它们,因为CPU将对它们执行16位整数运算。所以不要这样做。甚至不写“foo = 2”

您可以获得C的半精度浮点库,而某些C编译器支持16位浮点数。如果要在GLhalf上执行CPU操作,可以使用其中一种。

相关问题