This is Vic.  Jack of all trades
gamer | doofus | engineer | weirdo | lover | fighter | writer | coder | wit | twit | nerd | canadian
No funny orange bears totting rocket launchers yet, but it's getting there!

Mojobear


Premise
Mojobear is the name of my personal research and development engine for 3D graphics and user interaction. It's still in its infancy, but I intend to develop it into a platform to test all sorts of 3D graphics algorithms, pipeline programs (vertex and fragment), and the like. Progress is achieved in my spare time or wherever I can branch the codebase for my academic work.

System Requirements
These requirements are approximate and change:
-Pentium-class or better processor
-A 3D graphics card supporting OpenGL 1.1 or higher
-64MB of system memory
-Windows 98, Me or Windows 2000, XP operating system (By design, Mojobear is very easy to port to other operating systems such as Linux)

Motivation
Making game mods is great, but you only access the game's core engine functions via a game-level API. Mojobear serves as a project to gain experience implementing a 3D rendering engine and as a platform for testing cutting-edge technology like the latest OpenGL extensions and graphics techniques. The scale and nature of this project rarely occurs at the undergraduate academic level, so I took it upon myself to learn on my own.

Credits
Unless otherwise stated, all code and graphics were developed by Victor Chow.

Current Features
Many features are in-development and not listed here:
  • Modular OO design
  • Graphics API-independent renderer design (current renderer implemented in OpenGL)
  • Constant frame rate and timing mechanisms
  • Intuitive engine-level API
  • Engine-level text configuration file
  • File system and OS-dependent operations abstracted
  • Multitexture and multipass rendering paths
  • Back-to-front sorting of transparent objects
  • ASE format model importer
  • Text file based polygon-level shader files
  • Sky box drawing
  • Multiple-axis billboarding
  • Standard 2D text drawing facilities
  • Classic vertex lighting


Screenshots
Multitexture cube Simple, multitextured cube.
A reference grid with a multi-textured cube. The cube polygons are composed of three textures and blends - an initial additive layer plus two decal/blend-style textures. This three-pass drawing was setup in a plain text file "shader."

Skybox + multitextured, environment-mapped cube Skybox and environment mapping.
Similar to the previous screenshot, but the skybox is now shown and environment mapping on the twisted box is easily enabled with a single word in the text file shader.
Twisted box shader.
Texture 1 (JPEG to reduce size)
Texture 2 (JPEG)
Texture 3 (JPEG)
Note: tropical skybox image is made by Nick Coombe (Crinity).

Per-vertex lighting. Per-vertex lighting.
The default behaviour of light objects in the scene resort to the classic vertex lighting model available in fixed-function pipelines. Also shown are billboarded "sprites" that indicate the position of the three contributing scene lights and the skybox.



Downloads
To be made available at a future date.



Valid XHTML 1.0! Valid CSS 2.0!
© Copyright 2002-2005 Victor Chow.