前言
Unity中Shader編譯到目標渲染器
一、Unity在打包時,會把Shader編譯成不同平臺對應的代碼
我們在狀態(tài)欄,可以看見我們目前所處于的目標平臺
二、在Unity中,怎么指定目標平臺
1、#pragma only_renderers
#pragma only_renderers
僅編譯指定平臺的Shader
- d3d11 - Direct3D 11/12
- glcore - OpenGL 3.x/4.x
- gles - OpenGL ES 2.0
- gles3 - OpenGL ES 3.x
- metal - iOS/Mac Metal
- vulkan - Vulkan
- d3d11_9x - Direct3D 11 9.x功能級別,通常在WSA平臺上使用
- xboxone - Xbox One
- ps4 - PlayStation 4
- psp2 - PlayStation Vita
- n3ds - Nintendo 3DS
- wiiu - Nintendo Wii U
2、#pragma exclude_renderers
剔除掉指定平臺的相關代碼
- d3d11 - Direct3D 11/12
- glcore - OpenGL 3.x/4.x
- gles - OpenGL ES 2.0
- gles3 - OpenGL ES 3.x
- metal - iOS/Mac Metal
- vulkan - Vulkan
- d3d11_9x - Direct3D 11 9.x功能級別,通常在WSA平臺上使用
- xboxone - Xbox One
- ps4 - PlayStation 4
- psp2 - PlayStation Vita
- n3ds - Nintendo 3DS
- wiiu - Nintendo Wii U
三、我們測試一下看看效果
1、 我當前處于 DX11 平臺,我們修改為只渲染 IOS/Mac 平臺(Metal)
//僅編譯指定目標平臺
#pragma only_renderers metal
我們會發(fā)現(xiàn),Unity渲染丟失了,呈現(xiàn)洋蔥紫
2、我們剔除一些平臺,看看剔除后,編譯的代碼有沒有減少
剔除前(945行):
剔除gles后(774行):
文章來源:http://www.zghlxwxcb.cn/news/detail-754404.html
四、編譯目標渲染器優(yōu)化的好處
這樣優(yōu)化,并不能提高游戲在運行時的性能,但是可以節(jié)省打包編譯時的時間,和編譯文件所占的存儲空間。文章來源地址http://www.zghlxwxcb.cn/news/detail-754404.html
到了這里,關于Unity中Shader編譯目標渲染器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!