[英]How to use min-precision in 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 着色器 model 2.0 僅需要 24 位像素着色器精度,並且在使用half
或_pp
類型時支持 16 位。 對 9.x 功能級別配置文件的 DirectX 11 着色器精度功能支持利用了這一點。
請參閱Microsoft 文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.