Unity中管理渲染的部分就是
材質會管理Shader需要用到的參數,而Unity Shader則是一種Unity專用的Shader,他與材質之間相互配合,除了可以讀取到Material的數據外,還有編寫CG/HLSL/GLSL的功能。
而Material也需要GameObject的Mesh等的組件,來得到渲染用到的頂點數據。像是MeshRenderer或是Particle System。
<aside> 💡 計算機科學中的任何問題都可以通過增加一層抽象來解決。 — 大衛●惠勒
</aside>
Unity在DirectX和OpenGL上抽象出一層名為Unity Shader的層級。方便開發者能更方便地將渲染配置、資源內存和Shader關聯在一起。
Shader "My/FirstShader" {
// ...
}
Properties {
// Numbers and Sliders
_Int ("Int", Int) = 2
_Range ("Range", Range (0.0, 5.0)) = 3.0
// Colors and Vectors
_Color ("Color", Color) = (1, 1, 1, 1)
_Vector ("Vector", Vector) = (2, 3, 6, 1)
// Textures
_2D ("2D", 2D) = "" {}
_Cube ("Cube", Cube) = "white" {}
_3D ("3D", 3D) = "black" {}
}