Unity supports DirectX 11 (DX11) and OpenGL Core graphics APIs. This page details how to use them.
DirectX 11 is enabled by default on Windows. Your games and the Unity Editor use DX11, and fall back to DX9 when DX11 is not available.
To enable or disable DirectX 11 for your game builds and the Editor, go to Edit > Project Settings > Player to open the Player Settings. Navigate to Other Settings and un-check Auto Graphics API for Windows. In the panel that appears, select Direct3D11 and click the minus (-) button to remove it, or click the plus (+) button and choose Direct3D11 from the list to add it.
When you have added Direct3D11 to the list, you can change the priority it has over other graphics APIs. To do this, click and drag the list item up and down using your mouse. The Unity Editor and Player uses the item at the top of the list as the default. The Editor and Player use the others in the list as a fallback, in list order.
注意 *DX11 を使用するには、少なくとも Windows Vista かそれ以降で、少なくとも DX10 レベル (できれば DX11 レベル) の GPU が必要です。DX11 モードで作動している場合は、Unity エディターウィンドウのタイトルの後ろに <DX11> と表示されます。
Metal is enabled by default on Mac when you use the supported Mac OS X release. Unsupported releases use OpenGL Core. Metal for Mac first appeared in Mac OS X 10.11.0, however early versions had some issues. Therefore, make sure you disable Metal support for these versions. To ensure you do not face issues, update to the latest OS possible:
OpenGL Core is enabled by default on Mac and Linux. Your games and the Unity Editor use OpenGL Core on these platforms.
To enable OpenGL Core on Windows and make it the default, go to Edit > Project Settings > Player to open the Player Settings. Navigate to Other Settings and un-check Auto Graphics API for Windows. In the panel that appears, click the plus (+) button and choose OpenGLCore from the list to add it.
OpenGL Core has the following minimum requirements:
Compute Shaders allow you to use the GPU as a parallel processor. See documentation on Compute Shaders for more information.
Surface Shaders have support for simple tessellation and displacement. See documentation on Surface Shader Tessellation for more information.
When you manually write a Shader program, you can use the full set of DX11 Shader model 5.0 features- including Geometry, Hull and Domain Shaders.
Some parts of the Surface Shader compilation pipeline do not understand DX11-specific HLSL syntax, so if you’re using HLSL features like StructuredBuffers, RWTextures and other non-DX9 syntax, you need to wrap it into a DX11-only preprocessor macro. See documentation on Platform-specific differences for more information.
The following screenshots show examples of what you can achieve with DirectX 11 and OpenGL Core.
The volumetric explosion in the above shots is rendered using raymarching, which becomes plausible with Shader Model 5.0. Moreover, as it generates and updates depth values, it becomes fully compatible with depth-based Image Effects such as Depth of Field or Motion Blur.
The hair in the above shot is implemented via tessellation and geometry Shaders to dynamically generate and animate individual strands of hair. Shading is based on a model proposed by Kajiya-Kai that enables a more believable diffuse and specular behaviour.
Similar to the hair technique shown in the previous image, the fur on this pair of slippers is also based on generating geometry emitted from a simple base slippers Mesh.
The blur effect in the image above (known as Bokeh) is based on stamping a Texture on top of very bright pixels. This creates very believable camera lens blurs, especially when used in conjunction with HDR rendering.
This image shows an exaggerated lens blur. This is a possible result of using the Depth of Field effect.