王者归来性能翻番 GeForce6技术解析
● NVIDIA EXR GPU需求
为了实现这种渲染方式,GPU必须具备浮点精度的着色、混合、滤波以及贴图功能。而最重要的是,还必须有能力把这些色彩数据以原有精度(或近似原有精度)存储起来。因为只有这样,浮点数据的对数特性能够被保存起来。如果中间处理的结果仍以每象素256级别存储,那么GPU所具备的一切浮点颜色处理都等于是白费。
● 浮点着色
正如前面提及的,32位着色是GeForce 6系列GPU的原生操作模式,着色操作能够以最高的速度执行,同时保持最高的精度。也就是说在向表面输出颜色值时,GeForce 6系列天生就有极高的浮点精度。
● 浮点混合
混合操作是指把之前渲染的像素和给定位置的新近渲染像素进行结合。根据渲染的效果,这些数值会被混合为一个最终的色彩值。以前的混合都是从每通道256级别的贴图或屏幕缓冲中取出颜色,然后再进行混合。而现在更高的精度意味着像素混合的结果更加精确、品质更高。像运动模糊、柔和阴影以及需要对一个场景的多个动态光照计算进行累积,这些需要颜色混合的特效都能从浮点混合受益。
● 浮点滤波
滤波操作是指利用滤波器对像素操作,让场景中的对象看起来更锐利或者更平滑。在早期没有滤波效果的硬件上,场景中的贴图纹理会出现马赛克的感觉。
滤波主要包括双线性滤波和三线性滤波。当像素处于狭窄观察角度的时候,滤波同样能让画面品质起到锐化的作用(即各向异性滤波)。例如广阔地面的贴图,如果不使用各项异性滤波,在远处很可能出现模糊的现象。
其他的浮点滤波效果还包括了色调映射、光辉等,这些都是做高动态范围渲染所要求具备的功能。如果没有浮点滤波,对于颜色平滑过渡的纹理,很容易出现颜色像阶梯一样分布的结果,使效果大打折扣。此外,NVIDIA GeForce 6系列GPU还支持更高的精度级别和16倍的各向异性滤波。
● 浮点贴图
贴图操作是指对一个给定的多边形贴上一张纹理。原来的纹理像素色深最大是32位,每个颜色通道8位,而现在具备浮点贴图功能后,我们就能实现诸如全方位阴影映射(利用向接受阴影的物体投射阴影贴图实现柔和阴影效果)、景深效果(即影视作品里那种近处清楚、远处模糊或远处清楚、近处模糊的效果)以及光线追踪(如玻璃、金属的折射、反射)等独特的效果。
由于阴影贴图中保存的是物体与光源的距离信息,所以以前要保存这个信息,必须利用PixelShader将距离分发到RGBA等4个颜色通道中去(就好像数字7839,利用RGBA分别保存7、8、3、9,记住,每个通道只能保存0~255),最后恢复时再用7×1000+8×100+3×10+9)。
在每像素计算的情况下,这将带来极大的计算浪费。而现在,仅用一个浮点颜色通道就可以十分精确的记录这个距离信息,无需任何多余的转换!景深效果的道理也是一样。<