在第90行的小普特源中,方向乘以140,我想知道这个数字是从哪里来的。我希望它能在附加到源的幻灯片中得到解释,但是我找不到关于这个数字来自哪里的解释。
如果我增加这个数字(例如160.0 ),它就会产生某种奇怪的放大效果:

如果我将数字减少(在本例中为125.0),则会得到以下部分黑色图片:

据我所知,在我稍微简化了小点之后,在main函数中,我们在每个亚像素中得到一个随机点,这个点由-0.5和0.5之间的宽度/高度归一化,然后通过x和y轴乘以这些偏移量来计算新的射线方向,然后把所有的东西相加到一起,得到新的方向,如下所示:
fov_scale = 2.0 * tan(vertical_fov / 2.0)
cam_x_axis = vec3(aspect_ratio * fov_scale, 0, 0)
cam_y_axis = normalize(cross(cam_x_axis, cam_direction))
for x, y:
for sx, sy, samps:
// not using smallpt's tent filter
x_in_subpixel = x + sx * 0.5 + erand48(Xi) * 0.5
y_in_subpixel = y + sy * 0.5 + erand48(Xi) * 0.5
// normalize them between -0.5 and 0.5
new_x = x_in_subpixel / w - 0.5
new_y = y_in_subpixel / h - 0.5
offset_x = cam_x_axis * new_x
offset_y = cam_y_axis * new_y
new_direction = cam_direction + offset_x + offset_y
// here we can see that magic number
new_ray = ray(cam_position + new_direction * 140, normalize(new_direction))所以我的问题是:
发布于 2021-06-07 17:07:04
Sphere(1e5, Vec(50,40.8,-1e5+170), Vec(),Vec(), DIFF),//Frnt如果射线起源不向前移动,指数3的球体将与每一条射线相交。
您可以很容易地通过从亮度返回表面法线来验证这一点,而不改变光线的来源。(或者只是移除这个球体)。它还会看起来像摄像机后面的隧道;)
https://computergraphics.stackexchange.com/questions/10717
复制相似问题