C

Lesson 23 - This lesson will just get you up and running using OpenGL to display the final render to the user.

Lesson 24 - Now we’re going to add the sphere and light class to the project and create a light source and rotates around the center sphere. We’ve also added ambient light.

Lesson 25 - Now that we’ve got the basics working it’s time to do some optimizing. The net result is a 50% increase in speed.

Lesson 26 - Now it’s time to learn how to move around our scene. As a by-product of introducing a camera we get a free optimization.

Lesson 27 - Since texturing a sphere is actually two concepts (loading a texture and applying a texture) this is being broken down into two lessons. We’ll start with defining our texture class and loading a texture.

Lesson 28 - Now for the interesting part. In this lesson you’ll learn how to apply a texture to a sphere.

We’ve spent the last 28 lessons putting graphics on the screen in some fashion. Now it’s time to step back and build up a library of classes and namespaces that will be used initially to create a far more robust camera class. As you’ll see later how often these classes will be used for other things as well. The other point to these lessons is learning how to create cleaner and more managable code.

As I mentioned in the last PHP tutorial, Slimeland has posted a much more complex ray tracer than we’ve assembled so far here. These following tutorials are based on the code he used to create his camera class. It’s basically a code conversion and clean up from JavaScript to C++.

FYI: Good Code - This is a quick lesson on what to consider when writing code including examples of what not to do.

Lesson 29 - Our first lesson away from the graphics will cover the creation of a vector class and vector namespace. This will allow us to create and manipulate vectors easily.

Lesson 30 - Now it’s time to use the cVector class and create a cTransform class which will handle rotation and translation in 3D space.

Lesson 31 - In this lesson you’ll learn how to use the transform class to rotate a vector.

Lesson 32 - Now that we have rays, it’s time to create the class that defines them; the camera class.

Lesson 33 - Next up we break all the classes used in previous tutorials (light, sphere, etc) into seperate files and add the new camera in.

Lesson 34 - The first step to the translation of Wolf5K from JavaScript to C++ is to get the ray casting working.

FYI: Linked List - Now that we can render the level it’s time to start work on adding objects. The first step is to create a linked list class.

FYI: Linear Merge Sort - The linked list is nice but as you may recall from the JavaScript version, we have to sort our objects. To do that we use the fastest method of sorting a linked list: the merge sort.

Lesson 35 - With a sortable linked list it’s now time to apply that knowledge to our Wolf5K translation and add in objects.

Lesson 36 - And finally we add in the rest of the game logic to finish the translation.

Lesson 37 - Now that everything is working it’s time to start making it better. We’ll start by increasing the resolution of the render to 320×240.

Review: Lesson 27 - Now that we’ve got the resolution worked out it’s time to add in bitmapped textures. I suggest a review of Lesson 27 first.

Lesson 38 - Time to plug that texture class into Wolf5K so we can take advantage of true color graphics instead of the old 2-bit stuff.

Lesson 39 - The SDL is a useful library for getting graphics going quickly. This lesson will show you how to create the CoreSDL to replace CoreDX. The result is that these lessons are a large step closer to being easily portable to other OSes.

  1. No comments yet.
(will not be published)
  1. No trackbacks yet.