作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试调试简单的光线追踪器,该光线追踪器模拟从一个穿过镜头的点发出的光线。我只需要折射效果。
我尝试手动进行操作,但最终我从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.
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/
我正在编写一个 GLSL 着色器来模拟简单对象的色差。我保持 OpenGL 2.0 兼容,所以我使用内置的 OpenGL 矩阵堆栈。这是简单的顶点着色器: uniform vec3 cameraPos
Actually I'm not sure that Title of my question is 'correct', if you have any idea with it, you coul
我是一名优秀的程序员,十分优秀!