平民程序 - linghuye's blog

天下风云出我辈,一入江湖岁月催。皇图霸业谈笑中,不胜人生一场醉。提剑跨骑挥鬼雨,白骨如山鸟惊飞。尘事如潮人如水,只笑江湖几人回。

随笔 - 213, 文章 - 0, 评论 - 575, 引用 - 0
数据加载中……

3D人物模型在TriangleMesh环境中行走跳跃的碰撞行为反应

How general games solve this question?So difficult.

ODE作的是刚体动力学,似乎不适合作解决方案.

1.The easiest way to handle a collision is to simply stop and not allow the move when a collision is detected. On the other hand - that is not how the professionals do is it? No, we want fancy collision response like sliding along the walls, automatically climbing stairs and automatically bumping over smaller obstacles on the ground.

2.The penetration depth of a pair of intersecting objects is the shortest vector over which one object needs to be translated in order to bring the pair in touching contact.

3.Responses are managed in response tables. To each object on which a response is defined in a response table a response class is assigned. Responses are defined per pair of response classes, rather than per pair of objects. So, the response for a pair of objects is the response defined for their respective response classes.

1.Move our sphere as close as possible to the triangle we’re colliding with.
Lets call this position for “newPosition”.

2. Calculate the sliding plane based on this new position.

3. Project the original velocity vector to the sliding plane to get a new
destination.

4.Make a new velocity vector by subtracting the polygon intersection
point from the new destination point.

5.Recursively call the entire collision detection routine with the new position
and the new velocity vector.


Reference:
http://www.peroxide.dk/download/tutorials/tut10/pxdtut10.html
http://www.win.tue.nl/~gino/solid/gdc2001depth.pdf
http://www.gamasutra.com/features/20000330/bobic_01.htm
http://people.netfarm.it/~guyver1/Didattica/RTM/Lezioni/Lezione6/CollisionDetection_file/frame.html#slide0067.html

posted on 2005-12-28 17:08 linghuye 阅读(1213) 评论(0)  编辑 收藏 引用 所属分类: 3D图形学研究我的3D引擎 -DestinyMatrix



标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
 
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]

相关链接: