原文:http://blogs.unity3d.com/2016/03/15/enhanced-visuals-better-performance-and-more-the-unity-5-4-public-beta-is-ready/
有三个点我觉得很有意思:
1.Better multithreaded rendering
The Unity 5.4 beta release takes our multithreaded rendering support to the next level. Depending on your project and what platform you’re building to, it can significantly improve your frame rate.
Building on the work we did to take particles, sprites, flares, halos, lines and trails off the main thread in Unity 5.3, we’ve introduced parallel command list generation. Instead of building one graphics command list on the same CPU core scripts, physics and other systems are using, it moves the work to multiple CPU cores, removing some potential bottlenecks and enabling many complex scenes to run faster.
5.4将粒子、精灵、光晕、lineRender、拖尾都剥离出主线程,引入了并行的支持。
2.Fewer draw calls with GPU instancing
Fewer draw calls means better performance, and, by gradually rolling out GPU instancing support, we’re allowing you to render vast numbers of identical geometries that share the same materials with very few draw calls. Initially GPU instancing support is available for Windows PC builds with DX11 and Shader Model 4.0 and OS X with OpenGL 4.1 and up. More platforms are in the pipeline, so stay tuned.
The scene contains 3 types of rock mesh. Each rock is tinted with a different gray scale color using a material property block. The first scene uses an instanced version of the standard shader, the second scene uses the built-in standard shader. The data is captured with 5.4 beta 8 on Windows / D3D11, with an Intel Core i7-4980HQ@2.8GHz CPU & an nVidia GeForce GT 750M GPU.
使用GPU实例化来减少drawCall
相关资料:
3.Improved base graphics features: texture arrays, compute shaders and more
If you’re a graphics programmer building your own shaders, 2D Texture Arrays can help you when you’re optimizing large scenes and implementing rendering systems generally. They work by allowing the GPU to treat 2D textures that share the same size and format as a single object.
We’ve also improved a series of low-level graphics features in this release. Compute shaders can now be chained together via DispatchIndirect, compute buffer counters have been improved, and debug information can be used for compute shader debugging. Fast texture copies can be done with a new CopyTexture function, and proper support for uniform arrays as shader parameters has been added. On Metal, OpenGL and D3D9 platforms, we’ve implemented Alpha-to-coverage, and on iOS we now support multi-threaded rendering when using Metal graphics. Finally, image effects can be applied on a scene view camera with a newImageEffectAllowedInSceneView attribute.
Collectively, we think all of these small improvements will be very useful for improving your rendering pipelines.
在Metal,OpenGL ,D3D9 实现来Alpha-to-coverage,相关资料:
很好奇如何使用这个特性,查阅了文档发现:
ShaderLab中增加了AlphaToMask On,可以开启这个功能,这个命令是5.3加入的