Re: Kinematic Collision

[email protected]
Newsgroups gmane.games.devel.algorithms
Message-ID <OFB255E3B1.C0A5709F-ON80257625.002D5958-80257625.002DFD76@scee.net>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi Johan,

>     Step 1:
>     If our current position is our target position we can end, otherwise 

> do a capsulesweep from our current position to our target position + a 
> small bias, if no collision is reported we can end otherwise continue to 

> step 2

This biasing is part of your problem, instead of biasing you need to do 
something similar yet different:

When doing your swept shape-cast, you need an inner-hull shape of slighter 
smaller radius than the outer hull. Then, when you get a TOI intersection 
(which would obviously embed your outer hull in the ground, and the inner 
hull just touching), you can 'move back' the whole shape so that the outer 
hull is just touching. This means that next frame you won't find yourself 
initially embedded in the ground.

Ideally, you wouldn't need to move the shape back and you'd have some kind 
of method for finding the TOI which puts your shape some known distance 
from the ground (i.e. the distance from the outer hull to the inner), but 
this routine is more expensive than a straight intersection test.


>     Step 3:
>     Find the vector from the new position and the target location and 
> retrieve the reflection/tangent components. Set new target position to 
> the new current position and add both components scaled by a
>     bounce/friction value [0, 1] to it..
> 
>     * NormalMotion = NormalComponent * Bounce
>     * TangentMotion = TangentComponent * Friction
>     * NewTargetPosition = NewPosition + NormalMotion + TangentMotion

Here, ideally, you'd give your character a velocity vector and then you 
can project his velocity into the plane of the normal of the contact point 
(and subtract friction in the tangential velocity direction, as you 
mentioned). As others have said you could make it a rigid body, but i 
don't think you need to go that far for just a character capsule.

Cheers, Paul.
**********************************************************************
This email and any files transmitted with it are confidential and intended 
solely for the use of the individual or entity to whom they are addressed. 
If you have received this email in error please notify [email protected]
This footnote also confirms that this email message has been checked for 
all known viruses.
Sony Computer Entertainment Europe Limited
Registered Office: 10 Great Marlborough Street, London W1F 7LP, United 
Kingdom
Registered in England: 3277793
**********************************************************************
P Please consider the environment before printing this e-mail

-----BEGIN PGP SIGNATURE-----
Version: PGP Universal 2.9.1 (Build 287)
Charset: US-ASCII

wsBVAwUBSp4rN3ajGqjtoMHxAQiUHgf+OXbrlifgpUTqi57rWlkY7EZFuN25BQv6
WznoeV8qB/araugRn1rXSJH5nU0VDR+MtbyxvBPWks9Ekx9RUcLJmaM++pYEeh4E
MbaVsyITsbS97kMhQURjZwC2MdOaMAFSi93PEqrccZ1kH2IdhRFxTA8Dmke+DawN
BTcgS85LUCmHom15W9pI6bpSrzEEZARZ9THaOgqJfNFP2ha9Eraac2bt4E9y/xpm
0NPOT8rMdsGCaRVicMK7Pc4KnaxwFih0byDL5K9n2VVXrjCp2WGKEuDQ9xuHe91H
OAE9i+Ikc+uoO7k87AfUIZzKcyzemNYhqwU6/g5vrQeE/VthSTbluw==
=MATM
-----END PGP SIGNATURE-----

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
GDAlgorithms-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list
Archives:
http://sourceforge.net/mailarchive/forum.php?forum_name=gdalgorithms-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.