Unity游戏图形渲染效果系列之基于物理的渲染


 本章主要通过Cook-Torrance模型去讲解基于物理的渲染,目前的主流渲染和Unity的Standard Shader采样的都是CookTorrance模型。

一.CookTorrance介绍及其公式

  主要公式如下,光照分为普通漫反射+高光部分,CookTorrance模型主要计算的是高光部分的效果。普通漫反射就用Lambert模型就可以了,高光部分由FDG三项组成,D项代表微平面法线分布函数,G项表示衰减函数,F项表示Fresnel函数。其中最重要的是微平面法线分布函数,其有三种模型可以选择 分别是BilinnPhong,Beckmann和GGX模型。BilinnPhong就是传统的高光模型,效果表现一般,Beckmann是后期提出的效果稍微好一点的模型,但是现在主流效果都是采用GGX,该模型在高光边缘表现的光晕渐变效果更好。对于F项和G项也有很多数学模型供选择,如下都列出来了,但是在手机上由于计算量限制和FG项对效果的贡献度不够,一般可以采用省略或缩减FG项,重点表现在GGX函数上。如下列出了大部分目前所使用的光照各项函数:                                 

二.微平面法线分布函数及其表现

 微平面法线分布函数重点表现在高光部分,其效果由两个参数控制,分别是金属度和光滑度(粗糙度=1-光滑度)。如下图所示,

使用GGX模型时,当光滑度从0.2到0.9的范围内,高光越来越明显,最终收缩、从该图可以看出粗糙度对高光效果的影响。

 下面再来对比一下各种光照模型公式的选取,对高光效果的影响,如下图可看出左边D项对比的时候,GGX模型效果明显好于Blinn和Beckmann模型。再对比右边的F和G项会发现,不同数学模型的选取 也会造成一定的效果差异,但是主体对效果的贡献度还是GGX模型会更大一些。F和G可以根据实际情况进行选取。



三.Fresnel方程

 常用的就是Fresnel-Schlick方程,公式如下:


其中F0是表面基础反射率,也就是当我们垂直观察每个表面或者材质时的基础反射率。如下是Fresnel效果

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值