假设我们正在为宜家目录渲染一个图像,其中包括一个光滑的镜面的马克杯。
马克杯将由带有窗户、平行光和环境组件的房间内部的环境贴图照明。
使用φ和θ在球面坐标中表示环境贴图(例如,点(1,0,0)为(φ=90◦,θ= 90◦);点(-1,0,0)为(φ=90◦,θ=−90◦))。相机定位在(0,0,20),观察方向为(0,0,-1),向上方向为(0,1,0)。马克杯以坐标原点为中心,高度为10,半径为5。马克杯的轴与y轴对齐。整个马克杯都可以在图像中捕捉到。
想要一张漂亮的产品照片,我们想看看玻璃杯侧面的倒影。窗口可以放置在环境贴图中的什么位置,它将反映在圆柱形马克杯的侧面?计算区域的角落以及将在杯子中反映的最高和最低φ和θ的(φ,θ)坐标。
我该如何解决这个问题?有没有我应该利用的特定方程式?提前谢谢。
发布于 2014-12-05 02:35:52
您可以通过将光线从查看器投射到马克杯并将其反射到地图来解决此问题。例如,在马克杯上所需反射的四边形的每个角落都有一条射线。
反射很简单地由反射定律计算:表面的法线是入射光线和反射光线的二等分线。
首先计算从观察者到所选角之一的入射光线。然后计算该点的法线(它垂直于马克杯的旋转轴,在半径方向上)。从入射矢量和法线中,您将找到反射矢量的方向。
将此向量旋转到球面坐标将在环境贴图中显示四边形的一角。
https://stackoverflow.com/questions/27286539
复制相似问题