【发布时间】:2011-12-31 02:04:10
【问题描述】:
到目前为止,我的光线追踪器:
如果与球体发生碰撞,则发出射线并返回新向量 制作完成
然后根据与之碰撞的球体[id] 的颜色添加像素颜色。
重复场景描述中的所有球体。
对于这个例子,让我们说:
sphere[0] = Light source
sphere[1] = My actual sphere
所以现在,在我的嵌套分辨率 for 循环中,我有一个返回的向量,它给出了当前射线与 sphere[1] 碰撞的 xyz 坐标。
我现在想从这个碰撞向量位置发送一条新光线到光的向量位置source sphere[0],这样我就可以根据这个光的颜色/发射来更新像素的颜色。
我已经读过我应该规范化这两个点,并首先检查它们是否指向相反的方向。如果是这样,请不要担心这个计算,因为它在光的阴影中。
所以我的问题是,给定两个 未归一化 向量,我如何检测它们的归一化单位是否指向相反的方向?像这样的点光源,光球上的每个点都有不同的法线方向,这怎么可能呢?这个概念对于定向光来说更有意义。
另外,在我运行此检查后,我应该根据相互关联的两个法线角度进行着色计算,还是应该向光源发出新光线并从那里继续?
【问题讨论】:
标签: c++ raytracing