游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2300|回复: 4

怎么判断射线与骨骼的相交?

[复制链接]

21

主题

41

帖子

47

积分

注册会员

Rank: 2

积分
47
发表于 2008-5-13 17:36:00 | 显示全部楼层 |阅读模式
  D3DXIntersect()这个函数可以得出射线与MESH的相交信息..可这个MESH是普通的MESH,如果MESH中带骨骼..要怎么判断啊..从相交的面索引来判断吗?
  我跟踪程序后发现面的索引是一直发生改变的..这方法好象行不通..望各位指点一下..谢谢!

10

主题

173

帖子

178

积分

注册会员

Rank: 2

积分
178
发表于 2008-5-13 18:19:00 | 显示全部楼层

Re:怎么判断射线与骨骼的相交?

D3DXIntersect函数好像是判断射线是否与三角面相交的。好像不能判断射线是否与某个骨骼相交。
你是不是想判断 射线是否和经过变化后的mesh相交啊?
如果是?判断的方法和没有经过变化前的判断方法一直

没有经过变化的mesh是mesh。经过变化后的mesh还是mesh.只是mesh中的点位置变化了而已。
例如:某mesh有三个点构成
v1 = {0,0,0}; v2 = {1,0,0}; v3 = {0,1,0}; 你能够判断某射线是否与该三角面相交,
那么,经过变化后,该三点的位置是
v1 = {1,1,1}; v2 = {1,0,0}; v3 = {0,1,0}; 相信你也能够判断

另。mesh的顶点是依照索引来构造的,那么索引应该是不会被改变的。

例如三个点构成一个面
v1 = {0,0,0}; v2 = {1,0,0}; v3 = {0,1,0};
如果索引序列是[0,1,2],这是A三角面
如果索引序列是[2,1,0],那么这个三角面就完全是另外的一个三角面了。

21

主题

41

帖子

47

积分

注册会员

Rank: 2

积分
47
 楼主| 发表于 2008-5-14 10:50:00 | 显示全部楼层

Re:怎么判断射线与骨骼的相交?

谢谢LS的回答..
我还想知道一点..

v1 = {0,0,0}; v2 = {1,0,0}; v3 = {0,1,0};
如果索引序列是[0,1,2],这是A三角面  .
mesh中面都以索引号来存储的吧..假如mesh中包括A三角面.如果把这个mesh移动或旋转后,A三角形面在mesh中的索引号会改变吗?


我现在想实现,当我点击角色的不同部位时,他会做出不同的动作..

10

主题

173

帖子

178

积分

注册会员

Rank: 2

积分
178
发表于 2008-5-14 11:05:00 | 显示全部楼层

Re:怎么判断射线与骨骼的相交?

不会改变的。


如果有改变,一定是代码某处错了。

21

主题

41

帖子

47

积分

注册会员

Rank: 2

积分
47
 楼主| 发表于 2008-5-14 11:14:00 | 显示全部楼层

Re:怎么判断射线与骨骼的相交?

谢谢了..
我去做个例子试一下.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 12:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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