【发布时间】:2009-12-09 20:07:26
【问题描述】:
我的光线追踪器中的阴影光线有问题。
请看下面两张图
3D 最大:
alt text http://neo.cycovery.com/shadow_problem.gif
我的光线追踪器:
alt text http://neo.cycovery.com/shadow_problem2.jpg
场景被非常明亮的灯光照亮,从后面照耀。它太亮了,阴影中没有渐变,只有白色或深色(由于过度曝光)。
两幅图像均使用 3DStudioMax 渲染,并且都使用完全相同的几何图形,只是在一种情况下,法线是跨三角形插值的。
现在考虑表面上的红点。在未平滑版本的情况下,它位于黑暗区域。这意味着从这个三角形看不到光源,因为它背对着它。 然而,在平滑版本中,它位于光照区域,因为插值法线表明,光线在该点可见(尽管三角形的实际几何图形背对光源)。
我现在的问题是当光线跟踪阴影进入时。如果从红点将阴影光线射入场景,以测试光源是否可见(以确定阴影),阴影光线将返回一个交叉点,与是否对法线进行插值无关(因为交点仅取决于几何形状)。因此,像素会被暗化。
3dsamx 正在正确处理这种情况 - 渲染图像是在启用光线跟踪阴影的情况下生成的。但是,当我打开光线追踪阴影时,我自己的光线追踪器恰好遇到了这个问题(在我的光线追踪器中,这两种情况下的点都是暗的,因为光线追踪阴影决定了位于阴影中的点),我不知道如何解决它。
我希望有人知道这个问题以及如何处理它..
谢谢!
【问题讨论】:
-
你在做正常的平滑吗?位置是空间基于几何图形,但阴影状态基于与光源的角度,这是基于表面法线的,因此如果您不平滑法线,您将在三角形上拥有相同的法线。
-
什么意思?正如我所说,我在三角形上插入法线!问题不在于阴影!问题是光线追踪的阴影!如果我关闭光线追踪阴影,一切看起来都很好(当然,除了没有阴影!)
-
Mat,能否再附两张图:只有 RT-shadow 没有阴影和只有 RT-shading 没有阴影?
标签: raytracing shadow