Tech/LxEngine/Samples/Ray Tracer

From Athile

Jump to:navigation, search
This page is a work-in-progress. It is not yet complete.
It may contain inaccurate, incorrect information. Use at your own risk.

Contents

Overview

The Ray Tracer sample intends to be a basic ray tracer employing the LxEngine MVC model and constructs.

The goal of the sample is to demonstrate how easily a ray-tracer can be constructed such that as close to 100% of development time can be spent on the ray-tracing code and close to 0% on data i/o and display.


Features

The ray tracer sample intends to be a basic ray-tracer familiar to students of an introductory computer graphics course. The code is intended to be as clean, elegant, and instructive as possible. The feature set should never be a priority over the code clarity.

Current Features

  • Geometry: planes, spheres, cylinders, cones
  • Lights: point
  • Materials: diffuse, specular
  • Shadows (sharp, soft)
  • Reflections
  • Texture maps
  • Bump mapping
  • Multisample
  • Multi-threading
  • XML input
  • Javascript scripting in scene files

Planned Features

  • Lights: spot, ambient, area
  • Opacity, Refraction, Spatial indexing (BSP)
  • Geometry: meshes (.blend files)
  • Multi-process

Details

How does a ray tracer fit into the LxEngine architecture?

First, fit it into an MVC model. The Model will be scene data: the geometry, lights, materials, cameras, etc. The View will be of an image. The Controller will be the ray-tracer itself, that processes the model and produces the image.

In LxEngine terms:


Thought: Split the ray-tracer sample into a tutorial, which is a series of samples, each building upon the code from the last and adding text along the way. Use this in conjunction with the Engine Programming book.


Tutorial

Navigation
Toolbox