O'Reilly logo

Learning XNA 4.0 by Aaron Reed

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Primitive Types

So, you’re cruising along, enjoying the ride through XNA 3D land…but it still isn’t that exciting. You’ve created a cool-looking triangle and moved it around, but that’s about it. Although the triangle has a cool effect with the blended colors, you’ll probably never see a full game done completely with colors like this. Typically, when drawing in 3D you’ll be drawing primitives and then applying textures to those primitives.

Tip

Applying a texture? What’s that? As you’ve learned in previous chapters of this book, a texture represents a 2D bitmap or other image. Textures in 3D graphics are often mapped to 3D surfaces on objects (such as your triangle in the previous example). This process of mapping a 2D texture to a 3D surface is referred to as applying a texture.

So, in the rest of this chapter, we focus on applying a texture to your triangle. However, you’re going to use a rectangular texture, so you’ll need to convert your triangle to a rectangle. How can this be done? Well, you can’t just start drawing rectangles, because you need to draw using triangles. However, two triangles next to each other can form a square or rectangle.

Change the code in your LoadContent method that initializes your vertex array to the following:

verts = new VertexPositionColor[4]; verts[0] = new VertexPositionColor(new Vector3(−1, 1, 0), Color.Blue); verts[1] = new VertexPositionColor(new Vector3(1, 1, 0), Color.Yellow); verts[2] = new VertexPositionColor(new Vector3(−1, −1, 0), Color.Green); ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required