Unity入门—顶点着色器与片元着色器以及它们的通信机制

逐个顶点调用的,而片元着色器是柱逐片元调用的。片元着色器中的输入实际上是把顶点着色器的输出进行插值后得到结果。

现在开始实验:

双击unity shader文件,删除所有代码,并复制下面这一段:

Shader "Custom/Chapter5-SimpleShader"//shader文件名
{
           /*因此SubShader将使用默认的渲染设置和标签设置。在SubShader语义块中,我们定义了一个
   Pass,在这个Pass中我们同样没有进行任何自定义的渲染设置和标签设置。*/
	SubShader
	{ 
		Pass 
		{ 
			CGPROGRAM 

			#pragma vertex vert  //包含了顶点着色器
			#pragma fragment frag  //包含了片元着色器
			
                        /*顶点着色器代码它是逐顶点执行的。 vert函数的输入v包含了这顶点的位置,
 这是通过 POSITION 语义指定的。 它的返回值是一个float4类型的变量,它是该顶点在裁剪空间中的位置*/ 
			float4 vert(float4 v : POSITION) : SV_ POSITION 
			{ 
				return mul(UNITY_ MATRIX_ MVP, v); 
			} 

                        /*frag 函数没有任何输入。它的输出是 一个 fixed4 类型的变量,并且使用
了 SV_ Target 语义进行限定。 SV_ Target 也是 HLSL 中的一个系统语义, 它等同于告诉渲染器,
把用户的输出颜色存储到一个渲染目标( render target)中,这里将输出到默认的帧缓存中。片元着色器
中的代码返回了一个表示白色的 fixed4 类型的变量。 片元着色器输出的颜色的每个分量范围在[0, 1],
其中(0, 0, 0) 表示黑色, 而(1, 1, 1) 表示白色。*/
			fixed4 frag() : SV_ Target 
			{ 
				return fixed4(1. 0, 1. 0, 1. 0, 1. 0); 
			} 
			
			ENDCG 
		} 
	}
}

效果图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TIM33470348

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值