製作法線貼圖還是得美術提供你幾張基礎的法線貼圖之後,然後再去製作。
現在我們手裏有兩張貼圖,一張是正常貼圖,一張是法線貼圖;
1、選擇美術提供的基礎的法線貼圖:
Tip:其中Filtering選項有的地方說是應該選擇Sharp,但是我的默認就是Sharp。
2、選項設置完成之後,點擊右下角的“Apply”就會看見貼圖變成這樣:
此時我們的法線法線貼圖就做好了。
代碼裏面怎麼改變我們的法線貼圖呢?其實實質就是獲取材質然後更改材質上面的貼圖。
我在場景裏面放置了一個模型,這個模型可以放置兩個材質:
此時Material就是一個Size爲2的數組,我們可以在C#的時候給Material賦值一個Size爲2的數組。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChangeMaterial : MonoBehaviour
{
// 定義兩個公共的變量,這樣就可以在Unity裏面將製作好的兩個材質拖過來賦值
public Material diffusemap;
public Material normalmap;
private bool isnormal = false;
// 用來獲取模型的meshrenderer組件
private MeshRenderer meshrender;
// Start is called before the first frame update
void Start()
{
// 獲取模型的meshrenderer組件
this.meshrender = this.GetComponent<MeshRenderer>();
// 將拖過來的兩個材質,組成數組,賦值給meshrenderer組件
meshrender.materials = new Material[2] { this.diffusemap, this.diffusemap };
}
// Update is called once per frame
void Update()
{
// 使用鼠標左鍵來改變當前材質
if(Input.GetMouseButtonDown(0))
{
if (isnormal) {
meshrender.materials = new Material[2] { this.diffusemap, this.diffusemap };
}
else {
meshrender.materials = new Material[2] { this.normalmap, this.normalmap };
}
isnormal = !isnormal;
}
}
}