Chronically Disemboweled by Bears

 

ProgramOrganization

Page history last edited by Tim Lyakhovetskiy 3 yrs ago

Architecture

 

FirstIterationArchitecture

 

Utility Classes

  • Vector3 - Describes a 3D vector.
  • Matrix4 - Describes a 4x4 matrix. Useful for transformations (translation, projection, rotation, etc...)
  • PreciseColor - Describes a color. We write our own class to better control precision.
  • ImageChunk - A rectangular chunk of pixels, perhaps with information on which image it belongs to (for an animation).

Raytracer Core

  • Camera - Describes a camera with a location, direction, field of view, exposure, etc...
  • World (interface) - Describes a way to organize a scene in memory. Contains a method for intersecting a ray with the world. WorldInterface
    • SimpleWorld - The world is arranged as just a list of objects.
    • OctreeWorld - The world is divided into a recursive hierarchy of cubes.
    • KDTreeWorld - The world is divided into a recursive hierarchy of axis-aligned planes.
  • Deserializer (interface) - Describes how to deserialize a scene from disk (or any storage, really).
    • Deserializer3ds - Deserializes a scene represented in the 3D Studio format.
    • DeserializerXML - Deserializes a scene represented in XML.
  • SceneObject (abstract class) - Describes an object in a scene.
    • Light (interface) - Describes a light source. Has methods for calculating shading based on an incident ray.
      • OmniLight - A light source represented by a point. Omnidirectional.
      • SpotLight - A light source that acts in a cone-like fashion. (spotlight)
    • Primitive (interface) - Describes a geometric primitive. Includes a method to intersect a ray.
      • SpherePrimitive - Self-explanatory.
      • PlanePrimitive - Self-explanatory
      • BoxPrimitive - Self-explanatory
      • Triangle - A triangle that indexes into a vertex list.
  • Ray - Describes a ray with a starting point and a direction.
  • RayIntersection - Stores information such as intersected color, shading, etc...
  • Vertex - Describes a point in space with associated color, lighting, and mapping information.
  • Material - Defines a material applied to a primitive. May include a texture reference.
  • Texture (interface) - Describes an image that can be mapped onto a primitive
    • FileTexture - Describes an image loaded from a file.

Application-related

  • TraceSettings - Holds settings necessary for rendering a scene. Eg: max recursion depth, anti-aliasing, image size.
  • TraceServer - The ray tracing server.
  • TraceClient - The ray tracing client.

Utility

  • RenderPanel - A class derived from JPanel that simplifies showing rendering progress.
  • SimpleMemoryImage - Wraps several Java classes to create an in-memory image.
  • RenderEvent - Describes an event such as a traced scanline or a finished render.
  • RenderListener - A listener for rendering events.

Comments (0)

You don't have permission to comment on this page.