Week 4 - Friday
What did we talk about last time? Homogeneous notation Vector equations for lines and planes
Once we are in 3D, we have to talk about planes as well The explicit form of a plane is similar to a line: p ( u , v ) = o + u s + v t o is a point on the plane s and t are vectors that span the plane s x t is the normal of the plane
The implicit equation for a plane is just like the implicit for a line, except with an extra dimension Let n be a vector ( a , b , c ) Let p be a point ( x , y , z ) p is on plane π if and only if n • p + d = 0 Since n is the normal of the plane we can compute it in a couple of ways: n = s x t where s and t span the plane n = ( u – w ) x ( v – w ) where u , v , and w are noncollinear points in the plane
Again, it works just like a line If we write f ( p ) = n • p + d Assuming q ∈ plane π f ( p ) = 0 iff p ∈ π f( p ) > 0 iff p lies on the same side as the point q + n f ( p ) < 0 iff p lies on the same side as the point q - n f ( p ) again gives a (scaled) measure of the perpendicular distance from p to π Distance( p ) = f ( p )/|| n || This implies that Distance( 0 ) = d , making d the shortest distance from the origin to the plane
The cross product of two vectors finds a vector that is orthogonal to both For 3D vectors u and v in an orthonormal basis, the cross product w is: − w u v u v x y z z y = = × = − w w u v u v u v y z x x z − w u v u v z x y y x
Plane defined by: (1, 3, 2) (2, 5, 2) (3, 8, 2) Where is (3, 3, 2)? What about (3, 4, 5)?
Let p = ( p x , p y ) be a unit vector Let ϕ be the angle the vector makes with the x -axis sin ϕ = p y cos ϕ = p x tan ϕ = sin ϕ /cos ϕ = p y / p x
For a right triangle with sides a and b and hypotenuse c : sin α = a / c cos α = b / c tan α = sin α /cos α = a / b c 2 = a 2 + b 2
For any triangle: sin α sin β sin γ = = Law of sines: a b c c 2 = a 2 + b 2 – 2 ab cosγ Law of cosines: + α β tan + Law of tangents: a b 2 = − − α β a b tan 2
Trigonometric identity: cos 2 ϕ + sin 2 ϕ = 1 Double angle: sin2 ϕ = 2sin ϕ cos ϕ = 2tan ϕ /(1 + tan 2 ϕ ) cos2 ϕ =cos 2 ϕ - sin 2 ϕ =1 – sin 2 ϕ tan2 ϕ = 2tan ϕ /(1-tan 2 ϕ ) There are a host of other useful ones listed in the book
The computer science behind texture mapping uses a lot of techniques to make it look better For now, we're only worried about mapping a vertex to a location in a rectangular texture MonoGame will take care of the rest
Texture coordinates are usually u (0,0) (1,0) given in ( u , v ) form u is the horizontal direction and v is the vertical These coordinates are each v almost always in the range [0, 1] In MonoGame, u grows from left to right and v grows from top to bottom (0,1)
Load images into Texture2D objects as before Use a vertex format that allows a texture to be specified (such as VertexPositionNormalTexture ) Set appropriate texture coordinates on each vertex When drawing, set the Texture property on the BasicEffect object to the texture you want to use Apply the change on the pass
A transform is an operation that changes points, vectors, or colors We can use them to position and animate objects, lights, and cameras A linear transform is one that holds over vector addition and scalar multiplication Rotation Scaling Can be represented by a 3 x 3 matrix
Adding a vector after a linear transform makes an affine transform Affine transforms can be stored in a 4 x 4 matrix using homogeneous notation Affine transforms: Translation Rotation Scaling Reflection Shearing
Notation Name Characteristics T ( t ) Translation matrix Moves a point (affine) R Rotation matrix Rotates points (orthogonal and affine) S ( s ) Scaling matrix Scales along x , y , an z axes according to s (affine) H ij ( s ) Shear matrix Shears component i by factor s with respect to component j E ( h , p , r ) Euler transform Orients by Euler angles head (yaw), pitch, and roll (orthogonal and affine) P o ( s ) Orthographic Parallel projects onto a plane or volume (affine) projection P p ( s ) Perspective projection Project with perspective onto a plane or a volume slerp( q , r , t ) Slerp transform Interpolates quaternions q and r with parameter t
More on standard transforms Normal transforms Inverses Euler transform Matrix decomposition Rotation around an arbitrary axis Quaternions
Keep reading Chapter 4 Work on Project 1, due next Friday
Recommend
More recommend