游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2353|回复: 5

射线与三角形相交的问题,望高手解答,跪谢!

[复制链接]

3

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2010-11-18 23:57:00 | 显示全部楼层 |阅读模式
BOOL D3DXIntersectTri(
    CONST D3DXVECTOR3 *p0,
    CONST D3DXVECTOR3 *p1,
    CONST D3DXVECTOR3 *p2,
    CONST D3DXVECTOR3 *pRayPos,
    CONST D3DXVECTOR3 *pRayDir,
    FLOAT *pU,
    FLOAT *pV,
    FLOAT *pDist );

这个函数,我有一个疑问。就是表示三角形顶点的p0,p1,p2,在测试之前要不要先用D3DXVec3TransformCoord先进行和世界矩阵转化一下?

我看了两本书,其中一本在计算射线时,用到了世界矩阵:
      lpDevice->GetTransform( D3DTS_WORLD, &matWorld );
      lpDevice->GetTransform( D3DTS_VIEW, &matView );
      D3DXMATRIX mWorldView = matWorld * matView;
      D3DXMatrixInverse( &mInverse, NULL, &mWorldView );

      // ........  ( 计算射线的原点和方向 )

但是在另一本书中:
      lpDevice->GetTransform( DEDTS_VIEW, &matView );
      D3DXMatrixInverse( &mInverse, NULL, &matView );  // 没有使用世界矩阵
      
      // ..........(计算射线的原点和方向)


这两种计算,在进行D3DXIntersectTri相交测试时,貌似对传入的三角形顶点都没有进行特殊处理(没有使用世界矩阵等进行转换),不过都是可以正常运行的。

我想问的就是,到底要不要世界矩阵参与运算?什么情况下需要?什么情况不需要?谢谢!!!

34

主题

844

帖子

1755

积分

金牌会员

Rank: 6Rank: 6

积分
1755
发表于 2010-11-19 08:12:00 | 显示全部楼层

Re:射线与三角形相交的问题,望高手解答,跪谢!

See_Bug在吗?
给GameRes加上一个《举报功能》吧。
免得我还得用E-Mail举报,太麻烦了。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20547
发表于 2010-11-19 08:55:00 | 显示全部楼层

Re: Re:射线与三角形相交的问题,望高手解答,跪谢!

snghun: Re:射线与三角形相交的问题,望高手解答,跪谢!

See_Bug在吗?
给GameRes加上一个《举报功能》吧。
免得我还得用E-Mail举报,太麻烦了。


嗯,会看看怎么添加个。

3

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2010-11-19 09:15:00 | 显示全部楼层

Re:射线与三角形相交的问题,望高手解答,跪谢!

????????????????????????

0

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2010-11-22 17:52:00 | 显示全部楼层

Re:射线与三角形相交的问题,望高手解答,跪谢!

我晕,你连个api都不会用,管他是什么坐标,只要射线和你的三角形在同一个坐标系就可以了

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2010-11-26 23:42:00 | 显示全部楼层

Re:射线与三角形相交的问题,望高手解答,跪谢!

千万不要公式化,要理解其中的原理
楼上说的正确
是要把射线变换到世界坐标系,然后再变换到物件的本地坐标系,这样和物件处于统一坐标系了,这个时候再求交
或者把物件的三角形变换到世界坐标系和世界的内的射线求交也行,关键是坐标系要统一
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-17 18:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表