游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3031|回复: 6

关于3D碰撞的问题

[复制链接]

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2003-12-21 23:54:00 | 显示全部楼层 |阅读模式
我想使用D3DXIntersect函数来检测碰撞,但是需要检测的物体要经过世界变换才能画到整体的坐标系统中,经过了平移和转向和缩放以后的坐标已经和原先的MESH坐标不同了,不知道怎么才能够把整体坐标系的坐标和检测时的射线坐标对上号。(是要把整体坐标系里的测试射线的大小和方向变换成原MESH 坐标系统再判断,还是其他什么方法,请高手赐教) [em6]

0

主题

130

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2003-12-22 09:31:00 | 显示全部楼层

Re:关于3D碰撞的问题

"要把整体坐标系里的测试射线的大小和方向变换成原MESH 坐标系统再判断"
是的,大部分是这样作的。

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2003-12-22 20:05:00 | 显示全部楼层

Re: 关于3D碰撞的问题

可是,若MESH的世界转换光只是平移和转角我还可以懂,但是如果经过缩放的话,我就不太懂怎么把射线变成原MESH坐标系了,还有一种方法是把MESH拷贝一份,然后进行变换后再用D3DXIntersect判断,就是说射线不变,变MESH,到底哪种好?或者有更加好的方法,请老手们赐教啊 [em6]

0

主题

130

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2003-12-23 13:36:00 | 显示全部楼层

Re:关于3D碰撞的问题

还是变换射线比较好,
尽管难以想象但即使是有缩放结果是正确的。
不过注意要将射线的方向单位化。

0

主题

130

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2003-12-23 13:39:00 | 显示全部楼层

Re:关于3D碰撞的问题

缩放的确会造成一些麻烦。
尽量避免使用SCALE吧。

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2004-7-1 16:45:00 | 显示全部楼层

Re: 关于3D碰撞的问题

   
    那么当用正交投影时,如何用D3DXIntersect() 来选中物体呢, 并且世间矩阵不时单位矩阵,有旋转.
                 请教高手.?????????????????????????????

emil: zht213@sinoi.com   

          希望能认识一些作D3D的朋友.

9

主题

198

帖子

198

积分

注册会员

Rank: 2

积分
198
发表于 2004-7-1 22:57:00 | 显示全部楼层

Re:关于3D碰撞的问题

Transforming Rays
void TransformRay(d3d::Ray* ray, D3DXMATRIX* T)
{
      // transform the ray's origin, w = 1.
      D3DXVec3TransformCoord(
           &ray->_origin,
           &ray->_origin,
           T);

      // transform the ray's direction, w = 0.
      D3DXVec3TransformNormal(
           &ray->_direction,
           &ray->_direction,
           T);

      // normalize the direction
      D3DXVec3Normalize(&ray->_direction, &ray->_direction);
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-3 00:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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