Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何将阴影放置到光线跟踪球体_C_Graphics_Raytracing - Fatal编程技术网

C 如何将阴影放置到光线跟踪球体

C 如何将阴影放置到光线跟踪球体,c,graphics,raytracing,C,Graphics,Raytracing,我对光线追踪有问题。我可以创建球体,但ı不能生成阴影。您必须在命令行(cmd)中编译此代码。我们如何在这三个球体上放置阴影。当你编译这段代码时,你可以看到3个球体和光线。但是没有阴影,请帮助我。 谢谢您需要将场景/光线相交逻辑概括为一个函数。然后,该功能可用于跟踪来自摄影机以及其他对象上交点的光线 其思想是,当摄影机光线击中对象时,从该交点到每个光源创建一条新光线,然后再次运行光线/场景交点。如果其中一条光线与距离光源较近的对象相交,则该光线不会向该点提供任何能量 还可以计算反射光线并递归确定其

我对光线追踪有问题。我可以创建球体,但ı不能生成阴影。您必须在命令行(cmd)中编译此代码。我们如何在这三个球体上放置阴影。当你编译这段代码时,你可以看到3个球体和光线。但是没有阴影,请帮助我。
谢谢

您需要将场景/光线相交逻辑概括为一个函数。然后,该功能可用于跟踪来自摄影机以及其他对象上交点的光线

其思想是,当摄影机光线击中对象时,从该交点到每个光源创建一条新光线,然后再次运行光线/场景交点。如果其中一条光线与距离光源较近的对象相交,则该光线不会向该点提供任何能量


还可以计算反射光线并递归确定其颜色,使用对象的曲面特性对其进行调制。你会想限制递归的深度,这样你就不会陷入无限的镜像厅中。

你是认真的吗?你在这里转储了一大堆代码,希望我们阅读并扩展它?其基本思想是在照明点之前添加另一个交叉点测试。测试检查从击中位置到灯光的光线是否被物体阻挡。是否应该为每个像素将
seenTri
设置为
-1
?此外,
computeColor
用于球体和三角形,但该函数仅适用于球体。