在 Unity 4 中使用 DirectX 11        

Unity 4 推出了 DirectX 11 图形 API 功能,它具备了您所期望的所有优质功能:计算着色器、镶嵌着色器、shader model 5.0 等等。

启用 DirectX 11

要为游戏构建和编辑器启用 DirectX 11,请在播放器设置 (Player Settings) 中设置 “Use DX11” 选项。要运行此功能,还需重启 Unity 编辑器。

注意,DX11 需要在 Windows Vista 或更高版本的系统上运行,GPU 级别至少应为 DX10(DX11 更佳)。Unity 编辑器实际上在 DX11 模式中运行时,其窗口名称末尾将显示 “<DX11>”。

使用 DX11 可实现的图像效果

  • 景深 (Depth of Field) 效果(优化的焦外成像纹理光斑)

  • 噪波和杂点 (Noise and Grain) 效果(更高质量的噪波类型)

  • 动态模糊 (Motion Blur) 效果(更高质量的重建过滤)

计算着色器

计算着色器允许将 GPU 用作大规模并行处理器。模式详细信息,请参阅计算着色器页面。

镶嵌和几何着色器

表面着色器支持简单的镶嵌和置换,请参阅表面着色器镶嵌 (Surface Shader Tessellation) 页面。

手动编写着色器程序时,可以使用 DX11 shader model 5.0 的全套功能,包括几何、外壳和域着色器。

表面着色器和 DX11

目前,表面着色器编译管道的某些部分无法理解特定于 DX11 的 HLSL 语法,如果您需要使用特定于 StructuredBuffers、RWTextures 和其他非 DX9 的HLSL 语法,则必须将其添加至仅支持 DX11 的预处理器宏。有关详细信息,请参阅 特定平台之间的差异页面。

DirectX 11 示例

以下截图展示了使用 DirectX 11 可实现的效果。

这些镜头中的大体积云雾爆炸是使用光线步进(使用 shader model 5.0 可实现)渲染而成。此外,由于 DirectX 11 可生成并更新深度值,它可与基于深度的图像效果,如景深或动态模糊等完全兼容。

此镜头中的头发是使用 DirectX 11 镶嵌和几何着色器动态生成并绘制一撮头发动画制成。着色以 Kajiya-Kai 提出的模型为基础,以制作更逼真的漫反射和高光行为。

与上述头发制作技巧相似,显示的拖鞋毛发也是使用基础简单的拖鞋网格生成的几何图形制成。

此图像中的模糊效果(称为 焦外成像) 是通过将纹理泼洒在非常明亮的像素上形成。这可形成非常逼真的相机镜头模糊效果,与 HDR 渲染配合使用效果更佳。

夸张的镜头模糊效果与上述截图相似。使用新的景深 (Depth of Field) 效果也可实现上述效果

,