Unity 3D 图形学Shader之顶点着色器(四)

 由这一章节可知Gpu的渲染流程如下所示

Gpu: 渲染管线(管道):顶点着色器——>光栅化——>片段着色器——>alpha测试——>模版测试——>深度测试——>Blend——>Gbuffer——>BrontBuffer——>framebuffer——>显示器

整个流程里面我们能够改变的:顶点着色器,片段着色器以及三大测试。

首先对顶点着色器进行代码编辑:新建TestVertex Shader脚本并打开进行编辑

Unity 3D 图形学Shader之顶点着色器(四)

把Shader脚本相关内容去掉,只剩下简单结构如下:

Shader "Hidden/TestVertex"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
	}
	SubShader
	{
		
		Pass
		{
			
		}
	}
}

顶点着色器:

1.计算顶点的颜色 2. 灯光的作用

计算顶点的颜色两种方式:直接调节,通过变量调节

Unity 3D 图形学Shader之顶点着色器(四)

接下来:灯光来了以后,材质球如何与灯光作用:

Unity 3D 图形学Shader之顶点着色器(四)

下面代码针对光的计算公式分别对相应颜色进行调试

Shader "Hidden/TestVertex"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
		_TestColor ("Color", Color) = (0,1,1,1)//第二步 为了方便调试定义颜色变量
	}
	SubShader
	{		
		Pass
		{
		// Color(0,1,1,1)	//第一步 改变顶点颜色		
		// Color[_TestColor]//第二步 引用变量

	
		//第三步:定义材质与灯光如何作用
		 Material
		 {
		  // Diffuse(1,1,1,1)//材质球的漫反射如何与灯光作用
		  // Diffuse[_TestColor] //漫反射
		  // Ambient[_TestColor]// 环境光
		  // Specular[_TestColor]//镜面反射
		    Emission[_TestColor]// 自发光
		 }
         Lighting  On // 负责所有灯光的开关,因为默认是关闭的
		 SeparateSpecular On // 高光的开关
		}
		
	}
}

下一章节讲解:片段着色器

相关知识借鉴:http://video.mobiletrain.org/course/index/courseId/535?pinzhuanbdtg=biaoti