BRayTracer Version History
0.8
Bug fixes
-
An exception was thrown when trying to edit a transform stack that had 0
transformations
-
Discs were very buggy. Many issues have been fixed.
-
Transformations have been redone to take into account world positions
correctly.
-
Fixed bug with GetColorOfRay()--transparency needs to know when no color is
reached. Now returns null if no object is intersected.
-
A number of small bugs with Cone, some related to hitting the caps
-
Anti-aliasing was not working with arbitrary camera position
-
Spheres of radius other than 1 were broken
-
Changing material name didn't update in the tree (still an issue with multiple
appearances of materials in the tree)
-
Major crashing bug with interaction between tree and property view has been
fixed
-
Property grid wasn't being reenabled correctly after a render
Enhancements
-
All menus and context menus have been reordered for consistency, to have
"Add..." at the top
-
Transformations can be named
-
More thorough checks for invalid objects before rendering
-
Materials are now independent from objects and they are assigned to shapes
rather than created specifically for each one. There is full GUI editor support
for this.
-
Color editing is more robust. The user interface shows only byte values,
consistent with Windows' color picker. SysColor is no longer visible. The
system's color picker is now used to pick colors.
-
Shear transformations have been added for XY, XZ, and YZ shears
-
To support transparency, various interfaces have changed to check whether rays
are orginating from inside objects. Shapes have the responsibility of flagging
a ray as originating inside it.
-
Unit tests have been implemented for many more objects
-
Shapes now serialize to a binary file, not SOAP
-
No more specular colors for materials
-
Camera no longer shows ViewingTransform in properties/tree
-
Performance tests are present in the unit tests (mainly to show the difference
of using bounding boxes--for now)
-
Most objects now have a Position property associated with them (as originally)
-
Scene tree colors updated
-
Program now starts up in full screen mode
Features
-
Transparent objects are now possible, including with indices of refraction
-
Preferences dialog box. Preferences file is saved in XML format in the user's
application settings directory.
-
New shape: Box
-
Bounding boxes - and an enormous speed improvement
-
Light sources have been generalized
-
Directional light sources have been introduced, but still need more work.
0.7
Bug fixes
-
Cones now work and they have superceded cylinders, which have been removed. (A
cylinder is just a special case of a cone)
-
Polygon normals corrected and they are double-sided
-
RayTraceSettings are now static and accessible to all objects
-
Vector3f.Normalize was returning backwards vectors
Enhancements
-
Display no longer updates every line, but when image is finished. Code has
ability to customize how often, but not worked into UI yet.
-
Polygon meshes serialize only the filename of the original mesh
-
Vectors and Colors can now be edited as strings and the program will parse them
into components
-
Color chooser dialog has been replaced by the system color picker
-
Rendering code has been split into a separate DLL. This will allow better unit
testing and prepare for future features.
New Features
-
Transformations are implemented. Currently, there are translation, scale,
rotation, and custom transformations available.
-
Transformations and matrices have their own GUI editor.
-
Camera can now be arbitrarily placed and pointed at a specific location
-
An NUnit project has been started. The tests are very incomplete, but they will
be used extensively on new features, while existing features are eventually
added. Unit tests for Vector3f are basically completed at this point.
Removal
-
No more "preview" mode. It just renders. It might be added back in the future
in a different form.
-
Remove ICloneable interface from shapes--not necessary anymore
-
No more BenWatson namespace. Root namespace is BRayTracer.
-
Object names no longer show up as sub-properties of objects
0.6
Bug fixes
-
Hooked up all menus and toolbar butons to commands
-
Meshes now serialize/deserialize better--saving just the filename, which must
be reloaded before rendering
Enhancements
-
Put scene object editor on main form instead of a separate dialog
-
DoPrerenderCalculations will now throw an exception if the object has errors
-
Ability to set render thread priority
New Features