在极坐标中寻找反射区域

时间:2014-12-04 04:54:14

标签: graphics geometry rendering raytracing

假设我们正在为宜家目录渲染图像,其中包括一个光滑的镜面表面。

杯子将被带有窗户的室内环境地图照亮 定向光和环境光。

环境地图使用φ和θ以球坐标表示 (例如,点(1,0,0)是(φ= 90°,θ= 90°);点(-1,0,0)是(φ= 90°,θ= -90°))。 摄像机位于(0,0,20),方向(0,0,-1)以向上方向(0,1,0)观察。杯子以坐标原点为中心,高度为10,半径为5.杯子的轴对齐 与y轴。整个杯子可以在图像中捕获。

对于一张漂亮的产品照片,我们希望看到窗口反射在马克杯的侧面。哪里 可以将窗口放置在环境贴图中,它将在窗口中反射出来 圆柱形杯子?计算区域角落的(φ,θ)坐标以及将在杯子中反射的最高和最低phi和θ的坐标。

如何解决此问题?我应该使用一个特定的等式吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过将光线从观察者投射到马克杯并将其反射到地图来解决这个问题。假设杯子上所需的反射四边形的每个角落有一条光线。

反射简单地通过反射定律计算:表面法线是入射和反射光线的双分径。

首先计算从观察者到所选角落之一的入射光线。然后计算该点的法线(它垂直于马克杯的旋转轴,在半径到点的方向)。从事件向量和法线,您将找到反射向量的方向。

将此向量转换为球面坐标将为您提供环境贴图中四边形的一角。