登录 注册
当前位置:主页 > 资源下载 > 16 > 世界/本地空间中的拾取射线-python实现pdf转换成word/txt纯文本文件下载

世界/本地空间中的拾取射线-python实现pdf转换成word/txt纯文本文件下载

  • 更新:2024-09-09 22:54:14
  • 大小:5.52MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:其他 - 游戏开发
  • 格式:PDF

资源介绍

图 16.4 由相似三角形可知 1 v vy y d ′ = 和 1 v vx x d ′ = 。 回忆一下,在投影矩阵中 00 1 = tan 2 r α P 和 11 1 = tan 2 α P 。我们可以将上述方程改写为: 00 11 2 1 / 2 1 / s v s v x x w y y h  ′ = −     ′ = − +    P P 这样,我们可以引出一条穿过点(xvʹ , yvʹ ,1)的拾取射线,它与穿过点(xv , yv ,d)的拾取射 线是同一条射线。下面给出了在观察空间中计算拾取射线的代码: void PickingApp::pick(int sx, int sy) { XMMATRIX P = mCam.Proj(); // 在视空间中计算拾取射线 float vx = (+2.0f*sx/mClientWidth - 1.0f)/P(0,0); float vy = (-2.0f*sy/mClientHeight + 1.0f)/P(1,1); // 视空间中的射线定义 XMVECTOR rayOrigin = XMVectorSet(0.0f, 0.0f, 0.0f,1.0f); XMVECTOR rayDir = XMVectorSet (vx, vy, 1.0f,0.0f); 注意,该射线的起点是观察空间的原点,因为观察点位于观察空间的原点上。 16.2 世界/本地空间中的拾取射线 现在,我们已经知道了如何计算观察空间中的拾取射线,但是它的用途非常有限,因 324 / 351