【发布时间】:2020-05-26 05:26:19
【问题描述】:
D3D11 Input Element Description 有一个指定格式的字段。
当我们仅在 CPU 端有 float(即 32 位 fp)时,如何将 halfs(例如 DXGI_FORMAT_R16_FLOAT)传递给输入汇编器?
【问题讨论】:
标签: c++ directx-11 hlsl half-precision-float
D3D11 Input Element Description 有一个指定格式的字段。
当我们仅在 CPU 端有 float(即 32 位 fp)时,如何将 halfs(例如 DXGI_FORMAT_R16_FLOAT)传递给输入汇编器?
【问题讨论】:
标签: c++ directx-11 hlsl half-precision-float
Direct3D 使用的半精度格式如今已相当标准。
https://en.wikipedia.org/wiki/Half-precision_floating-point_format
DirectXMath 库具有用于在半精度之间进行转换的内置函数:
还有一个用于进行转换的 F16C(也称为 CVT16)内在函数,但您实际上只能依靠支持 AVX2 的系统(或具有 AVX 和 F16C 的固定平台,如 Xbox One)。详情请见this blog post。
【讨论】: