【问题标题】:How can i put shadow to raytracing sphere我怎样才能把阴影放到光线追踪球体上
【发布时间】:2014-03-30 04:13:10
【问题描述】:

我对光线追踪有疑问。我可以创建球体,但我不能给出阴影。您必须在命令行(cmd)中编译此代码。我们怎样才能在这三个球体上放置阴影。当你编译这段代码时,你可以看到 3 个球体和光也发光。但没有阴影请帮助我。 谢谢

【问题讨论】:

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

标签: c graphics raytracing


【解决方案1】:

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

这个想法是,当相机光线照射到对象时,您会从该交叉点创建一条新光线到每个光源,然后再次运行光线/场景交叉点。如果其中一条射线与比光源更近的物体相交,则它不会对该点贡献任何能量。

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

【讨论】:

    猜你喜欢
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    相关资源
    最近更新 更多