C# 基于与点的距离为网格顶点着色
我有一个碰撞检测模拟,想让碰撞发生的地方变得明显。因为我有复合碰撞器,所以我只想为碰撞网格的顶点着色,这些顶点与碰撞在一定距离内。我一直在考虑一个内部有约束光源的球体,但那是不可能的。你的问题到底是什么还不清楚 我假设您已经计算出了碰撞和距离部分,但是您希望以某种方式为顶点指定颜色吗?如果是这样的话,您可以使用Unity的C# 基于与点的距离为网格顶点着色,c#,unity3d,C#,Unity3d,我有一个碰撞检测模拟,想让碰撞发生的地方变得明显。因为我有复合碰撞器,所以我只想为碰撞网格的顶点着色,这些顶点与碰撞在一定距离内。我一直在考虑一个内部有约束光源的球体,但那是不可能的。你的问题到底是什么还不清楚 我假设您已经计算出了碰撞和距离部分,但是您希望以某种方式为顶点指定颜色吗?如果是这样的话,您可以使用Unity的Color.Lerp(startColor、endColor、normalizedDistance)其中normalizedDistance=currentDistanceFr
Color.Lerp(startColor、endColor、normalizedDistance)
其中normalizedDistance=currentDistanceFromPoint/maximumDistanceFromPoint
查找点并按如下方式分配:
Mesh mesh = GetComponent<MeshFilter>().mesh;
Vector3[] vertices = mesh.vertices;
Color[] colors = new Color[vertices.Length];
for (int i = 0; i < vertices.Length; i++)
colors[i] = Color.Lerp(Color.red, Color.green, normalizedDistance);
mesh.colors = colors;
Mesh-Mesh=GetComponent().Mesh;
Vector3[]顶点=网格顶点;
颜色[]颜色=新颜色[顶点.长度];
对于(int i=0;i
您考虑过简单的像素着色器吗?基于到恒定点的距离计算颜色应该非常简单。