Jump to content
  • Advertisement


This topic is now archived and is closed to further replies.



This topic is 5901 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

alright, i am trying to use the D3DX8.Intersect function - its driving me nuts - for collision detection. for right now im trying to get it to work with shots hitting stationary, non-rotated buildings. i tile my map into 10x10 units with a buidling in some. pseudo code shot is in tile x,z building in tile x,z? yes cool check for collision matrixtranslation tileMartix, tilex*10,0,tileZ*10 matrixmultiply newworldmatrix, tilematrix, worldmatrix <- ive tried swapping matrix order matrixinverse invworldmatrix, det, newworldmatrix d3dxvec3transformcoord NewPos, origPos, invworldmatrix newDir = standard cos/sin(origRadian) x z * 10 d3dx8.intersect buildingmesh, NewPos, newDir basically trying to get shots vector in model space of the building, while maintaining its relationship. ive tried all sorts of combinations with no luck. sometimes i get hits but it never makes sense. thanks for any help you can give

Share this post

Link to post
Share on other sites
I recently dealt with the same problems and D3DXInteresect does work. The two things that I'd consider is your matrix multiplication order ( you should be able to set up cases you can check in the debugger ) and this line:

newDir = standard cos/sin(origRadian) x z * 10

Not sure what that is for. After I build the matrix to transform the position and direction of the ray I call D3DXTransformCoord on the position and D3DXTransformNormal on the direction.


[edited by - JackNathan on July 29, 2002 9:53:34 AM]

Share this post

Link to post
Share on other sites
damn posted a reply but errored out - now to type it all again, i hit post, then came back later and just shutdown my machine

newDir.x = xpos +cos(origRadian)* 10
newDir.z = zpos +sin(origRadian)* 10

(might have cos/sin reversed, not in front of my code right now)

but just putting the lookat vector out in front of the d3dxvec3transformcoord vector.

i debug by rendering a stationary shots at vNewOrig and one at vNewDir to see where they are at. they appear to be correctly moved back into model space of the building

havent used the debugger before, ill should probably check it out.

does intersect look at all subsets of a mesh automatically?

thanks, ill look at multiplication again.

Share this post

Link to post
Share on other sites
ahhg figured it out - math was right - however im doing a tank game. to make the shot mesh i just put it at the end of the barrel in Milkshape then exported just the shot. np but my Y on it would be 0 (just doing X Z space right now). so when putting vectors into intersect the ray it made was under the building


think ill go back and center all my models.

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!