2.5 球形逆映射

  一旦在球面上找到一个交点和法线,就需要进行进一步的操作。一种常见的阴影技巧是纹理映射,在纹理映射中,球面上交点的位置被用来表示球面的特征。例如,假设要渲染一个地球仪,计算机中存储着一个世界地图。每次球面相交时,在地图上找到合适的颜色,用来给像素着色。

  问题只是把交点转换成经度和纬度。推导是相当直接的,尽管它涉及一些耗时的三角运算。

  

  Sp是一个单位矢量,它从球体的中心指向球体的北极。Se是指向赤道上一个参考点的单位矢量。参数u沿赤道从0变化到1。它可以追溯到坐标系统的标准方向(例如,如果使用右手坐标系,那么它在赤道周围的逆时针方向变化)。在极点处,定义u为0。参数v从0到1从南极到北极(技术上说,从-Sp到+ Sp)不等。这个映射如图5所示:

  

  交点的法线rn与由中心和交点形成的单位向量相同。 

  从这些定义中,首先获得纬度参数。它等于交点法向量和北极的点积的反余弦:

  

  注意,要加快代码速度,可以将/ pi的除法转换为乘1/pi。如果v等于0或1,那么u被定义为等于0。否则计算经度参数:

  1,求坐标和直角坐标的转换关系可以得出Pn   2,1带入Se点积Sn的代数解: 

  

  现在取两个确定角度的球面轴的外积(叉乘),并将这个方向与法线的方向进行比较:

  

  注意,叉乘可以预先计算一次。这个测试的作用是确定插入点所在的Se向量的哪一边。

 

转载于:https://www.cnblogs.com/TooYoungTsukasa/p/9225274.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值