如何将一半传递给顶点着色器?

问题描述 投票:1回答:1

D3D11 Input Element Description具有指定格式的字段。

当我们仅在CPU端拥有D3D11 Input Element Description(即32位fp)时,如何将half(例如DXGI_FORMAT_R16_FLOAT)传递给输入汇编器?

c++ directx-11 hlsl half-precision-float
1个回答
1
投票

现在,Direct3D使用的半精度格式非常标准。

float

https://en.wikipedia.org/wiki/Half-precision_floating-point_format库具有用于转换到半精度/从半精度转换的内置函数:

  • [DirectXMath和XMConvertHalfToFloat和XMConvertFloatToHalf

  • [XMHALF及其加载/存储功能。

  • [XMHALF2及其加载/存储功能。

还有一个F16C(也称为CVT16)用于进行转换,但是您实际上只能依靠支持AVX2的系统(或具有AVX但也有F16C的Xbox One固定平台)来依靠它们。有关更多详细信息,请参见XMHALF4

© www.soinside.com 2019 - 2024. All rights reserved.