Unity|ShaderLab笔记整理-五(逐像素漫反射+环境光 +高光反射(Phone+ BlinnPhong))

这篇博客详细介绍了如何在Unity中将逐顶点的漫反射高光转换为逐像素光照,重点讲解了BlinnPhong光照模型的实现过程,包括法线和顶点位置的计算,以及环境光、漫反射和高光的片段函数计算。文章还对比了Phong和BlinnPhong光照模型的区别,并提供了Unity内置Lighting.cginc文件的相关信息。
摘要由CSDN通过智能技术生成

-接上篇-修改逐顶点的漫反射高光为逐像素类型
首先:法线与顶点在世界空间下的矩阵与位置保留在顶点中计算
其次:环境光+漫反射+高光光照计算移动到frag片元函数中
这里写图片描述

	Shader "Davia/08_Specular Fragment"{

	Properties{
		_DiffuseColor("Diffuse Color",color) = (1,1,1,1)
		_SpecularColor("Specular Color",color) = (1,1,1,1)
		_SpecularPow("Specular Pow",Range(1,20)) = 1.0
	}

	SubShader
	{
		Pass
		{
			Tags{"Lightmode" = "ForwardBase"}
			CGPROGRAM
			#include"Lighting.cginc"
			#pragma vertex vert
			#pragma fragment frag

			fixed4 _DiffuseColor;
			fixed4 _SpecularColor;
			fixed  _SpecularPow;
			

			//application to vertex
			struct a2v{
				float4 vertex:POSITION;
				fixed3 normal:NORMAL;

			};
			//vertex to fragment
			struct v2f{
				float4 position:SV_POSITION;
				float3 worldnormal:TEXCOORD0;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值