簡體   English   中英

如何在 d3d9 中使用最小精度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM