Unity 支持 DirectX 图形 API,包括 DirectX 11 和 DirectX 12。但是,并非所有功能都在 DirectX 11 中可用。有关更多信息,请参阅 Unity 中 DirectX 11 和 DirectX 12 的功能比较。
您可以选择在 Editor 或独立平台播放器中将 DirectX 11 (DX11) 或 DirectX 12 (DX12) 设置为默认图形 API:
打开播放器设置 (Player settings)(菜单:编辑 (Edit) > 项目设置 (Project Settings) > 播放器 (Player))。
在其他设置 (Other Settings) > 渲染 (Rendering) 部分中,禁用平台 (Windows/Mac/Linux) 的自动图形选项。
选择 Add (+) 按钮,然后从支持的图形 API 列表中选择 Direct3D11 或 Direct3D12。
以下列表包含 DirectX 12 图形 API 引入的功能,这些功能在 DirectX 11 中不可用。
| APIs | DirectX 11 | DirectX 12 |
|---|---|---|
| 动态分辨率 | 不受支持 | 受支持 |
| 异步计算 | 不受支持 | 受支持 |
| 原生渲染通道 | 不受支持 | 受支持 |
| 光线跟踪加速 | 不受支持 | 受支持 |
| 图形状态集合 | 不受支持 | 受支持 |
| XR 注视点渲染 | 不受支持 | 受支持 |
| 渲染线程模式 | DirectX 11 | DirectX 12 |
|---|---|---|
| Direct | 受支持 | 受支持 |
| 单线程 | 受支持 | 受支持 |
| 主线程 + 渲染线程 | 受支持 | 受支持 |
| 旧版作业化 | 受支持 | 受支持 |
| 原生图形作业 | 不受支持 | 受支持 |
| 拆分图形作业 | 不受支持 | 受支持 |
| 着色器功能 | DirectX 11 | DirectX 12 |
|---|---|---|
| 光线追踪着色器 | 不受支持 | 受支持 |
内联光线追踪 (#pragma multi_compile _ UNITY_DEVICE_SUPPORTS_INLINE_RAY_TRACING) |
不受支持 | 受支持 |
原生 16 位 (#pragma multi_compile _ UNITY_DEVICE_SUPPORTS_NATIVE_16BIT) |
不受支持 | 受支持 |
波函数 (#pragma multi_compile _ UNITY_DEVICE_SUPPORTS_WAVE_ANY) |
不受支持 | 受支持 |
| Universal Render Pipeline | DirectX 11 | DirectX 12 |
|---|---|---|
| 光栅通道合并 | 不受支持 | 支持(ARM 上的 Windows) |
| 原生渲染通道 | 不受支持 | 支持(ARM 上的 Windows) |
| 帧缓冲区获取 | 不受支持 | 支持(ARM 上的 Windows) |
| 高清渲染管线 | DirectX 11 | DirectX 12 |
|---|---|---|
| 硬件动态分辨率 | 不受支持 | 受支持 |
| 异步计算着色器 | 不受支持 | 受支持 |
| 光线追踪环境光遮挡 | 不受支持 | 受支持 |
| 光线追踪接触阴影 | 不受支持 | 受支持 |
| 光线追踪全局光照 | 不受支持 | 受支持 |
| 光线追踪反射 | 不受支持 | 受支持 |
| 光线追踪阴影 | 不受支持 | 受支持 |
| 光线追踪递归 | 不受支持 | 受支持 |
| 线追踪次表面散射 | 不受支持 | 受支持 |