【《Unity Shader入门精要》 提炼总结】(八)第八章·Phong公式介绍&高光反射Shader编写&逐顶点光照&逐像素光照&Blinn-Phong光照

 

 

 

本文由@唐三十胖子出品,转载请注明出处。  
文章链接:https://blog.youkuaiyun.com/iceSony/article/details/84349017

 

 

这篇文章将总结和提炼《Unity Shader入门精要》的第六章“Unity中的基础光照”的内容。

通过这篇文章,你可以知道

1)Phong公式介绍

2)高光反射的逐顶点光照模型

3)高光反射的逐像素光照模型

4)高光反射的Blinn-Phong光照模型

一.Phong公式介绍

Phong公式:高光反射颜色=光的颜色*高光反射系数*max(0,反射光在视角方向的投影)^反射度

(ShaderLab编写中,高光反射系数与反射度都是在属性中定义的)

那么反射光与视角方向怎么获取呢?

通过上一章节的学习我们知道NORMAL语义是模型空间法线,_WorldLightPos0是世界空间光照方向

可以通过内置函数reflect(法线,光照方向)

由于获取反射方向由于光线i是指向顶点的所以我们relect最后要加个负号:)

视角方向其实Unity中也有相关获取方式:_WorldSpaceCameraPos.xyz

好了有了这些参数我们开始实现吧。

二.高光反射的逐顶点光照

第一步设置属性

Properties
{
    _Specular("反射系数",Color) = (1.0,1.0,1.0,1.0)
    _Gloss("高光区域",Range(8, 256)) = 20
}

第二步设置pass的调用与光照模式(结构体和漫反射光照没什么区别)<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值