小编Pon*_*son的帖子

射线平面交叉怎么办?

如何计算光线与平面之间的交点?我一直在访问我能找到的每个可能的网站,这是我迄今为止取得的成就:

float denom = normal.dot(ray.direction);

if (denom > 0)
{
    float t = -((center - ray.origin).dot(normal)) / denom;

    if (t >= 0)
    {
        rec.tHit = t;
        rec.anyHit = true;
        computeSurfaceHitFields(ray, rec);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

这不起作用:s
我的函数输入是:
ray:包含原点和方向.
rec:用于存储命中信息的容器类(bool,t等)

我的函数可以访问平面:
点:定义平面
法线的点:定义平面的法线

c++ raytracing

14
推荐指数
3
解决办法
3万
查看次数

标签 统计

c++ ×1

raytracing ×1