Chapter 10

OpenGL ES: Going 3D

Super Jumper worked out rather well with the 2D OpenGL ES rendering engine. Now it's time to go full 3D. You've already worked in a 3D space when you defined your view frustum and the vertices of your sprites. In the latter case, the z-coordinate of each vertex was simply set to zero by default. The difference from 2D rendering really isn't all that big:

  • Vertices not only have x- and y-coordinates, but they also have a z-coordinate.
  • Instead of an orthographic projection, a perspective projection is used. Objects further away from the camera will appear smaller.
  • Transformations, such as rotations, translations, and scales, have more degrees of freedom in 3D. Instead of just moving the vertices in the x-y plane, they can now be moved around freely on all 3 axes.
  • A camera is defined with an arbitrary position and orientation in 3D space.
  • The order in which you render the triangles of your objects is now important. Objects further away from the camera must be overlapped by objects that are closer to the camera.

The best thing is that you have already laid the groundwork for all of this in your framework. You just need to adjust a couple classes slightly to go 3D.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset