--
[ Picked text/plain from multipart/alternative ]
I really don't like the Physics system due to the many limitations we have
with it, including tracing.  Which is why I want to build my own trace.

I took a quick look at the Quake2 source code and they do a
RecursiveHullTrace which I believe HL/HL2 uses, maybe if I mimic it and take
into account the radius of my sphere I could get the trace I'm looking for.
I'll have to test this method out and see how it pans out.  If I do happen
to get this trace working I'll be glad to share my results with the
everyone.

On 9/26/07, Paul Peloski <[EMAIL PROTECTED]> wrote:
>
> --
> [ Picked text/plain from multipart/alternative ]
> Does physenv->CreateSphereObject do what you want? Check out CPhysSphere,
> which creates a sphere instead of using the models physics data. I'm
> assuming that, internally, creating a physics sphere this way will use
> fast
> sphere/plane intersection but Jay would know for sure.
>
> This way, you can make a spherical entity and handle collisions in
> VPhysicsCollision. It's not a trace but it might work for you depending on
> what you wanted to do with the trace.
>
> Regards,
>
> Paul
>
> On 9/25/07, Joel R. <[EMAIL PROTECTED]> wrote:
> >
> > --
> > [ Picked text/plain from multipart/alternative ]
> > I've been attempting to create my own sphere trace using 2 engine
> > functions.
> >
> > void GetBrushesInAABB( const Vector &vMins, const Vector &vMaxs,
> > CUtlVector<int> *pOutput, int iContentsMask = 0xFFFFFFFF )
> > bool GetBrushInfo( int iBrush, CUtlVector<const cplane_t *> *pPlanesOut,
> > int
> > *pContentsOut )
> >
> > I had 2 theories to go about doing this using a start/end point and a
> > radius.
> >
> > First theory was to create a box around my start/end positions and grab
> > all
> > plane data within the confines of this box.
> > I'd do something like so:
> >
> > float d1 = (plane.dist - radius) - start;
> > float d2 = (plane.dist - radius) - end;
> >
> > and using that to determine for a hit/miss based on the positive and
> > negative values of the distance.  However surrounding a box around my
> > start/end would give me extra planes that'll give me a bunch of false
> > positives on planes that are very tiny, since this algorithm is used for
> > infinite sized planes..
> >
> > Second theory was to slide the box in intervals and check for planes at
> > each
> > interval with a mins/max box the size of my radius. Then back checking
> the
> > distance to see if I hit or penetrated any planes within.
> >
> > Both of these methods seem to not work after thinking about different
> > possibilities that could arise due to the infinite sized plane
> algorithm.
> > I
> > then noticed there was extra values in the cplane_t structure that I'm
> not
> > very familiar with:  cplane_t::signbit and cplane_t::type.  What purpose
> > do
> > these serve for the plane?  Do they help determine if I'm within the
> > planes
> > constrictions for a collision?
> >
> > Anyone out there familiar with collision detection could help me out?
> I'd
> > really like to have a sphere trace.
> > --
> >
> > _______________________________________________
> > To unsubscribe, edit your list preferences, or view the list archives,
> > please visit:
> > http://list.valvesoftware.com/mailman/listinfo/hlcoders
> >
> >
> --
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>
>
--

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to