游戏开发论坛

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

DirectX中怎样才能求得SkinMesh的包围盒?

[复制链接]

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2008-7-24 00:41:00 | 显示全部楼层 |阅读模式
只知道有个函数叫 D3DXFrameCalculateBoundingSphere 的可以求SkinMesh的包围球,有没有 D3DXFrameCalculateBoundingBox 函数?

难不成要自己写个函数遍历Frame求得每个MeshContainer的Max,Min顶点再取最大最小值?

(D3DXComputeBoundingBox 就不要说了...因为存储SkinMesh的数据结构里取不到CD3DMesh) [em7]

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-7-24 10:46:00 | 显示全部楼层

Re: DirectX中怎样才能求得SkinMesh的包围盒?

你那么做只是求骨骼的包围盒。要求mesh的只能是用CPU蒙皮之后再求所有定点的包围盒,当然比较耗时,所以最好预处理时算好。

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2008-7-24 12:02:00 | 显示全部楼层

Re: Re: DirectX中怎样才能求得SkinMesh的包围盒?

qrli: Re: DirectX中怎样才能求得SkinMesh的包围盒?

你那么做只是求骨骼的包围盒。要求mesh的只能是用CPU蒙皮之后再求所有定点的包围盒,当然比较耗时,所以最好预处理时算好。

谢LS的解答!
我的主要目的是用包围盒做一个简单的碰撞检测.预处理的话有种情况不太适用,就是不同的Animation包围盒相差可能会非常大.要是预求得每个Animation的包围盒那么动作中间过渡的碰撞检测怎么做呢?

有没有比较折中的碰撞检测的办法?一般的游戏开发中都是怎么解决的?

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-7-24 12:09:00 | 显示全部楼层

Re: DirectX中怎样才能求得SkinMesh的包围盒?

每一帧都需要预计算一个包围盒,帧率不固定的话可以按固定间隔如0.1秒计算包围盒,中间的包围盒插值出来。

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2008-7-24 12:55:00 | 显示全部楼层

Re:DirectX中怎样才能求得SkinMesh的包围盒?

谢谢qrli!明白了

3

主题

9

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2008-10-2 19:52:00 | 显示全部楼层

Re: DirectX中怎样才能求得SkinMesh的包围盒?

好!

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2008-10-5 21:49:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 04:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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