gpt4 book ai didi

math - GLSL折射功能说明可用吗?

转载 作者:行者123 更新时间:2023-12-04 03:38:08 26 4
gpt4 key购买 nike

我正在尝试调试简单的光线追踪器,该光线追踪器模拟从一个穿过镜头的点发出的光线。我只需要折射效果。

我尝试手动进行操作,但最终我从GLSL找到了refract,在GLSL 1.1中对此进行了记录,如下所示:

//For a given incident vector I, surface normal N and ratio of 
//indices of refraction, eta, refract returns the refraction vector, R.
//R is calculated as:

k = 1.0 - eta * eta * (1.0 - dot(N, I) * dot(N, I));
if (k < 0.0)
R = genType(0.0); // or genDType(0.0)
else
R = eta * I - (eta * dot(N, I) + sqrt(k)) * N;

//The input parameters I and N should be normalized in order to
//achieve the desired result.

我想知道这些方程式是从哪里来的。我在互联网上搜索了自己拥有的书籍(《实时渲染圣经》,或上一版的《基于物理的渲染》),所有这些都引用了此实现,没有说明,也没有告诉解决方案。

从开始使用几何体开始手工进行尝试会带给我其他答案,但是显然对于像GLSL这样的非常常见的函数而言,这是艰巨的工作。因此,我更喜欢使用这种优化的表示法。

我只有这个:
a.b = |a||b|cos(angle) (Dot product)
angleOut = eta * sin(angleIn) (Snell's Law).

你知道它从哪里来吗?
有文件或引用文献可供阅读吗?

最佳答案

您可以在本书的第16.5节中找到说明:

FOLEY,詹姆斯·D(编辑)。计算机图形学:原理和实践,第二版,C。Addison-Wesley Professional,1996年。

这些是相关页面,它们来自此Google Books search(在2013-12-29T10:15:00 + 01:00咨询):


引用[HECK84]是

HECKBERT, Paul S.; HANRAHAN, Pat. Beam tracing polygonal objects. In: ACM SIGGRAPH Computer Graphics. ACM, 1984. p. 119-127.

并具有标题为“反射和折射变换”的详细附录。

关于math - GLSL折射功能说明可用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20801561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com