Mesh Filer與MeshRender與Material?
答:(了解就行了)
包含順序:MeshRender->Material->Shader
MeshFilter 組件存儲(chǔ)一個(gè)網(wǎng)格(模型由哪些三角形組成,組成了什么樣子)
MeshRender 組件用來渲染模型的外觀按照meshFilter給的mesh 來給她皮膚顏色
而MeshRender中的有一個(gè)屬性:Material,Materials由貼圖和shader構(gòu)成
Material:控制模型渲染的樣子;
Material下的一個(gè)屬性:shader
OpenGL與? DX???是什么?? ?
答:shader可以認(rèn)為是一種渲染命令,用OpenGl和DX進(jìn)行解析,從而渲染出圖形使用CG(英偉達(dá))語言來編寫shader(以為CG的shader是跨平臺(tái)的)
在unity 中使用shaderLab 來編寫Unity中的shader?
shader分類?
1.頂點(diǎn)/片段著色器 vertex/Fragmengt shader
比表面著色器要復(fù)雜,但是質(zhì)量好
2.表面著色器? surface shader
可以理解成對(duì)頂點(diǎn)片段著色器的一種封裝,比頂點(diǎn)片段著色器要簡(jiǎn)單,它的設(shè)計(jì)初衷是為了讓用戶僅僅使用一些指令(#pragma)就可以完成很多事情,并且封裝了很多常用的光照模型和函數(shù)。相比底層的Vertex And Fragment Shader,Suface Shader的限制比較多,它只能有一次Pass。如果做一些常規(guī)的功能又需要光照,可以用Surface Shader寫,比較快速便捷。如果要寫比較高級(jí)的Shader還是建議使用Vertex Shader 和 Fragment
Unity創(chuàng)建shader?
Creart->shader->Standard Surface Shader
編寫shader ,Unity 可以用Vs編寫shader
shader的結(jié)構(gòu)
Shader"Myshader/01myshader"{??????????????? //這里指定shader的名字
??? Properties{????????????? //屬性
? //變量名(“變量顯示在unity編輯器中的名子”,變量類型)=初始值
????????????????? ?_Color("顏色",Color)=(1,1,1,1)
???????????????????? _Vector("Vector",Vector)=(1,2,3,4)
?????????????????? _Int("Int",Int)=3333
???????????????????? _Float("Float",Float)=4.5
?????????????????? _Range("Range",Range(1,11))=6
???????????????????? _2D("Texture",2D)="red"{}
??????????????????? _Cube("天空盒“,cube)=""{}
???????????????????? _3D("Texture",3D)="black"{}
????}
??? //SubShader 可以寫多個(gè),顯卡運(yùn)行的時(shí)候第一個(gè)不行執(zhí)行第二個(gè)
??? SubShader{
???????????????? ? //至少有一個(gè)Pass
??????????????? ?Pass{
??????????????? //在這里編寫shader代碼
?????????????? CGPROGRAM
???????????? ?? //使用CG語言編寫shader代碼
???????????????? //重新定義Properties中的變量
??????????????? float4? _Color;
??????????????? float4? _Vector;
?????????????? ?float? _Int;
???????????? ??float _Float;
???????????? ? float _Range;
???????????? ? sampler2D _2D;
?????????? ?? ?samplerCube? _Cube;
?????? ???? ?sampler3D? _3D;
??????????? ENDCG
??????????????????? }?
???? }
??? Fallback"VertexLit"http:// 備胎
}
總結(jié):shader中屬性Properties的類型有哪些?
答:_Color("顏色",Color)=(1,1,1,1)
_Vector("Vector",Vector)=(1,2,3,4)
_Int("Int",Int)=3333
_Float("Float",Float)=4.5
_Range("Range",Range(1,11))=6
_2D("Texture",2D)="red"{}
_Cube("天空盒“,cube)=""{}