Chronically Disemboweled by Bears

 

FirstIterationArchitecture

Page history last edited by Anonymous 3 yrs ago

Tim's Architecture Proposal

 

Preliminary Class Hierarchy

Utility Classes

  • Vector3 - Describes a 3D vector.
  • Matrix4 - Describes a 4x4 matrix. Useful for transformations (translation, projection, rotation, etc...)
  • Color - Describes a color. We write our own class to better control precision.
  • ImageChunk - A rectangular chunk of pixels.

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.
    • SimpleWorld - The world is arranged as just a list of objects.
  • 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.
  • Ray - Describes a ray with a starting point and a direction. Can also store information such as intersected color, shading, etc...
  • Primitive (interface) - Describes a geometric primitive. Includes a method to intersect a ray.
    • SpherePrimitive - Self-explanatory
    • PlanePrimitive - Self-explanatory

Application-related

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

Comments (0)

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