
引擎PBR篇
文章平均质量分 63
yxriyin
因为啥都不精通,所以啥都自成一家
展开
-
PBR来龙去脉十一:IBL继续积分部分二
后面的话基本都是对其他论文过程的论述,这里就不展开了,我们回到原始论文。实际操作的时候,我们发现它的采样并没有按照miplevel去来,而是通过不同的粗糙度来做不同的level等级。另外,也增加了cos的权重,这个其实在公式中也没有表现出来。但我们前面已经有过推倒说明,这里就不重复讲了。参考:深入理解 PBR/基于图像照明 (IBL) - 知乎后面的部分相对来说比较零散,主要讲新的光源类型,就不继续展开了,对Unreal的这篇论文也就到此为止了。...原创 2021-11-24 23:44:35 · 282 阅读 · 0 评论 -
PBR来龙去脉十一:IBL继续积分部分
这里提到了我们要计算后面的积分结果的时候,会用到n=v=r的假设,这种近似是更大的不精确的来源。所以我们前面提到split sum里面的cos西塔的变化,其实就是为了获得更好的结果。这里可以看知乎文章:深入理解 PBR/基于图像照明 (IBL) - 知乎这里引入了一篇新的论文:因为是均匀采样,所以概率是p=1/(beta-alpha) 按照公式,就是(1)直接分析1,那么周期T=(beta-alpha)/ N 。这里我们先回忆下之前提到的...原创 2021-11-22 00:49:44 · 700 阅读 · 0 评论 -
PBR来龙去脉十:继续采样的学习
理解下这个例子,首先我们有四维变量,x y u v.可以直接进行随机采样。但我们希望进行分层采样的优化,现在是有4个元素,假设我们让每个元素都有3层,那么就是3的四次方。也就是81次采样。如果我们进行这样的处理,xy为一组,uv为一组,那么xy三层,uv也是三层,那么最终只需要3的平方,也就是9次采样。这样可行是因为,xy的关系较大,而x和uv几乎没啥关系。这里提到根据采样定理,如果可以以足够高的频率采样,再用sinc函数就能完美重建。但有两个问题,1,原函数的频率往...原创 2021-09-12 19:19:20 · 211 阅读 · 0 评论 -
PBR来龙去脉十:低差异序列开头
今天来看PBRT第七章。这里的采样定理把所有图像源作为原始函数,而最终显示器上的值为重建后的函数。取一组样本值并将它们转化为连续函数的过程叫做重建。这里要注意,光线追踪算法的渲染过程并不是单纯的把目标的像素值从原始的像素值直接拷贝过来,后面需要根据采样的定理来理解这个差别。采样和重构过程使用了近似技术,这就会出现所谓“走样”(aliasing)的失真现象,这种失真会有多种情况,其中包括锯齿边和动画中的闪烁现象。失真现象的出现是因为采样过程并不能够获取连续图像函数的全部信息。..原创 2021-09-01 15:06:29 · 308 阅读 · 0 评论 -
PBR来龙去脉九:插入一个对UE4 split sum的解析翻译
原文地址:https://zero-radiance.github.io/post/split-sum/UE的论文里,提到了:但这个约等式怎么得出它并没有解释,反而是有人根据Unity那边的IBL实现来反推这个等式。前面是假定这个积分可以拆成Lp出来,那么九得到了:重点来了,我们看后面这个怎么得出的。首先因为是根据NDF来做蒙特卡洛采样,之前我们就有这样的代码:根据公式:SampleColor * Nol * D * G * F / 4 * Nol ...原创 2021-08-06 14:34:50 · 605 阅读 · 0 评论 -
PBR来龙去脉九:继续Unreal的IBL部分
这里做了部分修改,将k = alpha / 2. 为了更符合GGX看几个函数图像对比函数图像绘制网站:https://www.desmos.com/calculator?lang=zh-CNhttps://academo.org/demos/3d-surface-plotter/这里还提到了,使用了迪士尼建议的重映射来减少"hotnesss",不过这只能针对精确光源,对于IBL,使用这样的映射会有一些问题。这里使用了球形高斯近似来代替schlick'...原创 2021-08-05 16:38:11 · 406 阅读 · 0 评论 -
PBR来龙去脉九:一个小结尾
本来蒙特卡洛积分还要继续学习,但担心忘记前面论文的部分,所以我们先把《An Inexpensive BRDF Model for Physically-based Rendering》这篇论文结束掉。这里的29其实需要利用我们进一步对蒙特卡洛的学习才行。这里本来认为G1G2已经考虑了几何遮蔽,但他仍然希望能考虑多次反弹,这里认为多次反弹之后,光线方向是随机的,于是认为Z=A=1是合理的。因为是完全随机,所以=1 也就是概率完全均匀的意思。最后一段是经验论了。下一步..原创 2021-08-02 14:21:51 · 216 阅读 · 0 评论 -
PBR来龙去脉九:IBL学习蒙特卡洛的基本概念
这里要注意,ξ是0-1的均匀分布,那么假设i=2,那么p1 < ξ < p1 + p2也就是1/6 < ξ <= 2/6 ,那么ξ刚好就映射到i=2的时候的概率。也就是离散概率和连续概率之间的关系建立。这里引出了CDF,也就是累计分布函数,顾名思义,就是小于等于这个值的概率。这里引出了概率密度函数PDF,PDF是CDF的导数。这里描述了期望的定义,x范围是0-Π,那么它的概率是均匀的,所以p(x)=1/Π所以按照期望的公式...原创 2021-07-30 16:28:33 · 527 阅读 · 0 评论 -
PBR的来龙去脉九:IBL部分开篇
IBL的经典论文先看Unreal的《Real Shading in Unreal Engine 4》Burley漫反射模型:这是一个经验模型,后续讲到寒霜引擎的pbr的时候我们再来细看。Unreal这里认为这个漫反射和兰伯特漫反射的区别不大,所以就没有发更多的精力去评估。这里我们知道前面我们推到过D,其中e表示椭圆的横轴纵轴之比,也就是和粗糙度。但是实际使用中,迪斯尼建议用alpha=粗糙度的平方来进行变形,这样可以得到更好的结果,具体参考迪斯尼原版论文,中文版具体可以参考https原创 2021-07-25 22:53:16 · 458 阅读 · 1 评论 -
PBR的来龙去脉八:完成G的部分
接下来我们要看斯密斯函数的拉伸不变性,也就是形状不变性。首先形状不变性是非常重要的,因为现实中的高光是长拖尾的,我们希望不会因为缩放而导致长拖尾的特性消失。我们拉伸的时候,斜率和坡度也是一起拉伸的,这样本来被挡住的微面依然是被挡住的。这里要注意观察方向,本来是1/tanθ,缩放后,也会变,变成1/2tanθ64我们上一篇推到过了,这里就不重复了。这里认为改变粗糙度α的值,相当于拉伸P,那么就是说明这个分布具有形状不变性。这个要这么理解,拉伸的时候,其实就是从粗糙变光滑的过程。..原创 2021-04-16 11:55:12 · 402 阅读 · 0 评论 -
PBR来龙去脉篇八:开始推导G(3)
接上一篇。论文定义了一个变量ξ,代表表面高度偏差。我们让宏表面和z=0平面重合。那么ξ其实就是表面上每个点的z的坐标。我们再定义一个连续的概率密度函数P1(ξ)。同时为了方便计算,认为这个概率密度分布函数是高斯分布的。关于高斯分布可以参考:https://zhuanlan.zhihu.com/p/128809461对于任意一个ξ,取极小的一个Δξ,就可以得到下面的式子。μ=0.里面σ是均方根,也就是标准差。这里要这么想,R是在宏表面...原创 2021-04-14 20:00:02 · 360 阅读 · 0 评论 -
PBR来龙去脉篇八:开始推导G(2)
首先还是先看这篇论文:Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs 这里要注意,对于不同的L积分之后,还要除以全部的面积,因为我们要的L是单位面积的。这里我们前一篇已说明,不再赘述。这里要注意,D(m)dm就是单位面积下这个立体角方向全部对应的面积,然后再乘以cos,就是投影在视角平面的面积,因为还有遮挡,所以把遮挡的部分去掉。看分母,其实就是...原创 2021-03-31 19:44:38 · 323 阅读 · 0 评论 -
PBR来龙去脉篇八:开始推导G(1)
先看这篇论文:Microfacet Models for Refraction through Rough Surfaces这里需要仔细理解下,这里是直接给出了结果,除了我们常见的FDG,还有两个矫正因子。配合我们前面的文章看:对于微表面而言,我们需要知道的是Φh的值,它和入射存在一个cos的关系,也就是:可以看到,o.m越大,Φh越大。o.n越大,Φh越小。同理考虑Φi,也是一样的。大部分情况下,菲涅尔被认为是9的形式,下面o.m..原创 2021-03-31 17:34:35 · 366 阅读 · 0 评论 -
PBR来龙去脉篇七:开始推导D
现在我们用的D项来自于Trowbridge Reitz 1975这篇论文。下面开始按照论文的部分简单进行说明。公式和图片看上去很复杂,其实和正常的微表面模型的区别只是把平坦表面改成了弯曲的微表面。其他依然符合irradiance,radiance,intensity的定义。...原创 2021-03-07 21:50:32 · 886 阅读 · 0 评论 -
PBR来龙去脉篇六:开始进入高光反射部分
首先我们理解下球面积分,BRDF里面大量使用了球面积分的概念,而为什么使用球面积分,主要是因为我们的微表面模型是需要将各个方向的光线都考虑进去,而球面则包含了各个方向的几何信息。我们先开始着重研究D项:这里必须要理解这个:我们想要知道的是微表面上,和Wh方向一样的表面的总面积。看下图:我们要的Awh,其实把它放到球面坐标上,就是图中的投影面积dA.于是我们这么去理解这个球面概率分布函数D首先D(wh)*dwh,就是表示单位面积的宏观表面下,微观..原创 2021-01-21 00:41:08 · 504 阅读 · 0 评论 -
PBR来龙去脉篇五:建立标准的重要性和寒霜引擎的pbr材质综述
float3 F_Schlick (in float3 f0 , in float f90 , in float u )2 {3 return f0 + ( f90 - f0 ) * pow (1. f - u , 5. f);4 }56 float V_SmithGGXCorrelated ( float NdotL , float NdotV , float alphaG )7 {8 // Original formulation of G_SmithGG...原创 2021-01-03 23:05:42 · 603 阅读 · 0 评论 -
PBR来龙去脉篇四:漫反射具体计算
原创 2021-01-03 17:42:12 · 1264 阅读 · 0 评论 -
PBR来龙去脉篇三:一些知识储备
同样,我们得知道一些重要的细节。首先,我们得知道哪些是假定的。假定1.漫反射是均匀的。float DisneyDiffuse(Vector3 In, Vector3 Out){ float oneMinusCosL = 1.0f - AbsCosTheta(In); float oneMinusCosLSqr = oneMinusCosL * oneMinusCosL; float oneMinusCosV = 1.0f - AbsCosTheta(Out).原创 2021-01-02 22:27:58 · 517 阅读 · 2 评论 -
PBR来龙去脉篇二:解释一些问题
为什么RGB颜色空间能表示的色域较小。https://www.zhihu.com/question/30318241/answer/47686963如果使用了HDR格式,那么可以用超过1的值来代表颜色。不过最后还是得想办法映射回显示器识别的0-1的范围。...原创 2020-12-20 21:53:06 · 468 阅读 · 2 评论 -
PBR来龙去脉篇一:光和人眼感知颜色
早期光照模型:兰伯特,BlinnPhong光照模型。缺点:油腻,塑料感很强。PBR第一步:基于物理的渲染方法的第一步都是以精确的方式来量化光线。辐射度学(radiometry)光度学(photometry)我们对颜色的感知是一种心理物理现象(psychophysicalphenomenon):对物理刺激的心理感知。辐射度学研究的是电磁辐射的测量。 这种辐射以波的形式传播。不同波长的电磁波——具有相同相位的两个相邻点之间的距离,例如两个相邻的波峰——具有不同...原创 2020-12-20 20:45:49 · 3571 阅读 · 3 评论