Unity ShaderLab特效教程 着色器实例 代码+注释 【根据法线方向着色】

如果代码中有什么不清楚请查看以下基础知识

Shader基础知识
unity3d 中 七种坐标知识详解
根据法线着色的着色器

某些创意小手游,使用该着色器

Shader "Custom/SurfaceShader"
{
	SubShader
	{
		Tags { "RenderType" = "Opaque" "ForceNoShadowCasting" = "True" "IgnoreProjector" = "True"}
		LOD 130

		Pass
		{
			//CG代码块
			CGPROGRAM
				#pragma vertex vert
				#pragma fragment frag
				//引入unityCG处理库
				#include "UnityCG.cginc"

				//定义一个数据结构,该结构包含一个4维向量,一个三维向量
				struct v2f
				{
					//获取位置
					float4 pos : SV_POSITION;
					//获取颜色
					float2 color : COLOR0;
				};
	
				//顶点程序代码,用于计算位置和颜色。   v2f是刚才新建的数据结构,vert是在cgprogram注册的用于顶点计算的程序名
				//该方法输入值appdata_base v是与模型关联后自动输入的       
				//该方法输入值appdata_base v是与模型关联后自动输入的,他的输出值会自动传入到片段代码块。所以相关联的顶点和片段方法的输出和输入类型一定要一致       
				v2f vert(appdata_base v)
				{
					//创建v2f数据 o
					v2f o;
					//计算位置
					o.pos = UnityObjectToClipPos(v.vertex);
					//计算颜色
					o.color = v.normal* 0.5 + 0.5;
					//返回该v2f数据
					return o;
				}
				//片段程序代码
				//该代码块会自动接受顶点着色器的输出值,而他的输出值会交给像素着色器最终显示在屏幕上
				half4 frag(v2f i) : COLOR
				{
					//返回输入的颜色,并设置透明度为1
					return half4(i.color,0.5,0.1);
				}
			ENDCG
		}
	}
	Fallback "VertexLit"
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千年奇葩

从来没受过打赏,这玩意好吃吗?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值