Questions tagged «raytracing»

光线跟踪(与扫描线渲染相对)所特有的问题,光线跟踪是将相机的光线与场景中的对象相交的3D图形技术。

1
偏振反射和折射,可包裹水面
我想在环绕轨道的栖息地中渲染逼真的水。该图像不需要实时生成,尽管我也不想花费数周的时间。我正在寻找一种可以在数小时或数天内生成逼真的图像的方法。 栖息地是圆柱形的,弯曲的内表面是生活空间。圆柱体绕其轴线的旋转提供了重力的近似值。我不是在寻找模拟物理过程的细节,而只是在寻找图像的渲染。 我想了解的特定方面是极化。从水表面反射的光被偏振,使进入水中的光垂直于反射光偏振。在只有一个水表面的情况下,忽略这种影响并简单地对反射和透射的光的比例进行建模就可以很好地工作,但是如果圆柱状栖息地的水体占曲面的比例很大,那么给定的光线将使多种不同角度的多次反射。这意味着被反射的光的比例将取决于先前施加给它的偏振角。 是否有现成的方法结合了这种效果,可以从弯曲的水表面产生逼真的多重反射图像?他们还需要对偏振模型进行建模。在某些地方水会很浅,所以我希望偏振折射会影响结果。 如果没有,我可以改用现有的光线跟踪器,还是需要从头开始? 我正在寻找现实主义,以便发现意想不到的效果,而不仅仅是将现实主义传递给随便的观察者。显然,大多数观察者(包括我)都不知道要寻找的效果,因为他们对日常生活并不熟悉,因此我在寻找“在生理上正确的方式”,而不仅仅是“令人信服”。

1
在计算间接光的贡献时,余弦加权半球采样是否仍需要NdotL?
从均匀的半球采样转换为余弦加权半球采样时,我在一篇文章中感到困惑。 我目前的间接贡献计算如下: Vec3 RayDir = UniformGenerator.Next() Color3 indirectDiffuse = Normal.dot(RayDir) * castRay(Origin, RayDir) 点积为cos(θ) 但是在这篇有关更好采样的文章(http://www.rorydriscoll.com/2009/01/07/better-sampling/)中,作者建议PDF为(cos(θ)/ pi),并且没有证据表明N点L的计算。 我的问题是-这是否意味着我不再需要执行常规的点rayDirection,因为它已包含在PDF中,还是除pdf之外?

1
海浪渲染
我如何为带有白帽和泡沫且波动强度可变的水体生成波浪?表面是具有法线贴图的网格吗?是否有生成该公式的公式?是否有类似的方法可以确定在哪里以及如何渲染白帽?我碰到了这篇论文,但不是很清楚。 在本文中,我了解了有关波浪产生的部分。有专门针对白帽和泡沫的部分,它确实提供了生成白帽和泡沫的公式,但是您如何仅将其应用于需要它的水部分?根据我的观察,它只是将F表示为需要白帽的区域,有人可以阐明它的工作原理吗?


3
如何光线追踪不适合记忆的场景?
如果要进行光线跟踪的场景无法存储在内存中,那么在不向机器添加更多RAM的情况下,在实际的时间范围内渲染场景似乎是不现实的,因为需要从磁盘上加载场景的不同部分,每个像素可能需要多次加载。 有没有办法解决?我正在尝试一种某种方式来一次执行涉及场景的特定子集的大量计算,以减少需要将其加载到内存中的次数。在这种情况下还有其他提高速度的方法吗?

1
锥面光线追踪:覆盖,重叠和邻接的三角形
John Amanatides 在他的经典论文《使用锥进行射线追踪》中描述了经典射线追踪的一种变体。通过将光线的概念扩展一个孔径角(使其成为圆锥形),可以减少混叠效果(包括那些源自太少的蒙特卡洛样本的混叠效果)。 在圆锥三角形相交期间,将计算标量覆盖率值。该值表示被三角形覆盖的圆锥的分数。如果小于,则表示三角形没有完全覆盖圆锥体。需要进一步测试。但是,如果不使用更先进的技术,我们只知道覆盖了多少圆锥体,而不知道覆盖哪些部分。111 阿马那提德州: 由于目前仅使用分数覆盖率值来混合来自各种对象的贡献,因此将正确计算重叠的曲面,但不会正确计算邻接的曲面。 这对我来说没有意义。从我的角度来看,这是另一回事。让我们举个例子:我们有两个邻接的三角形,一个绿色和一个蓝色的三角形,每个三角形正好覆盖了我们圆锥的50%。它们与观看者的距离相同。 首先测试绿色三角形。覆盖值为0.5,因此接下来将测试蓝色三角形。蓝色覆盖值为0.5时,我们的视锥已被完全覆盖,因此我们完成了操作,最终得到了50:50的绿蓝色混合物。大! 现在想象一下,我们杀死了蓝色三角形,并在绿色一个重叠的后面添加了一个红色。Greeny再次为我们提供了0.5的覆盖率值。由于我们不再需要测试蓝色的了,所以我们往下看,然后很快找到红色的了。这也将返回一些大于0的coverage值,这不应返回,因为它在绿色的后面。 因此,由此得出的结论是,邻接的三角形可以很好地工作,而重叠的三角形则需要更多魔术,例如覆盖蒙版才能正确。这与Amanatides所说的相反。我误会了什么吗?或者这是纸条上的纸条?
10 raytracing 

1
我可以仅使用单点重力来跟踪重力透镜吗?
我想通过距离较远的星系的镜头效果来模拟距离较远的物体的放大倍数。我是否需要对大量的点质量进行建模,还是仅凭一个平均点质量就可以摆脱? 我可以看到如何使用双曲线来跟踪受单点质量影响的光线,但是我不知道从多点质量开始的位置。因此,在尝试构建此光线跟踪器之前,我想知道我是否能够避免多个质量,并且仍然有可信的结果。
10 raytracing 

2
散射区光的总发射功率
我正在读《基于物理的渲染》一书(Pharr,Humphreys)。在“光”一章中,他们讨论了近似估算各种光的总发射功率。例如,点光源的总功率为intensity * 4 * pi。在此4pi表示整个球体的立体角。这对我来说很有意义,因为强度*立体角=功率(或辐射通量)。您也可以按单位查看。强度为W / sr,立体角为sr,因此W/sr * sr = W功率以瓦特为单位。它签出。 但是,我不了解的相应计算DiffuseAreaLight。根据我对这本书的理解,他们计算出散射区域光发出的总功率为emitted radiance * area * pi。因为辐射的单位是W /(sr * m ^ 2),所以乘以面积就得到W / sr。这使我认为pi因子代表立体角-但是为什么只有1pi?我会猜到2pi,因为区域光的每个点都会在一个完整的半球内辐射(相当于2pi球面度)。 您可以在此处找到本书中提到的实际代码。 我有什么误会?为什么total emitted power = emitted radiance * area * pi对于漫射区域灯有意义?



1
球面相交遮挡(用于混合光线跟踪)
考虑混合光线跟踪,因此存在以下问题: 假设我有两个实心球和s 2。我们知道它们的中心和半径,并且我们知道它们在空间上有一些重叠的体积。s1个s1个s_1s2s2s_2 我们有一个典型的3D图形设置:假设眼睛在原点,我们在投影领域到视平面一些积极˚F。球体不在视平面内并且不相交。ž= fž=Fz = fFFf 令为空间中的圆,它是两个球体表面上的点,即它们的重叠体积的可见(从某些角度)“连接”。CCc 我想计算将投影到我们的视平面时是否可见。如果s 1或s 2完全成为障碍,则可能不是。CCcs1个s1个s_1s2s2s_2 有什么想法可以解决吗?

1
模拟Young的双缝实验
杨氏双缝实验的建立和解释都非常简单,但这是衍射和干涉的一个例子,两者均不能通过传统的射线追踪来建模。 使用纹理渲染结果的近似值很简单,但这需要预先知道结果应该是什么。对于任意装置,在事先不知道狭缝的数量和位置的情况下,是否存在用于对效果进行建模以生成正确的最终图像的现有算法? 如果不是,为了准确产生这些效应,模型需要包括什么?可以将光线跟踪修改为使用带有附加信息的光线,还是需要全新的方法?

1
为签署距离场渲染创建资产?
在传统计算机图形学中,大多数3D模型是通过对细分的图元网格(通常是三角形或四边形)进行光栅化或光线追踪来渲染的。最近,已经有一些实时技术基于针对有符号距离场(SDF)的光线跟踪。直观地讲,这些距离场不能与传统渲染的三角形和四边形相同,并且必须类似于3D几何图元(立方体,球体等)才能获得适当的阴影。这是真的?如果不是,是否可以使用SDF来表示“传统” 3D模型的复杂场景?如果是真的,那么艺术家如何创建SDF渲染器中使用的高细节模型?

1
光线追踪:为什么下图中的球体会被拉伸?
一些背景。上面是彼得·雪莉(Peter Shirley)在一个周末的书中的“光线追踪”中的代码和得到的图像。从代码中可以看到,他添加了一些领域。但在最终图像中,并排有两个椭圆体。无论我看了多少次代码,我都无法理解为什么会这样。谁能向我解释?这是源代码的链接。 https://github.com/petershirley/raytracinginoneweekend

1
在连续光谱射线跟踪中使亮度偏见有哪些副作用?
我想对连续频率范围内的光线进行建模,以便获得折射时具有色彩分离的光线追踪图像。我可以通过使用具有特定频率分布的光源来建模,方法是使用该分布来影响随机光线在给定频率范围内的概率,或者可以从均匀随机分布中选择频率,并使每条光线的亮度与特定频率下的频率分布。我认为第一个在物理上更准确,但是我怀疑第二个将使用更少的光线给出看上去“完成”的图像。这种直觉的怀疑正确吗?第二种方法会丢失图像中的任何功能吗?有没有办法在不损害图像的情况下提高速度?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.