基础渲染光照介绍(一)(先行版)

基础光照

lambert(漫反射)
Phong(reflect(-r, n) dot v)
Bling-Phong(half-verctor dot n)
法线贴图
要获取法线贴图里的法线的信息, 需要先Unpack一下, 然后获得的是模型空间的法线, 再用TBN矩阵转换到世界空间, 这样就得到了世界空间的法线

然后将法线代入到 lambert, Phong, Bling-Phong就得到了相应的光照信息

CubeMap环境贴图

用于做反射效果, 环境光效果
详情见庄懂老师课程, 百人计划暂时没详细内容
调用Cubemaplod就会Unity就会自动生成mipmap(666!哇, 我才法线lod有这用处)
然后就可以通过mipmap来控制对应的粗糙度

具体步骤:
先获得反射值
reflect(-viewDir, normal), 再normalize
对采样的就是视角反方向关于法线镜像后的方向
得到worldRef向量
在这里插入图片描述
然后用worldRef位置信息, 去采样Cubemap

IBL(基于图像的光照)

也就是将一张图当作光源, 来加入它的高光计算里面

计算IBL的时候通常会用texlod来进行pbr里的粗糙度的表现

??? 不太懂, 等我看完learnOpenGL来补充

代码中的trick

金属质感 trick

当物体是金属的时候, 不太受到diffuse的影响, 想要还原纯金属的效果, 但是又想保留有非金属的质感, 这时候就需要和漫反射的颜色相关联

	... 
	specular = lerp(diffuse * specular, specular, _Gloss/255);
	...

环境反射的trick

同样也是用_Gloss/255去控制有没有受到漫反射影响
目的也是跟上面一样

	...
	reflect.rgb = lerp(reflcol * diffuse.rgb, reflcol, _Gloss/255);
	...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值