光线跟踪盒交叉点

Chr*_*ris 0 c++ raytracing cubes vector-graphics

所以我回来了另一个光线追踪问题.我的代码渲染球体都很好,花花公子,但立方体并没有真正起作用.我正在使用此代码来测试交叉点:http://pastebin.com/qgm6vpdx(这是一个递归函数,t是到交点的距离)边界框定义为:

Cube* c1 = new Cube;      
c1->Corner1 = Vec3(100, 100, 100);      
c1->Corner2 = Vec3(200, 200, 200);
Run Code Online (Sandbox Code Playgroud)

我已经确认相机不在立方体内.现在,唯一的问题是整个屏幕显示为绿色(指定给立方体的颜色)

我不认为我正在做正确的立方体交叉点,任何人都可以证明我的代码?

Tav*_*nes 6

计算射线盒交叉点的最佳算法之一是slab方法.我在这里概述了我的优化实现.