如何在d3d9中使用最小精度



我想知道如何在d3d9中使用最小精度。DX11规范描述了将最小精度枚举添加到d3d9中。然而,当我用min16float关键字编写像素着色器并用fxc.exe翻译它时,它失败了,并报告";ps_3_0不支持最小精度";。那么,如何在d3d9中使用最小精度呢?

TL;DR:对于像素着色器3.0,请使用half而不是min16float

Direct3D硬件功能级别9.x设备支持DirectX 11最低着色器精度功能。在功能级别9.x上,VS和PS可以具有不同的精度,这在AllOtherShaderStagesMinPrecision.AllOtherShaderStagesMinPrecision字段中表示。

Direct3D 9着色器模型2.0仅要求像素着色器具有24位精度,并且在使用half_pp类型时支持16位精度。对9.x功能级别配置文件的DirectX 11着色器精度功能支持利用了这一点。

请参阅Microsoft文档。

相关内容

  • 没有找到相关文章

最新更新