我正在尝试创建一个着色器/材质,一旦与特定网格接触,它将显示其内部,类似于: 在此输入图片描述
到目前为止,我已经创建了一个应用于网格本身的着色器,但我不希望这样做,因为我不想更改网格的材质。
关于如何使材质应用于切割一个特定网格的球体/平面,有什么想法吗?
我想我能解决这个问题。 ShaderGraph
using UnityEngine;
using System.Collections.Generic;
public class MeshClipper : MonoBehaviour
{
public GameObject model3D;
public Transform planeTransform;
private Material cuttingMaterial;
private void Awake() {
MeshRenderer renderer = model3D.GetComponent<MeshRenderer>();
cuttingMaterial = renderer.material;
}
void Update()
{
Vector3 planePosition = planeTransform.position;
Vector3 planeNormal = planeTransform.up * -1;
cuttingMaterial.SetVector("_PlanePosition", planePosition);
cuttingMaterial.SetVector("_PlaneNormal", planeNormal);
}
}