光线追踪 - 法线贴图非法反弹

问题描述 投票:0回答:1

我目前正在编写一个基于物理的光线追踪器,我正在尝试实现法线贴图。 问题是法线贴图会导致“怪异”的几何形状,以至于反射会表现得非常奇怪。例如在下面的场景中,其中 n 表示该点的贴图法线,光线在物体的几何体内部反弹,因此光线丢失。

screenshot

我不确定如何以一种有意义的方式处理这个问题,有许多不同的 BSDF,我似乎无法找到一个解决方案,这对所有人都有效......

我尝试实现法线贴图,但我在掠射角周围出现了奇怪的行为。例如:

An example of what happens.

最上面的砖的顶部很黑,应该不是这样的

有人知道如何处理这个吗?

rendering raytracing pbr
1个回答
0
投票

这是一个有趣的问题,因为法线贴图是物理表面的近似值,没有微小的几何体来完全指定它。

这意味着没有“物理上正确”的解决方案,但仍然有比将像素着色为黑色更好的方法来处理它。例如,可以想象,如果光线照射到一块悬垂几何体上,该几何体将其向内指向物体,随着光线越来越接近理论悬垂下方的材料,光线将第二次与同一表面相交。

一些实现通过在几何法线(与几何表面相切)的 90 度标记处再次镜像来近似此。反射试图越过 90,它就越指向几何法线。这在某种程度上模拟了双弹跳。

但与这里的所有解决方案一样,这只是一个近似值。在真实的物理情况下,法线朝向错误方向的那部分几何体会被更近的几何体块遮挡,但我们不知道那块几何体在哪里,因为它已被展平为法线贴图。因此,我们会尽力利用可用数据。

© www.soinside.com 2019 - 2024. All rights reserved.