游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2078|回复: 3

急求解答:AABB的精度问题?

[复制链接]

11

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
发表于 2008-4-6 16:45:00 | 显示全部楼层 |阅读模式
最近做了个AABB的演示程序,却发觉精度上存在问题,通过将模型的每个顶点添加进AABB中来进行计算,结果计算出来的AABB我觉得实在是太大了,换了几个模型结果还是一样,太大了!不知道是模型的问题还是代码的问题!
下面是关键代码,希望哪位知道怎么优化AABB的精度的话,请不吝赐教.

// 向AABB中添加顶点,需要重新计算AABB
GLvoid AABB3::AddVertex(const Vector3 &vertex)
{
        // 必要的时候扩张边界框以包含这个点
        if (vertex.x < m_vecMin.x) { m_vecMin.x = vertex.x; }
        if (vertex.x > m_vecMax.x) { m_vecMax.x = vertex.x; }
        if (vertex.y < m_vecMin.y) { m_vecMin.y = vertex.y; }
        if (vertex.y > m_vecMax.y) { m_vecMax.y = vertex.y; }
        if (vertex.z < m_vecMin.z) { m_vecMin.z = vertex.z; }
        if (vertex.z > m_vecMax.z) { m_vecMax.z = vertex.z; }
}

// 模型类成员函数中的关键代码
// 将模型中的所有顶点添加进AABB中
for (GLuint i = 0; i < m_uiTotalVertexNumner; ++i)
{
     m_AABB.AddVertex(m_pVertex);
}
sf_200846164438.jpg

0

主题

228

帖子

285

积分

中级会员

Rank: 3Rank: 3

积分
285
发表于 2008-4-6 21:01:00 | 显示全部楼层

Re:急求解答:AABB的精度问题?

是不是你AABB初始值的问题呢?

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2008-4-6 23:36:00 | 显示全部楼层

Re:急求解答:AABB的精度问题?

在人体的主关节处搞一些包围球,但是要计算出关节的骨骼矩阵,保证包围球能跟随关节的运动
一般10来个左右就足够了,然后用这些包围球来做精确的碰撞检测是十分简单而有效的。
我目前就这样做。

0

主题

36

帖子

36

积分

注册会员

Rank: 2

积分
36
发表于 2008-4-7 11:02:00 | 显示全部楼层

Re:急求解答:AABB的精度问题?

AABB最好不要自己算,建模的时候做好AABB,变换的时候根据变换的AABB生成AABB,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 22:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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