Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Introduction to 3D Computer Graphics and Virtual Reality McConnell text Vectors • Vectors have direction and magnitude – generally given in terms of three coordinates and hence the representation is an arrow from the origin to that point (3,1,1) • Vectors are important for viewpoint, orientation, scaling, rotating and other transformations Vectors (con’t) • • • • Length: ||v||= x2 y2z2 Addition, scalar multiplication Dot product: vw||v|||| w|| cos Cross-product: vector that is perpendicular to both Courtesy Wikipedia for symbols Camera • Point of view of a camera; viewpoint • Clipping window is the part of the scene that is visible • View direction • What is up? Coordinate Systems • 3D coordinate system – right or left handed (curl fingers from pos X-axis to pos Y-axis: thumb points pos Z)– Virtools is left-handed, Processing is left-handed, but the y axes (and hence the z axes) point in opposite directions Y X Virtools Z Processing Z Y X • 2D screen coordinate system: X Y Coordinate System: 3D Environments • Most 3D environments have at least two coordinate systems: a world coordinate system and a local coordinate system for each object (sometimes parts of objects) • The world coordinate system does not change • The local coordinate system is generally located in the “middle” or in a corner of the object and is set in the 3D modeling program. Coordinate Systems (con’t) • Clipping window is the visible area of the 3D scene (it is 2D)- window through which you look • Viewport is where on the screen (also 2D) the visible scene appears; uses the coordinate system of the screen • The viewport and the clipping window may be different sizes, in which case there is stretching or squishing • Aspect ratio= width/height- easier if both clipping window and viewport have same Interplay of 2D and 3D systems • There are often 2D objects (buttons, interfaces, screen text) – these are in the 2D system • 3D objects must actually be rendered on the screen so they ultimately end up with 2D coordinates • This projection onto the screen must take into account the z-position of objects, as well as perspective Orientation • Objects in a 3D world have spatial location (position) and orientation • Orientation is given in many different forms: pitch, roll, yaw or Euler angles (around each axis); quaternions • In Processing can rotate in 2D or in 3D around the axes • In the Virtools setup Euler angles are used for orientation Object Representation • 3D objects are represented with meshes; points that are joined together in convex, planar polygons (faces); typically these polygons are triangles because then there is assurance that they will be planar • The set of points forms the mesh • Each face of the mesh may have a material associated with it; these materials can be textures and/or colors • Details (and realism) increase with the numbers of polygons Point Representation • These representations allow for algorithms for calculation of intersections, collisions, positioning • Also have algorithms to find which objects are in front, partial view, occlusion • For speed, objects can be surrounded by a bounding box – allows quick calculation of intersections Graphics Pipeline • Model the individual objects (color, transformations, realism, where located) and together they constitute a scene • Render the scene (lights, shading, camera, etc.) in an image • Display the image as output • If in a virtual environment have real-time, interaction and navigation