我的光线追踪器中的阴影光线有问题。
请看下面两张图片
3D 最大:
替代文字 http://neo.cycovery.com/shadow_problem.gif
我的光线追踪器:
替代文字 http://neo.cycovery.com/shadow_problem2.jpg
场景被非常明亮的灯光照亮,从后面发光。它太亮了,阴影中没有渐变,只有白色或深色(由于过度曝光)。
两个图像都是使用 3DStudioMax 渲染的,并且都使用完全相同的几何图形,只是在一种情况下,法线是在三角形上插值的。
现在考虑表面上的红点。在未平滑版本的情况下,它位于黑暗区域。这意味着从这个三角形看不到光源,因为它背对着它。然而,在平滑版本中,它位于光照区域,因为插值法线表明,光线在该点可见(尽管三角形的实际几何图形背对光源)。
我现在的问题是当光线跟踪阴影进入时。如果从红点将阴影光线射入场景,以测试光源是否可见(以确定阴影),阴影光线将返回一个相交,与法线是否被插值(因为交点只取决于几何)。因此,像素会变暗。
3dsamx 正在正确处理这种情况 - 渲染图像是在打开光线跟踪阴影的情况下生成的。然而,当我打开光线追踪阴影时,我自己的光线追踪器恰好遇到了这个问题(在我的光线追踪器中,这两种情况下的点都是黑暗的,因为光线追踪阴影决定了位于阴影中的点),我不知道如何解决它。
我希望有人知道这个问题以及如何处理它..
谢谢!