【UnityShader自学日志】创建自定义着色器

在“Asset”中,创建一个新的Standard Surface Shader,在mono或者VS中打开,将原有的代码段全部删除

加入以下代码,每行代码具体功能如下所示

Shader "PACKT/Moon" //指定了该着色器在着色器选单中的名称
{
	//着色器的属性区
	Properties 
	{
		_Color ("Color", Color) = (1,1,1,1)//设置着色器的RGBA属性
		_MainTex("Albedo (RGB)",2D) = "white"{}//基础纹理贴图,2D指定该属性是一个二维贴图
	}
	//子着色器
	SubShader 
	{
		CGPROGRAM//标志着Cg代码的开始
		#pragma surface surf Lambert//着色器编译指令,使用了Lambert光照模型

		//定义了Cg代码块的输入数据有哪些内容
		struct Input {
			float2 uv_MainTex;
		};
		
		sampler2D _MainTex;
		float4 _Color;

		//着色器将纹理贴图的颜色值和单色颜色值相乘,并作为反光值输出
		void surf(Input IN, inout SurfaceOutput o)
		{
			o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb*_Color.rgb;
		}

		ENDCG//标志着Cg代码的结束
	}
}

新建一个Material,将其shader改为"PACKT/Moon" 

便可以在Inspector面板中修改其color属性,修改其纹理贴图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值