| « quote of the day | shaping up » |
smile, you're on camera
This is really coming together. The development of the "previous" iteration of the framework has arrested at the point where I had to redesign the fundaments of the graphics part, as the camera class had no easy way to support graphical units other than textured quads. No doubt, it's weak. Well, folks, it's been about half a year, and now lumberJack is redone nearly from scratch, in a highly generalized and optimized manner. But let's take a closer look at this camera.
Follow up:
Having reworked not only the Vertex and Shape systems, but the Vector and Matrix classes to allow more optimal and object oriented operation, the Camera (and its adjacent classes) will provide a solid foundation for all your pseudo- and real 3D displaying pleasure. Well, the pseudo-3D part is alredy a reality (for the real 3D part, I still haven't delved into coding the 3D shapes' support, and Quaternions still need a bit of understanding on my part).
The above mentioned adjacent classes are Transformation, Renderee and Scene. Transformation has what it says on the tin, provides you with translation, rotation and scaling carried out in a set order. Renderees are the entities being rendered, comprising of tranformation, texture, shape and render mode information (the latter is the GLenum passed to glBegin()). The Scene class, in turn consist of a backdrop texture (this is what skybox support is going to be expanded on top of), an ambience value which affects the lightness of the colors of entities rendered (but not the backdrop) and a list of Renderees. The argument of the Camera's Render method is a const &Scene.
The Camera sports easily configurable channel scaling. These are basically interpolation functions that are used to automate the tinting of entities depending on their distance from the camera. These are probably going to be transported to Scene.
For now, I've got smaller to do's, like finishing the TextRenderer - then I'll start on my game that's built with the framework. In the meantime, I guess I'll post a downloadable demo.