• “黑神话·悟空”免安装在线玩,无视显卡等硬件要求!!
  • √ 游戏免下载安装 √ 5分钟随开随玩 √ 关机不计费!低至¥14.90/月!
🔥进入竞技-直面天命🔥

请写出一个Unity Shader

时间2023-03-22 01:07:16 提问来自 天津市天津市 的网友 分类创作 浏览292
Shader "Custom/MyShader" { Properties { _MainTex ("Texture", 2D) = "white" {} _Color ("Main Color", Color) = (1,1,1,1) _Cutoff ("Alpha Cutoff", Range(0, 1)) = 0.5 } SubShader { Tags { "RenderType"="Opaque" } LOD 100 CGPROGRAM #pragma surface surf Lambert sampler2D _MainTex; //纹理贴图变量声明 struct Input //定义一个输入结构体,用来从Unity传入数据到shader的内部 { float2 uv_MainTex; //uv坐标变量 }; fixed4 _Color; //颜色变量声明,用于混合纹理贴图颜色和shader颜色 half _Cutoff; //α剪裁变量声明,用于实现α通道的剪裁效果 void surf (Input IN, inout SurfaceOutput o) //定义一个surf函数,该函数必须存在于shader中,此函数由Unity自动调用来处理像素颜色 { //此处表示开始函数体      //以下代码表示将_MainTex这张图片上的相应uv位置的像素颜色读取出来,并保存到fixed4这个变量中。   fixed4 c = tex2D (_MainTex, IN.uv_MainTex);  //以下代码表示将c.a这个通道的像素和_Cutoff这个剪裁参数比对大小;如果小于_Cutoff则将c.a=0 否则不作处理。 if(c.a < _Cutoff){ c.a = 0; } o.Albedo = c.rgb * _Color; //最后我们将c的rgb三通道乘上shader中定义的_Color来得到期望的最后显示颜色。 o.Alpha= c.a ; } ENDCG } FallBack "Diffuse" }

点击这里,进行内容创作

创作工场 免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!

上一篇 Unity渲染是什么 下一篇 机电一体化你有哪些启发和收获