unity 着色器內置宏


目標平台

Macro: Target platform:
SHADER_API_D3D11 Direct3D 11
SHADER_API_GLCORE Desktop OpenGL “core” (GL 3/4)
SHADER_API_GLES OpenGL ES 2.0
SHADER_API_GLES3 OpenGL ES 3.0/3.1
SHADER_API_METAL iOS/Mac Metal
SHADER_API_VULKAN Vulkan
SHADER_API_D3D11_9X Direct3D 11 “feature level 9.x” target for Universal Windows Platform
SHADER_API_PS4 PlayStation 4. SHADER_API_PSSL is also defined.
SHADER_API_XBOXONE Xbox One
SHADER_API_PSP2 PlayStation Vita
SHADER_API_WIIU Nintendo Wii U

      宏 SHADER_API_MOBILE   定義為所有的移動平台。

      此外, SHADER_TARGET_GLSL 定義為所有使用GLSL語言的平台。(對使用OpenGL/GLES 始終為真)

着色器目標模型

  SHADER_TARGET 定義了一個數值來匹配着色器目標編譯模型(也就是說,與指令 #pragma target 匹配)。比如說,當編譯shader 為 着色器模型3.0時,SHADER_TARGET =30。可以用來在shader中做一些額外操作。

#if SHADER_TARGET < 30
    // less than Shader model 3.0:
    // very limited Shader capabilities, do some approximation
#else
    // decent capabilities, do a better thing
#endif

Unity版本

  UNITY_VERSION包含了unity版本的數值。比如,Unity 5.0.1的 UNITY_VERSION = 501.

編譯着色器階段

  預處理宏 SHADER_STAGE_VERTEXSHADER_STAGE_FRAGMENT,SHADER_STAGE_DOMAINSHADER_STAGE_HULL

SHADER_STAGE_GEOMETRY,SHADER_STAGE_COMPUTE 在編譯每個着色器階段時定義。通常,它們在共享像素着色和計算着色之間的着色代碼時很有用,以處理某些事情必須稍微不同的情況。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM