模型頂點的變換,將一個平面的中心點處向外進行隆起。 1、shader
Shader "xxx/ddd"{ SubShader { pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "unitycg.cginc" float R; float H; struct xx { float4 pos:POSITION; float4 color:COLOR; }; xx vert(appdata_base data) { float d = R - length(data.vertex.xz); if(d<0) { d = 0; } float4 pos = float4(data.vertex.x, H*d, data.vertex.z,data.vertex.w); xx x; x.pos = mul(UNITY_MATRIX_MVP,pos); x.color = float4(1,0,0,1); return x; } float4 frag(xx x):COLOR { return x.color; } ENDCG } }}2、C#代碼,控制隆起的高度和半徑
public class SetColorValue : MonoBehaviour { [Range(0,5)] public float R; [Range(0, 5)] public float H; public void Update() { this.GetComponent<Renderer>().material.SetFloat("R", R); this.GetComponent<Renderer>().material.SetFloat("H", H); }}3、新建一個plane,使用此shader和C#腳本,運行程序得到:
新聞熱點
疑難解答