DOC PREVIEW
UCSC CMPS 20 - Triangles and Translations

This preview shows page 1-2-3-4-5 out of 14 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 14 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Triangles, TranslationsAnnouncementsSlide 3Drawing TrianglesVertex Structures in XNAVertexPositionColorVertex DeclarationActually drawing the trianglesUsing Basic shaderIterating Through Effect PassesTriangle DrawingWorld MatrixTranslationRotationTriangles, TranslationsGame Design ExperienceProfessor Jim WhiteheadMarch 2, 2009Creative Commons Attribution 3.0(Except copyrighted images)creativecommons.org/licenses/by/3.0Announcements•Project progress report►Due Today•In class, or in my box by 5pm►Take your project work breakdown and schedule (done previously)•Update this schedule based on your (now improved) understanding of what still needs to be done•Cut project scope, if necessary•Remember, you have assignments due in other classes too•Days until Final Project Due: 14►Due Monday, March 16Announcements•3D modeling homework►Assignment text not yet on web►Will be up soon►Due Monday, March 9►Assignment will involve:•Create a simple 3D model (e.g., in Blender)–Something slightly (but not by much) more complex than a cube will be fine•Make this model show up in XNA•Extra credit for making model rotate, applying bitmap textures•Goal is to exercise a model import pathway►Intended to be a straightforward assignmentDrawing Triangles•All complex 3D shapes seen in games are composed of a series of triangles►A triangle has 3 points, one for each corner•Points are more typically known as verticies•Minimum number of points to unambiguously define a planeVertex Structures in XNA•XNA has 4 different structures for representing verticies►VertexPositionColor•Useful for basic shapes, basic colors•x,y,z plus a color for each vertex►VertexPositionTexture•Overlay a bitmap texture onto a shape•x,y,z plus a u,v coordinate into a bitmap texture►VertexPositionNormalTexture•Normal permits lighting effects•x,y,z plus a u,v, coordinate, plus a normal vector►VertexPositionColorTexture•Color information changes color of bitmap texture•Reuse same texture in different contexts•x,y,z plus u,v plus colorVertexPositionColor•VertexPositionColor object►Represents the x,y,z location of a vertex►Also has a color for the vertex►VertexPositionColor v = new VertexPositionColor(new Vector3(0,1,0), Color.Blue);►Need 3 verticies to draw a triangleVertex Declaration•XNA requires you to tell the graphics device what kind of vertex data you will be using►Vertex data is written directly to the GPU►Need to tell the GPU how to interpret the data it receives►GraphicsDevice.VertexDeclaration = new VertexDeclaration(GraphicsDevice, VertexPosi tionColor.VertexElements);•For different types of verticies, would change the vertex structure►VertexPositionTexture example:►GraphicsDevice.VertexDeclaration = new VertexDeclaration(GraphicsDevice, VertexPosi tionTexture.VertexElements);Actually drawing the triangles•In XNA, all 3D rendering is handled by a shader►Shaders defined using High Level Shader Language (HLSL)►Permits creation of wide range of visual effects►More on shaders in a few classes•XNA provides a default shader►Called BasicEffect►Will use this for now•BasicEffect is a type of effect►Effects contain a series of EffectPass►Each pass handles some aspect of putting things on screenUsing Basic shaderFive steps:1. Create Shader►BasicEffect effect = new BasicEffect(GraphicsDevice, null);2. Copy over camera information►effect.View = camera.view;►effect.Projection = camera.projection;3. Set world matrix►effect.World = … (more on this in a few slides)4. Enable vertex capabilities (varies by Vertex type)►Effect.VertexColorEnabled = true; // for VertexPositionColor►Effect.Texture = myTexture; // for VertexPositionTextureEffect.TextureEnabled = true; 5. Iterate through EffectPasses►Call to DrawUserPrimitives inside EffectPass puts triangles on screenIterating Through Effect Passes•Each Effect has calls to begin()/end()•Effects are comprised of passes►Each pass requires a call to begin()/end() effect.Begin(); foreach (EffectPass pass in effect.CurrentTechnique.Passes) { pass.Begin(); GraphicsDevice.DrawUserPrimitives<VertexPositionColor> (PrimitiveType.TriangleStrip, verts, 0, 1); pass.End(); } effect.End();Draws verticiesPasses# of triangles (the “primitive shape” in this context) to drawIndex into verts arrayTriangle Drawing•Examine this line of code►GraphicsDevice.DrawUserPrimitives<VertexPositionColor> (PrimitiveType.TriangleStrip, verts, 0, 1);►What is a TriangleStrip?•Three ways to draw triangles►Triangle List•Each set of three verticies defines a triangle•Memory inefficient, since triangles often share edges in complex 3D meshes►Triangle Strip•Builds triangle out of first three verticies•Each additional vertex creates new triangle using that vertex, plus previous two verticies►Triangle Fan•Each additional vertex creates new triable using that vertex, the previous vertex, plus the first vertexhttp://escience.anu.edu.au/lecture/cg/surfaceModeling/image/surfaceModeling015.pngWorld Matrix•Each triangle has 3 verticies, and each vertex has an x,y,z position►This position is given with respect to an origin location►That is, location is with respect to a local coordinate system•World matrix►Translates from the local coordinate system to the world (i.e., visible on screen) coordinate systemLocal coordinate system offset, no rotation (Note: example uses left handed coordinate system, XNA uses right-handed coordinates) Source: MSDN DirectX documentationLocal coordinate system offset and rotatedwww1.adept.com/main/KE/DATA/V%20Plus/V%20Language%20User/images/World+yaw.giflocalworldTranslation•A translation shifts the local coordinate system relative to the world coordinate system•XNA provides a method for this►Matrix.CreateTranslation•3 parameters are x,y,z movements•Matrix.CreateTranslation(0.01f, 0, 0); // Shift right (positive) along x axis•Matrix.CreateTranslation(-0.01f, 0, 0); // Shift left (negative) along x axis•Multiply world matrix by translation matrix to cause shift►All translations and rotations in 3D graphics accomplished via matrix multiplicationRotation•A rotation shifts the local coordinate system by an angle relative to the world coordinate system•XNA helper methods►Matrix.CreateRotationX, Matrix.CreateRotationY, Matrix.CreateRotationZ•Rotations around single axes•Matrix.CreateRotationY(angle in


View Full Document

UCSC CMPS 20 - Triangles and Translations

Documents in this Course
Load more
Download Triangles and Translations
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Triangles and Translations and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Triangles and Translations 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?