基于前向的光线追踪器
Forward based ray tracer in C++
我正在用c++制作一个光线追踪器,需要它是基于向前的(源到检测器)而不是基于向后的(检测器到源)。我需要它,因为我用它来模拟特定的材料及其与光相互作用时的特性。
有很多光线跟踪教程可用于向后方向,这是可以理解的,因为它在为图形目的编写光线跟踪时更有意义,但我找不到任何好的向前方向跟踪(光源到检测器)
有没有人知道任何好的基于前向的教程,或者有一个基于前向的光线追踪器,他们不介意我建立在非营利目的?
我曾经写过一个光线追踪器,有一个简单的原因,即向前光线追踪器不可能(或大多数肯定不可能)编写。如果场景很复杂,你就没有办法知道在哪里发射光线来照射探测器上的每一个像素。
你可以做的是做反向光线追踪,然后,当你已经知道光线将跟随的路径时,做正向追踪来计算一些额外的数据。
这是一个优化的问题,光线追踪器能够在太阳变成红巨星之前追踪到一个场景。盲目地对一个复杂的场景进行前向光线跟踪需要跟踪很多光线,直到生成图像。基本上,你不能保证选定的"源"光线会提前到达图像,所以你必须不断尝试新的光线,直到你幸运地填充了图像。
我不太明白为什么前进的方向是一个要求。当光线从图像中的一个像素跟踪到一个源时,您可以根据需要简单地在向前方向遍历该光线。
看我的回答这个问题,如何处理折射时,光线开始在一个嵌套的对象。在这篇文章中,我描述了模拟光子在介电材料中的传播所需要的步骤。我讨论如何,
- 为光线追踪设计一个很好的API(如果你使用面向对象的方法),
- 处理连接两个电介质的接口之间棘手的边界问题,
- 和应用反射和反射和接口。
还有一个Python项目。
相关文章:
- 光线追踪:椭球命中功能
- 平面和球体光线追踪之间的交点
- 不完整的多线程光线追踪器花费的时间是预期的两倍
- 光线追踪对象文件漫反射着色问题
- GL_FRAMEBUFFER_SRGB仅适用于前/后缓冲区
- 光线追踪 - 反射
- 光线追踪锥.判别式给出 -ve 值,因此没有交集
- C++:光线追踪器导致内存不足错误 - 由于反复调用"new"?
- 实时光线追踪器
- 光线追踪 - 几何球体相交 - 相交函数对所有光线返回 true,尽管没有相交
- 优化光线追踪器
- C++:光线追踪器输出中的非确定性行为
- 光线追踪框交集 (c++)
- 光线追踪网格上的伪影黑线(使用Embree)
- 以下等效于前向声明
- 光线追踪框交叉点
- 光线追踪-照明方程
- 基于前向的光线追踪器
- 光线追踪器不会渲染对象的多个实例
- 计算机图形行业的人们用什么来进行光线追踪?