The Camera Course Information CVG: Programming 4 My Name: Mark Walsh Website: Recommended Reading Introduction to 3D Game Programming with DirectX 9.0 (Frank D. Luna)
Re-Cap Local Space World Space View Space
Local Space
World Space
View Space
Flexible Camera Class Objective is to build a flexible FP based games camera: Flight Simulators and Shooters The first stage is camera design
Camera Design The camera position is defined relative to the world coordinate system using 4 vectors Right, Up, Look, Position They define a local coordinate system relative to the world coordinate system
Camera Picture:
Vectors: Right, Up and Look define the cameras orientation in the world They are therefore the orientation vectors The orientation vectors must be orthonormal –Mutually perpendicular to each other –Of Unit Length A row matrix where the rows are made up of orthonormal vectors is orthagonal
Camera Operations Using the 4 vectors we wish to be able to: Rotate around the right vector or X axis (Pitch) Rotate around the up vector or Y axis (Yaw) Rotate around the look vector Z axis (Roll) Strafe along the right vector Fly along the up vector Move along the look vector
Implementation We calculate the view matrix using the camera vectors Remember that view space transforms the geometry in the world… …so that the camera is centred at the origin and the axes are aligned with the major coordinate axes
Rotation About Arbitrary Axis Pitch Yaw Roll
Rotation D3DXMatrixRotationAxis Angle in Radians to Rotate Rotate around arbitrarily defined vector
Walking, Strafing, Flying Walking = Moving along the Look vector Strafing = Moving along the Right vector Flying = Moving along the Up Vector
To move we add a vector to our position vector The should have the same direction Need to set restrictions –Walking, flying distinctions
The End