图形渲染中的定点数和浮点数

三种API的NDC区别

NDC全称,Normalized Device Coordinates
Metal、Vulkan、OpenGL的区别如下:

featureOpenGL NDCMetal NDCVulkan NDC
坐标系右手左手右手
z值范围[-1,1][0,1][0,1]
xy视口范围[-1,1][-1,1][-1,1]

GPU渲染的定点数和浮点数

定点数类型:ARGB8888,RGB565,ARGB2101010,

浮点数:ARGB16161616,ARGB32323232,

加起来都是机器字长,32、64、128
定点数只能保存 【0-1】的范围,不能保存小于0和超过1的数据,超过部分会被直接截断。否则只能用浮点数来承接。

GPU内部计算可以保留精度,比如shder中的计算都是float(high、mid、low),移动端的TBR架构下从 board memory拷贝到tile的memory-on-chip的时候,片上存储和计算一般也是浮点数。只是tile处理完,输出的时候会有精度转化,会损失掉。

FP16格式的FBO,在上一次渲染会话退出的时候,也能保存大于1的情况,

FP buffer的用途

1)HDR渲染中,对图像做headroom倍数提量以后,颜色值会出现大于1的情况,比如提亮5倍,最终渲染目标中可能需要保存5.0的值,此时至少得FP16来存储。
2)色域转化中的大转小的场景,
在这里插入图片描述
P3转sRGB,BT2020转P3或者sRGB 都会出现负数,此时也需要用FP16存储,即scRGB。

不过色域转化必须在线性空间中处理,

  • 非线性域是用来表示光信号(连续的),
  • 线性域用来表示电信号,离散的(比如8bit 或者 10bit表示)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值