Unity中的材質

Unity中管理渲染的部分就是

材質會管理Shader需要用到的參數,而Unity Shader則是一種Unity專用的Shader,他與材質之間相互配合,除了可以讀取到Material的數據外,還有編寫CG/HLSL/GLSL的功能。

而Material也需要GameObject的Mesh等的組件,來得到渲染用到的頂點數據。像是MeshRenderer或是Particle System。

ShaderLab

<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" {}
}