首页 > 学院 > 开发设计 > 正文

shader学习(7)

2019-11-11 02:05:21
字体:
来源:转载
供稿:网友

模型顶点的变换,将一个平面的中心点处向外进行隆起。 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#脚本,运行程序得到: 这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表