片段着色器功能中float4和half4之间的主要区别是什么?

时间:2018-07-13 03:54:42

标签: objective-c metal metalkit

我尝试设置MTLPixelFormatRGBA16Float的渲染管道和MTKView颜色附件像素格式。

但是,与MTLPixelFormatBGRA8Unorm_sRGB似乎相同。

我只想提高渲染颜色范围(HDR)。

片段函数的返回类型重要吗?

要实现金属的高动态范围,我应该设置什么?

1 个答案:

答案 0 :(得分:0)

基于此Metal Shading Language Specification

浮动:

  

32位浮点数。 float数据类型必须符合IEEE   754种单精度存储格式。

完全 float 精度通常用于世界空间位置,纹理坐标或涉及复杂函数(例如三角函数或幂/幂运算)的标量计算。

一半:

  

16位浮点数。 Half数据类型必须符合IEEE   754 binary16存储格式。

精度对于短矢量,方向,对象空间位置,高动态范围颜色很有用。