gpt4 book ai didi

raytracing - 光线追踪阴影问题

转载 作者:行者123 更新时间:2023-12-02 00:43:15 26 4
gpt4 key购买 nike

我的光线追踪器中的阴影射线有问题。

请看下面两张图

3D sMax:

alt text http://neo.cycovery.com/shadow_problem.gif

我的光线追踪器:

alt text http://neo.cycovery.com/shadow_problem2.jpg

场景被一道非常明亮的光照亮,从背后照亮。它是如此明亮,以至于在阴影中没有渐变,只有白色或黑色(由于过度曝光)。

两幅图像都是使用 3DStudioMax 渲染的,并且都使用完全相同的几何体,只是在一种情况下,法线被插值到三角形上。

现在考虑表面上的红点。在未平滑版本的情况下,它位于黑暗区域。这意味着从这个三角形看不到光源,因为它背对着它。然而,在平滑版本中,它位于光照区域,因为插值法线表明,光在该点是可见的(尽管三角形的实际几何形状背对光源)。

我现在的问题是当光线追踪阴影进入时。如果阴影光线从红点射入场景,以测试光源是否可见(以确定阴影),阴影光线将返回一个交点,与法线是否插值无关(因为交点仅取决于几何体)。因此,像素将被遮蔽成深色。

3dsamx 正确处理了这种情况 - 渲染图像是在启用光线跟踪阴影的情况下生成的。但是,当我打开光线跟踪阴影时,我自己的光线跟踪器正好遇到了这个问题(在我的光线跟踪器中,两种情况下点都是暗的,因为光线跟踪阴影确定了阴影中的​​点),我不知道如何解决

我希望有人知道这个问题以及如何处理它..

谢谢!

最佳答案

“正确”的解决方案要么是镶嵌三角形,要么是求解三角形所属曲面的方程。我只看到了镶嵌。 Tessellation 为您提供可控的精度等等...
否则,你应该在点上测试法线(我相信'3DStudio'所做的)并且在法线不面向光线的情况下,只需将点设置为不亮。它与“自遮蔽”无关。这个问题只能通过曲面分割轻松解决。祝你好运!

关于raytracing - 光线追踪阴影问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1876499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com