草庐IT

Unity Shader - 兰伯特漫反射

兰伯特漫反射公式:漫反射(Diffuse)= 光源颜色*max(0,cos(光方向和法线的夹角))公式原理: 从上面图片可以看出光照方向L与物体法相N形成的余弦值越大,反射光越大,角度为0度的时候最强Cos(0)=1,大于等于90度的时候为0Cos(90)=0;所以我们首先需要计算出法向量N和入射光方向L的角度的余弦值。我们可以通过他们的点乘来计算,公式如下:把向量归一化处理后,|L|和|N|都是1,可以简化为:让我们来实现以下:逐顶点漫反射:Shader"Unlit/001"{Properties{//漫反射颜色_Diffuse("_Diffuse",Color)=(1,1,1,1)}Sub

菜鸡shader:L1基于兰伯特原理的玉石、条纹、点阵材质

目录玉石材质条纹材质点阵效果这里就简单说下原理吧,使用unity很久之前的一个插件shaderforge,最近几年好像在unity资源商店已经不再维护了,但是有shaderforge的官网:在这,碰到节点不会的时候可以查一下官方文档,连连看完了还能直接看代码,还是很方便的,节点也比较少。其实可以用ue做,但是ue4节点还不咋熟悉,先用unity熟悉原理,后面转到ue也方便。玉石材质先放一下材质的效果:首先是兰伯特基本原理,这里采用的是半兰伯特模型,兰伯特模型的取值区间是[-1,1],但是这样映射到材质上的话就有一大半的区域是黑色的,因为值小于0的区域默认取值颜色是黑色,所以将兰伯特的取值区间变

Shader学习第六篇:Lambert (兰伯特)光照模型

漫反射的定义漫反射是投射在粗糙表面上的光向各个方向反射的现象。当一束平行的入射光线射到粗糙的表面时,表面会把光线向着四面八方反射,所以入射线虽然互相平行,由于各点的法线方向不一致,造成反射光线向不同的方向无规则地反射,这种反射称之为“漫反射”或“漫射”。这种反射的光称为漫射光。Lambert定律漫反射光的强度近似地服从于Lambert定律,即漫反射光的光强与表面法线和光源方向之间的夹角的余弦成正比。原理公式:diffuse=I*cosθ;diffuse:反射光线的的光强;I:入射光线的光强,方向如上图所示;cosθ:光源方向和该顶点法线的余弦,光源方向·法线方向,cosθ=dot(L,N);在