图形学
文章平均质量分 82
狂烂球
图形学,离线实时渲染双修
展开
-
Sampling Area Lights
重要性采样概述计算积分需要利用蒙特卡洛方法去近似,蒙特卡洛方法我这里就不讲了,有兴趣的可以看看我的知乎:https://zhuanlan.zhihu.com/p/111736781原创 2022-06-23 23:02:44 · 344 阅读 · 0 评论 -
环境光重要性采样
重要性采样概述计算积分需要利用蒙特卡洛方法去近似,蒙特卡洛方法我这里就不讲了,有兴趣的可以看看我的知乎:蒙特卡洛方法的简单总结 - 知乎重要性采样的目的就是加快收敛速度,所以选择pdf比较重要。所以对于环境光采样,我们需要知道环境光每个方向上的概率密度。环境光贴图环境光贴图能用整个球的所有方向去采样,球面方向能转成极坐标θ[0, π]和φ[0, 2π]表示,所以我们用经纬图(long_latitude_map)来做环境光贴图。维度可以用θ,经度用φ,例如地球仪的贴图展开:采样原创 2022-03-20 22:00:04 · 791 阅读 · 1 评论 -
Ray-Triangle intersection
思路概述射线和三角形求交的思路很简单,求出射线和三角形所在的平面的交点,然后算这个交点的在三角形的重心坐标,重心坐标在[0, 1]之间,说明射线和三角形相交,否则不xinagjia原创 2021-06-21 00:29:04 · 1032 阅读 · 0 评论 -
PBRT-V3体渲染笔记
一 基本原理整理影响radiance在参与介质分布的三个过程:Absortion,Emission,Scattering(分为out-scattering和in-scattering)。Absortion吸收系数为σa,入射radiance Li经过距离dt,吸收后的出射radiance Lo的关系如下: (1)对上式解微分方程得到一个值,表示经过d距离后的剩余比例: (2)Emission这个没什么好说的,直接上公式:Out-Scatterin...原创 2020-08-27 17:02:54 · 668 阅读 · 2 评论 -
pbrt Specular Transmission笔记
平面上各符号定义如下:目标:求出Lt和Li的关系,即ωt方向的出射光的radiance。定义Fresnel反射是Fr。入射的flux是Φi,反射出去的flux就是Φo = FrΦi,根据能量守恒,折射出去的flux就是Φt =(1 - Fr)Φi。根据入射的radiance定义:Φi = Li cosθi dA dωi。Φt = Lt cosθt dA dωt。Lt cosθt dA dωt =(1 - Fr)Li cosθi dA dωi由dω = sin...原创 2020-06-17 11:38:31 · 365 阅读 · 0 评论 -
pbrt Sampling sphere笔记
Sampling a Cone首先说一下圆锥的方向采样。圆锥可以理解成球的一部分,当θmax = π/2的时候,采样圆锥相当于采样半球;当θmax = π时,相当于采样整个球。在圆锥上均匀采样方向,概率密度p(ω)是一个常数p(ω) = c = 1/s;在球面中,s的面积是:那么根据概率密度函数的转换:根据边际概率密度函数:由累积概率函数得到:随机数可写成:cosθ = 1 - ξ1(1 - cosθmax) = 1 - ξ1 + ξ1cosθmax。原创 2020-06-10 17:49:43 · 450 阅读 · 1 评论 -
PBRT中Texture Sampling Rate笔记
定义一个函数T(p),返回p点的纹理坐标。原创 2020-05-30 09:24:48 · 238 阅读 · 0 评论 -
Torrance–Sparrow BRDF Model公式推导
在微表面下,反射模型是perfectly specular,所以微表面法线h符合下面公式:为了后面推导,把ωh,n,ωo和ωi的关系用下图来表示清楚:由于法线分布函数符合下面公式:上面两边乘以dA,得到:ωh方向的微分面积可以这样表示:在单位半球里的数值和面积一样,那么可以理解为:单位半球里朝向ωh方向的面积。但这个时候,他的数值是基于表面面积是1的情况下。但由于我们处理的是微分面积下的情况,所以要乘以dA。...原创 2020-05-27 18:08:24 · 1332 阅读 · 0 评论 -
Mipmap笔记
为何要使用mipmap如上图,假设像素覆盖的纹理范围是上图中的黑点的连线范围,那么在连线范围内的纹素(texel)都对改像素有贡献,要做的filter的半径就比较大,效率就低。解决办法就是prefilter texel,额外把prefilter后的texel存下来,即mipmap。Triangle Filter下的mipmap level选取像素覆盖的texel的范围:(s和t方向)。原则,filter width刚好覆盖选择level的4个texel。如果mipmap层的.原创 2020-05-25 20:18:09 · 379 阅读 · 0 评论 -
实时pbr之Split Sum Approximation笔记
蒙特卡洛方法求反射方程:上面的式子,仔细看会发现,只是针对一个v的方向,而实际上我们的v方向是任意的。于是epic game发明了一个方法用于解决这个问题,叫Split Sum Approximation:上式左边积分值存在cubemap里,右边需要存在一个brdf lut纹理里。这里不说左边的操作,只说右边如何拆分。由于pdf(h) = 4(v·h)pdf(l),参考:微表面模型GGX/Trowbridge-Reitz概率密度函数的推导。上面式子可以写成:..原创 2020-05-21 09:40:55 · 1849 阅读 · 0 评论 -
微表面模型GGX/Trowbridge-Reitz概率密度函数的推导
微表面的法线分布定义如下:其中D(h)是法线分布函数,cosθh是N dot h。根据概率密度函数的转换:p(θ, φ) = sinθp(ω)根据边际概率密度:求条件概率:分别求θ和φ的概率累积函数:上面的积分非常难求,我在https://www.symbolab.com/上解出来。通过代数求得:φ的概率累积函数:...原创 2020-05-19 19:02:01 · 4556 阅读 · 1 评论 -
pbrt中输出图像的生成
样本概要cameraSampleimageSampleFilter的作用原创 2020-05-12 11:06:57 · 234 阅读 · 0 评论 -
Lambert漫反射模型
看了闫令琪的视频,这里简单总结一下。首先有个很重要的漫反射概念:漫反射表示的是光线到达物体表面的某一点,在以它为中心的半球内被均匀反射。经验公式两个问题:1.我们观察到的点,有多少光到达?2.有多少光被反射?从上图可以看出,当face旋转了60°后,同样到达top face(我这里定义成dA)的光量变成一般即cos(π/3) = 1/2。可以得出结论:单位面积接收的...原创 2020-04-30 12:02:24 · 4411 阅读 · 0 评论 -
PBRT里的相机系统
PBRT中,他定义的NDC坐标系和我们图形学里的不一样。图形学中NDC是[-1, 1]³;而PBRT中的NDC如下图:正交投影摄像机当前的坐标是原点坐标,正交投影的width和height暂时未知。这里可以平移-n把n移到原点。缩放矩阵:因此正交投影矩阵是:由于在pbrt中的NDC,左上角是(0, 0, 0),右下角是(1, 1, 0)。所以y的...原创 2020-04-29 13:45:55 · 244 阅读 · 0 评论 -
PBRT中Ray–Bounds Intersections的理解
slaps in bounding box的解释:bounding box有8个点,每个点可以看成是3个slaps的intersection原创 2020-04-20 14:29:11 · 262 阅读 · 0 评论 -
Bounding Volume Hierarchies(BVH)的理解
开篇先带两个问题:1、如何把接近的几何体划分到一个节点上?如上图所示,通过什么方式,把左下角的圆和等边三角形划分到同一个节点下?2、在射线检测中,如何做到先检测离原点最近的几何体?如上图所示,蓝色的ray最近相交点在红色的圆上,怎么做到对这个红色的圆优先检测?...原创 2020-04-17 10:45:29 · 8416 阅读 · 0 评论 -
The Light Transport Equation笔记
渲染方程:其中,Ld可以写成:其中t(p, ωi)是The ray-casting functiongives the point p' on the first surface that the ray (p, ωi) intersects.如下图所示:由于渲染方程可以先写成:...原创 2020-04-08 09:02:40 · 454 阅读 · 0 评论 -
PBRT中Multiple Importance Sampling的解释
原型如下图所示:假设nf = ng = n。上式可以写成: (1)式由于f(X) g(X) pf(X)我们都知道了,那么我们需要求的实数Wf(X)。因为nf = ng上面红框的式子可以写成:所以当nf = ng时,wf可以写成:再看power heuristic的情况:同理,按ns = ni时,ws(x)写成:...原创 2020-04-01 19:37:05 · 663 阅读 · 0 评论 -
微表面模型Beckmann–Spizzichino distribution的概率密度函数推导
微表面的法线分布定义如下: 得到: 1)式 所以得到以下式子:因为θ和φ独立,,,得: (2)式看Beckmann–Spizzichino中,各向同性的分布定义:因为有(1)式和 p(θ, φ) = sinθp(ω)代入(2)式(见:pbrboo...原创 2020-03-19 15:08:59 · 812 阅读 · 0 评论 -
绕Y轴旋转矩阵和绕任意轴旋转的解释
绕Y轴旋转矩阵如下:这里看到-sinθ在左下角,和z,x轴的旋转不一样(他们在左上角),我们来看看为什么。看看各个轴的关系:x=cross(y,z),z=cross(x,y),y=cross(z,x)。以下以左手坐标系为例子(右手坐标是一样的):zb = r cos(α + φ) = r cos α cos φ - r sin α sin φ, xb = r sin(...原创 2019-10-10 14:47:46 · 12165 阅读 · 0 评论 -
详细的世界坐标转屏幕坐标及投影矩阵的推导
投影矩阵网上推导一大堆,怎么构建矩阵,怎么运用透视除法等都有说,但说清楚为什么这样做的貌似不多。我现在尝试用矩阵乘法的本质去说明投影矩阵是怎么推导的。以下向量统一用列向量表示法。1.坐标转换坐标的表达形式(Fundamentals of Computer Graphics, 4th page 135)看上图,p在世界坐标系下的坐标值有两种表示法: ...原创 2019-04-20 18:28:14 · 6106 阅读 · 4 评论