OpenGL ES1.1.12 第二章 2.1.1

(仅是草稿,未做整理)

2.1.1数值运算

GL运行的过程中必须执行许多的计算。Common prole的实现将要涉及到浮点计算,并且必须满足以下“Floating-PointComputation”所定义的范围和精度。Common prole lite的实现将要涉及到定点计算,并且必须满足“Fixed-PointComputation”所定义的范围和精度。但Common prole lite依然可以使用浮点运算。

浮点计算(Floating-Point Computation)

这里没有介绍如何表示浮点数,及它们如何计算。只是简单的要求浮点必须包含足够的bit数,及其指数足够大,使之能生成精度在1/10^5范围内唯一的结果。位置和正交坐标浮点数最大必须至少为2^32。颜色和纹理坐标幅度值必须至少2^10。其他的幅度值必须至少2^32

   x .0=0 . x =0

  1 .x = x .1=x

  x +0=0+ x = x

      0^0 =1

后续将进一步说明浮点数的要求。大部分单精度的浮点都满足这些要求。

需要浮点数据的GL命令的输入来说,任何表示浮点的数值都都是合法的。而对于这样的GL命令,如果输入不是浮点数据,那么其结果是未定义的,但必须不能引起GL中断或终止。如,在IEEE算法中,一个负0值或者十进制值用在GL命令中,其结果是可预知的,如果是一个NaN值或无穷大的数值,那么结果也是未定义的。如果x值不是浮点值,那么以上定义的等式将不成立。

定点计算(Fixed-PointComputation)

内部计算中可以用定点或浮点算法。定点运算的精度必须在(+-)2 ^-15之间。用于表示位置和正交坐标的定点值的最大值必须至少2^15。颜色和纹理坐标幅度值必须至少2^10。其他的幅度值必须至少2^15

  x .0=0 . x =0

  1 .x = x .1=x

  x +0=0+ x = x

      0^0 =1

定点计算可能会导致数值溢出(上溢下溢)。这样的结果是未定义的,但必须不能引起GL中断或终止。

总的要求

不管是用定点计算还是浮点计算,下面的约束是所有GL实现必须满足。

16.16注释表明,一个32-bit的定点二进制补码拥有16bit的部分。如果一个顶点用16.16表示,那么模型视图和投影矩阵也可用16.16表示。眼睛空间和NDC空间的顶点结果用16.16表示(见2.10部分),即用有限的动态范围立即数来计算,那么转换流水必须计算眼空间和NDC空间顶点,必须达到一定的精度。如溢出是不可接受的。

在需要除法计算的情况下,包括向量归一化中要需求的隐式除法,除0计算的结果是未定义的,但必须不能引起GL中断或终止。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值