Post

 Resources 

Console

Home | Profile | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 VBGamer
 VBGamer
 How to get camera plane ?

Note: You must be registered in order to post a reply.

Screensize:
UserName:
Password:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert EmailInsert Image Insert CodeInsert QuoteInsert List Spell Checker
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

   Insert an File
Check here to include your profile signature.
Check here to subscribe to this topic.
    

T O P I C    R E V I E W
game_maker Posted - Jun 19 2004 : 6:16:51 PM
{ Camera × Object } Collision

To do collision (Box or Shpere) I nead to got the plane from the view port => how can I get the Camera Plane ?
6   L A T E S T    R E P L I E S    (Newest First)
Eric Coleman Posted - Jun 20 2004 : 3:26:30 PM
Are you trying make the viewing frustum not collide with anything? I think you should probably do what VBBR suggests, use either a bounding box or sphere around the camera's position and test to see if that collides with anything.
game_maker Posted - Jun 20 2004 : 2:49:57 PM
To do collision I must first compute the camera boundary right?

I can't compute the boundary from equation of plane with no limit's right?

So I think what I need is to find the borders in camera's plane....

The view port is a rectangular rotated in xyz ... right?

See I am totally with you with math stuff:

Equation of Plane:

ax + by + cz + d = 0

We can find the equation (i.e. finding a,b,c,d) if we have the normal vector to the plane and any point in the plane as you said

N: is the normal vector to the plane <a1,a2,a3>
P: is general point in the plane <x,y,z>
P1 : is a known point in the plane <x1,y1,z1>

Ok if we find P1P vector = <x-x1,y-y1,z-z1>

Notice that P1P is normal to N so the dot product is equal to zero

N . P1P = <a1,a2,a3> . <x-x1,y-y1,z-z1> = 0

a1(x-x1) + a2(y-y1) + a3(z-z1) = 0

a1x - a1x1 + a2y - a2y1 + a3z - a3z1 = 0

a1x + a2y + a3z -( a1x1 + a2y1 + a3z1) = 0

Finally:

a = a1
b = a2
c = a3
d = -(a1x1 + a2y1 + a3z1)

Ok if we take camera's position + rotation it will be the center of our boundary.... I need one corner point

Am I doing this wrong ?
Eric Coleman Posted - Jun 20 2004 : 10:08:37 AM
The camera isn't in a finite plane, so I'm not sure what you're looking for.
VBBR Posted - Jun 20 2004 : 06:38:11 AM
Wouldn't it be more easy just checking with a bounding box/sphere for the camera?
game_maker Posted - Jun 20 2004 : 12:50:29 AM
very nice ^^

but this gives me equation of plane - infnite plane ? what I need is finite plane
Eric Coleman Posted - Jun 19 2004 : 10:36:57 PM
Assuming you know the camera's position, then you can easily find the camera's plane.

use the vector

v.x = ViewMatrix.m13
v.y = ViewMatrix.m23
v.z = ViewMatrix.m33

and then calculate

p.x = ViewMatrix.m11 + CameraLocation.x
p.y = ViewMatrix.m21 + CameraLocation.y
p.z = ViewMatrix.m31 + CameraLocation.z

And finally use the function D3DXPlaneFromPointNormal in the D3DX library were the vector v is your plane's normal and p is a point in the plane.

VBGamer © Go To Top Of Page
This page was generated in 0.08 seconds. Snitz Forums 2000

Copyright © 2002 - 2004 Eric Coleman, Peter Kuchnio , et. al.