GAMES202 笔记-实时基于物理的材质

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GAMES202 笔记-实时基于物理的材质相关的知识,希望对你有一定的参考价值。

参考技术A

PBR:Physical-Based Render,基于物理的渲染,渲染中的任何事都应该是基于物理的,包括材质、光照、相机(透镜成像)、光线传播等。由于性能限制, RTR中说的PBR严格来说并不一定是PBR

RTR中的PBR材质:

菲涅尔项
有多少能量被反射取决于入射光的角度,当入射方向接近掠射角度的时候,光线是被反射的最多的。根据导体与绝缘体的区别,反射率随视角的变化有很大不同。
菲涅尔项要综合考虑光线的s极化和p极化,为此需要知道 两种介质的折射率 以及 入射角和折射角 。实时渲染中常常用Schlick近似来近似表述菲涅尔项。

法线分布
法线分布函数(Normal Distribution Function,NDF)通过法线分布来描述不同微表面的法线朝向,从而描述微表面是否光滑 。当法线分布比较集中,则会得到更Glossy的结果;如果法线分布比较分散,则会得到更Diffuse的表面。有常用的一些模型来描述法线分布( Beckmann模型 GGX模型 、其他模型等)
主要介绍 Beckmann GGX 两个模型。

- Beckmann NDF
作为NDF函数,自然描述的是微表面法线分布的集中程度,描述 微表面上法线为 ( 宏观上为入射光和出射光的半程向量)方向的概率的函数, 可以是半球上任意方向(取决于宏观的入射光和出射光),描述这一方向对应的值是多少,需要NDF计算。

- GGX NDF
与Beckmann形状类似,但是与Beckmann相比有个明显的优点, GGX更加长尾 ,比Beckmann 高光更柔和

几何项
另一个名称是Shadowing Masking项。 解决的是微表面的自遮挡问题 ,尤其在视角越靠近掠射角度下,自遮挡项越关键。
自遮挡可以分为两种情况: 挡住入射光线,被称为阴影(Shadowing);挡住出射光线,被称为遮蔽(Masking)

Kulla-Conty估计方法就是通过经验来补足多次反射丢失的能量。

这里 假设任何方向入射的光线亮度为1 (也就是渲染方程的光线项为1), 假设BRDF是各向同性的 。最终积分结果的含义是,在所有的光线亮度均为1的情况下,经历了光线1次弹射后(也就是直接光照然后反射)射出的总能量是 。那么 丢失的能量就是

我们也可得知,不同出射方向积分得到的值是不同的,因此不同观察方向损失的能量就是 。考虑BRDF的可逆性,除了考虑出射 方向,还要考虑入射的 方向(也就是要考虑入射丢失的和出射丢失的),同时乘归一化量 ,得到我们需要设计的BRDF为 ,要求将这个BRDF积分后,要等于恰好等于丢失的能量 。
这么设计BRDF的原因是因为简单直观,我们保留下需要求出来的积分值 ,并且考虑由于BRDF可逆性的另外半边的 ,剩下的部分我们写成一个常数c不去管他,只要求BRDF积分恰好等于丢失能量即可,当然这个c是可以求出来的:
那么,我们就得到了损失能量的BRDF
如果我们要检验一下我们得到的BRDF形式是否正确:

此时依然有问题出现
当单次反射的BRDF是有颜色的,意味着能量发生了吸收,能量消失是应该存在的,一次反射的能量与多次反射的能量积分不为1了。
Kulla-Conty方法也考虑这种情况: 先考虑没有颜色的情况,然后再考虑由于颜色吸收引起的能量损失。 为此需要定义平均菲涅尔项,表示了不考虑观察方向的情况下,菲涅尔项的平均值。等价于, 不管入射角多大,平均每次反射会有多少能量反射。

最终累加会得到颜色项 ,将这个颜色项乘到不考虑颜色的BRDF上,从而得到有颜色的时候除去吸收能量外应该补足的能量。

能帮助计算微表面下的着色问题,但是有条件: 主要是GGX法线分布 不考虑阴影 统一亮度的多边形光源下

多边形光源照明在理论上不难实现(采样方法),但这在实时渲染领域有两个挑战:首先, 积分球面多边形上的分布是一件困难的事, 或有巨大开销,或不存在解析解 ;其次, 基于物理的材质模型拥有一个复杂的分布,包含粗糙度、各向异性划痕和倾斜度等基于物理的特性

主要思路:任意2D的BRDF积分瓣能被转换成余弦分布(一种新的球面分布),那么原本光源的形状也能会随之变化,变换后的光源照亮变换后的BRDF和变换前是等价的。
为什么这么做:对于任意的BRDF和任意的光源,计算渲染方程的积分不好计算,但经过变换后,问题转换成了在固定的余弦下对于任意的多边形光源进行积分的问题。这样的积分问题是有解析解的。

核心方法:

原因:微表面模型无法描述更多的真实材质,微表面模型对艺术家不友好。
目的:并不要求物理上准确,但是对艺术家友好,但还会把迪士尼原则的BRDF认为成PBR

好处/坏处:好懂、好控制,参数空间大,能表现宽泛的材质模型,开源的实现,但不是基于物理的。

具体详见:毛星云《PBR白皮书》

NPR=(快速地、可靠地)风格化 。NPR的目的是为了制造一种艺术化的效果,从而使得渲染结果虽然远离真实感,但是有自己独特的风格和特点,且能够清晰地完成想要的表达。NPR通常是一些轻量级的处理,一般是在shader中做一些简单但是很聪明的处理从而完成风格化.。
从真实渲染出发->抽象->强化重要的部分
NPR在艺术、渲染可视化、指示说明、教育、娱乐等领域应用广泛。
最后总结:NPR最重要的过程是艺术风格分析的过程,是一个艺术翻译的过程。

简单介绍了一些效果的做法。
描边效果
首先为模型的各个边缘分类和定义。B是面的边缘,C是折痕,M材质交界,S要被多个面共享的C。

大色块效果

表面风格化
例如想要获得素描风格化效果,可以选择的步骤是:

我的渲染技术进阶之旅Google开源的基于物理的实时渲染引擎Filament源码分析:在android中如何使用matc命令自动将输入材质定义.mat文件转换为输出材质包.filamat文件?

文章目录

一、需求描述

Filament

以上是关于GAMES202 笔记-实时基于物理的材质的主要内容,如果未能解决你的问题,请参考以下文章

《GAMES104-现代游戏引擎:从入门到实践》-05 学习笔记

我的渲染技术进阶之旅Google开源的基于物理的实时渲染引擎Filament源码分析:在android中如何使用matc命令自动将输入材质定义.mat文件转换为输出材质包.filamat文件?

Building Worlds In Unreal 学习笔记——20-23 程序化植被/草Billboard材质/实时虚拟纹理(RVT)的使用

Godot Shader笔记:着色器材质ShaderMaterial

unity之PBR材质流程与材质制作实践

论文阅读|《基于实时数据驱动的数字孪生车间研究及实现》