Questions tagged «refraction»

1
在路径跟踪中选择反射或折射
我正在尝试在路径跟踪器中实现折射和传输,但是我不确定如何实现它。首先,一些背景: 当光射到表面上时,其中一部分会反射,一部分会折射: 菲涅耳方程式给出了多少光反射与折射的关系 在递归光线跟踪器中,简单的实现方式是拍摄光线进行反射和折射,然后使用菲涅耳进行加权求和。 [RŤ大号Ø= Fř Ë 小号Ñ ë 升()= 1 - R= - [R ⋅ 大号我,反射+ T⋅ 大号我,折射R=Fresnel()T=1−RLo=R⋅Li,reflection+T⋅Li,refraction\begin{align*} R &= Fresnel()\\ T &= 1 - R\\ L_{\text{o}} &= R \cdot L_{\text{i,reflection}} + T \cdot L_{\text{i,refraction}} \end{align*} 但是,在路径跟踪中,我们仅选择一条路径。这是我的问题: 如何选择以无偏见的方式进行反射或折射 我的第一个猜测是根据菲涅耳随机选择。又名: float p = randf(); float fresnel = Fresnel(); if (p …

3
是什么解释了金属的高镜面性?
根据我的理解,镜面反射颜色通常是指当表面以法线入射时被反射时反射的光量,并标记为或。此外,对于非金属材料,该值是从该材料的折射率计算与式从菲涅耳公式推导出(其中1是空气或空隙的折射率): F0F0F_0R0R0R_0nnnF0=(n−1)2(n+1)2F0=(n−1)2(n+1)2F_0 = \frac{(n - 1)^2}{(n + 1)^2} 根据维基百科上的折射率列表: 固体材料的通常在1.46(熔融石英)和2.69(Moissanite)之间。这意味着在0.03和0.21之间。nnnF0F0F_0 液体的通常在1.33(水)和1.63(二硫化碳)之间。如果我没记错的话,那意味着在0.02到0.057之间。nnnF0F0F_0 气体通常具有,所以我猜我们可以安全地假设为0。˚F 0n≈1n≈1n \approx 1F0F0F_0 所有这些值都非常低。即使是具有高折射率的晶体,例如钻石()和硅藻土(),也几乎不会超过20%。然而,大多数金属的值都超过50%。而且,我已经多次阅读上述公式不适用于金属(可以很容易地通过使用它来确认并看到完全错误的结果来确认),但是我没有找到任何进一步的解释。F 0 = 0.21 F 0F0=0.17F0=0.17F_0=0.17F0=0.21F0=0.21F_0=0.21F0F0F_0 是什么现象解释了这种差异?如何计算金属的(尤其是与之接触的介质的IoR不同于1,如水)?F0F0F_0

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

1
这是实施比尔定律的正确方法吗?
当我实施比尔定律(通过物体的距离吸收颜色)时,由于某种原因,它看起来永远不会很好。 当我在对象后面有颜色时,我将像这样计算调整后的颜色: const vec3 c_absorb = vec3(0.2,1.8,1.8); vec3 absorb = exp(-c_absorb * (distanceInObject)); behindColor *= absorb; 这将使我看起来像这样(请注意一点折射): 这里没有折射: 请注意,此处将其实现为着色器玩具。 这满足了比尔定律的作用的描述,但是与以下镜头相比,它看起来不是很好: 除了高光,我正在努力找出差异。难道仅仅是我的几何形状太简单而无法很好地展示出来吗?还是我执行不正确?

3
如何使我的冰块看起来真实?
我可以将冰块建模为具有水折射率的稍微变形的透明立方体,但是看起来并不令人信服。它们看起来像玻璃块而不是冰。 通过查看实际的冰块,我可以直观地描述一些差异,但是我不知道要更改哪些物理属性以匹配它们: 冰块是湿的。矿山看起来像干玻璃。 冰块在某些地方透明,而在其他地方则不透明。 尽管没有分离,但冰块经常会出现可见的裂纹。 在这种情况下,我试图对表面上的冰块建模(在空气中,而不是在水中漂浮)。 为了增加真实感,我需要包括哪些技术? 我不是在寻找实时技术,只是为了生成静止图像。我希望冰能够像照片一样逼真地关闭,并投射出逼真的焦散和阴影。 我尝试过使用弯曲的边缘,并在冰块上涂上一层薄薄的透明材料,以模拟融化的水层,但是似乎并没有给人以湿的印象。我还尝试过将透明球体嵌入其中心一半大小的透明球体中,并具有雾化效果,但它不会自然地融合到立方体中,而是看起来像是嵌入的。即使是一系列逐渐增加的雾的嵌套球体,看起来也不正确。
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.