วิธีการทำ
1. ให้ทำการสร้าง Shader ขึ้นมาใหม่นะครับ จากนั้นตั้งชื่อ (ในที่นี่ใช้ชื่อ Normal.shader)
2. สร้าง Material ครับ (ชื่อ Normal)
3. เปิด ไฟล์ Normal.shader ก็จะได้ตามโครงสร้างตามรูปนะครับ
// เป็นการบอกให้ shader ว่าต้องการ properties แบบรูปภาพเพื่อใส่ Normal Map
_NormalTex ("Normal Map", 2D) = "bump" {}
// เป็นการบอกให้ shader ว่าต้องการ properties แบบ slide เพื่อใส่ Bump Value
// โดยมีระยะระหว่าง 0 ถึง 3
_BumpValue ("Bump Value", Range(0,3)) = 0.5
// ประกาศตัวแปร แบบ Texture เพื่อให้สามารเชื่อมต่อกับ Property _NormalTex ได้
sampler2D _NormalTex;
// ประกาศตัวแปร แบบ Number เพื่อให้สามารเชื่อมต่อกับ Property _BumpValue ได้
half _BumpValue;
// *ปล. ชื่อตัวแปรต้องมีชื่อเหมือนกับ Properties ด้านบน
6. และทำการเพิ่ม float2 uv_NormalTex; ใน struct Input ดังรูป
// เพิ่ม float2 uv_NormalTex เพื่อให้สามารถเข้าถึง uv ของ Normal Map ได้
half3 normalMap = UnpackNormal(tex2D(_NormalTex, IN.uv_NormalTex));
// นำ Normal Map คูณกับ _BumpValue เพื่อเพิ่มค่า depth
normalMap = float3(normalMap.x * _BumpValue, normalMap.y * _BumpValue, normalMap.z);
// ให้ค่า Normal Map กับค่าใหม่ที่ทำการคำนวณ
o.Normal = normalMap.rgb;
ไม่มีค่า Bump Value