Week 12

Raytracer

With the great success of my URender Raytracer in the Programming for Visual Simulations course, I thought it would be a great integration into Raina3D. The raytracer was a console-based with a similar file parser as Raina3D. The first task was to apply QT graphical user interface into the Raytracer to allow the great flexibility in handling scenes and renders. This week, I implemented the primary application window with the Outliner list (objects) on the left side, the render space on the center of the application, an Edit dialog for objects on the right side, and finally the render button on the bottom. The file menu allows the user to load a scene and edit the tracer preferences.
The outliner traverses through the list of objects, camera, and lights in the scene. This list allows the user to select the object and edit its attributes in the dynamic edit dialog box. Current version of the edit dialog supports editing the all of the attributes, except for shaders.


Map Editor

Once again, taking full advantage of QT’s GUI system, I implemented the Map Editing process, which meant to re-design and implement all levels of tile creation. The TextureViewer has changed to load a reference to an image rather than the actual image. This allows to window to become a dynamic texture and tile viewer. The Tileset Editor has been completed to allow the user to create a new tileset and load/save a tileset.

The Map Editor uses tile sets as a template for building maps. The current version supports using a single tileset because the editor saves the references of the images from the tileset and then burns the images into the actual image during the saving process. The editor has a user-specified grid on the left side and a Tileset window and options on the right hand side. Editing modes include: Select a Tile, Increment Tile, Select Source Tile, and Paste Tile. Selecting a tile selects a tile from the map grid. Increment Tile increments the clicked tile to the next one in the tileset. Select Source Tile allows selection from the source tileset. Paste Tile pastes the current tile onto the map grid.

The primary attributes for a tileset and map are the tile dimensions (height/width) and the numbers of rows/columns. The reason behind not implementing width/height into the editing process is due to the fact that this allows the map to be flexible to the user during scene-loading. The user can create a game level of their specifications and OpenGL will apply the map texture to the appropriate size.

New File Format: map

.map is the new file format, in regards to the file output of the Map Editing process. This is a text file, which can be read by the Raina3D parser to load in 2 ways: Map Editor and Scene Loading. The Map Editor loads the map with the generated tile information. The user can edit the map and tiles with the current tileset or complete change the map by applying a different tileset. The Scene Loader loads the map and its texture. The current version builds a graphical quad which can be placed anywhere in the scene and sized according to the user.

Weekly Notes
Project-specific sections:

> Week 1 Notes
> Week 2 Notes
> Week 3 Notes
> Week 4 Notes
> Week 5 Notes
> Week 6 Notes
> Week 7 Notes
> Week 8 Notes
> Week 9 Notes
> Week 10 Notes
> Week 11 Notes
> Week 12 Notes
> Week 13 Notes
> Week 14 Notes
> Week 15 Notes
> Week 16 Notes
> Week 17 Notes
> Week 18 Notes
> Week 19 Notes
> Week 20 Notes

Home | About Raina3D | About Us | Thanks | Contact
Copyright (c) 2005-2009 Raina3D All rights reserved.