
RayTraceSeries
文章平均质量分 82
头发掉光的程序员
这个作者很懒,什么都没留下…
展开
-
Sampling Lights Directly
我们之前的采样方式都是在hitPoint的位置进行半球采样,这样做会有一个问题,如果我们这个点本来是被灯光照到的位置,但我们采样的过程中却并没有直射灯光的射线,会导致本来直射很亮的点却错误的着色。所以我们想到从灯光来进行采样。原创 2025-02-17 20:34:49 · 524 阅读 · 0 评论 -
正顺基碱基
之前的采样章节,开发了相对于z轴生成随机方向的方法,但是这个方法过于的片面,我们不能够保证所有的法线都与z轴对齐,我们需要考虑到不同的方向。原创 2025-02-17 13:03:24 · 613 阅读 · 0 评论 -
rayTrace 采样
这里的重要性采样是通过pdf的值来决定的。而SamplePDF的表示采样这个方向的radiance 的概率。文章中的意思我理解了一下,就是我们有两个采样的方向,一个是方位角一个是天顶角,不管是哪个的采样,其采样是独立的但是他们的概率都是1.于是我们需要在0到1的范围内进行采样.首先我们来看天顶角。我们计算到指定的r1的概率的CDF得到下面的推算(CDF就是到指定的角度的概率只和也就是一个概率密度的积分)但是我们的采样的方式并不是在交点处的半球内均匀的采样,而是依据normal来在一个球内采样。原创 2025-02-16 20:57:43 · 274 阅读 · 0 评论 -
Instance(案例)
Cornell Box一般来说还有两个box,这里我们可以撞见六边面来模拟对于一个立方体,六个面,分别的求每个面的形状就可以。定义边界点定义轴向量这里我们按照正对一个面的左边的点来定义起始的位置,然后定义每个面的轴在cornell_box中加上两句在真实的Cornell Box中这两个盒子是有不同程度的倾斜的。所以我们需要对他进行旋转等操作。原创 2024-08-15 14:14:16 · 1002 阅读 · 0 评论 -
Light(灯光)
笑死,光线追踪终于有光了。实际上是对一些常规的物体,让它发射出光线。原创 2024-08-09 15:33:43 · 346 阅读 · 0 评论 -
Quadrilaterals(四边形)
虽然我们将我们的新原语命名为“四边形”(quad),但技术上它将是一个平行四边形(对边平行),而不是一个普通的四边形。与Q相对的四边形的角落由Q+u+v给出。这些值是三维的,即使四边形本身是一个二维对象。例如,一个角落在原点,沿Z方向延伸两个单位,在Y方向延伸一个单位的四边形将有值Q=(0,0,0),u=(0,0,2)和v=(0,1,0)。四边形是平面的,所以如果四边形位于XY、YZ或XZ平面上,它们的轴对齐边界框(Axis-Aligned Bounding Box, AABB)在一个维度上的厚度将为零。原创 2024-08-08 21:37:15 · 1202 阅读 · 0 评论 -
柏林噪声(Perlin Noise)
要获得看起来很酷的实心纹理,大多数人使用某种形式的Perlin噪声。Perlin噪声返回类似下图的噪声。Perlin噪声的一个关键部分是它是可重复的:它接受一个3D点作为输入,并总是返回相同的随机数字。附近的点返回相似的数字。Perlin噪声的另一个重要部分是它要简单快速,因此通常作为一种技巧来实现。原创 2024-08-07 21:21:14 · 1244 阅读 · 0 评论 -
光线追踪(纹理映射)
最近在跟着ray trace in one week来学习光线追踪(很多概念茅塞顿开)做到一半想着记录一下(比较随心)上面是之前的效果。原创 2024-08-05 19:29:32 · 806 阅读 · 0 评论 -
RayTraceSeries分层采样
之前在像素上采样的方式为在每个像素额外的采样多次,然后计算一个期望,这就是MSAA的思想,这里的采样是随机的采样。这样可能会导致一个问题,我们知道采样非常的影响结果,如果采样的分布不均匀,就会导致结果的不正确。于是这里比较了分层采样和随机采样的结果的差别。最终的比较结果是分层采样的方式更加贴近真实的PI的值。比较的案例是利用一个单位圆来预估PI的大小。于是我们把它带入到射线的采样过程中。原创 2025-02-15 16:12:16 · 251 阅读 · 0 评论