raytrace.cpp File Reference

#include <Magick++.h>
#include <cstdlib>
#include <ctime>
#include <dlfcn.h>
#include <getopt.h>
#include <glob.h>
#include <iostream>
#include <ncurses.h>
#include <unistd.h>
#include <signal.h>
#include <string>
#include "raytrace_defs.h"
#include "renderable.h"
#include "ray.h"
#include "scene.h"
#include "color.h"

Include dependency graph for raytrace.cpp:

Go to the source code of this file.

Functions

void load_plugins ()
 Load plugins.
int main (int argc, char **argv)
void print_stats (string fname, int elapsed, long primary_rays, long traced_rays)
 Print statistics about the render.
void register_signal_handlers ()
void trace_ray (ColorRGB &pixel, const Ray &ray, int depth)
unsigned long trace_rays (Image &img, Point3D eye)

Variables

raytrace_info rt_info


Detailed Description

Author:
Michael Brailsford <brailsmt@yahoo.com>

Brandon Inman <brinman2002@yahoo.com>

Date:
Fri Mar 23 00:10:18 -0500 2007 © 2007 Michael Brailsford

Definition in file raytrace.cpp.


Function Documentation

void load_plugins (  ) 

Load plugins.

Definition at line 256 of file raytrace.cpp.

References exit_mbrt(), log_crit, and log_info.

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

int main ( int  argc,
char **  argv 
)

Definition at line 292 of file raytrace.cpp.

References Scene::get_camera(), Scene::get_geometry(), Scene::get_instance(), Scene::get_output_filename(), Scene::get_viewport_pixel_height(), Scene::get_viewport_pixel_width(), load_plugins(), log_info, print_stats(), register_signal_handlers(), and trace_rays().

Here is the call graph for this function:

void print_stats ( string  fname,
int  elapsed,
long  primary_rays,
long  traced_rays 
)

Print statistics about the render.

Definition at line 231 of file raytrace.cpp.

References REPORT_FACTOR, rt_info, and raytrace_info::traced_rays.

Referenced by main().

Here is the caller graph for this function:

void register_signal_handlers (  ) 

Register signal handlers to ensure ncurses is shut down properly when the process is terminated or crashes.

Definition at line 283 of file raytrace.cpp.

References exit_mbrt().

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

void trace_ray ( ColorRGB &  pixel,
const Ray ray,
int  depth 
)

Trace a ray from the coordinate of the eye, through every pixel in the image.

Parameters:
pixel The pixel in the image which will be calculated by tracing the ray.
ray The ray to be traced.
depth The current depth in the recursion of rays traced.

Definition at line 173 of file raytrace.cpp.

References Ray::direction(), Scene::find_collision(), Renderable::get_color_contribution(), Scene::get_instance(), Scene::get_max_recurse_depth(), Renderable::get_opacity(), Renderable::get_reflection(), Scene::get_viewport_pixel_height(), Scene::get_viewport_pixel_width(), INF, OPAQUE, Ray::origin(), raytrace_info::primary_rays, raytrace_info::rendered_pixels, REPORT_FACTOR, rt_info, raytrace_info::start_time, and raytrace_info::traced_rays.

Referenced by trace_rays().

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned long trace_rays ( Image &  img,
Point3D  eye 
)

Trace a ray for each pixel in image.

Parameters:
data Image imformation that will be populated by tracing the rays.
eye The origin of all rays shot into the scene.

Todo:
Extract the algorithm part of this function. Then change the algorithm used based on user input/configuration. This will allow us to compare algorithms and provide choice for users and flexibility for future algorithms.

Definition at line 42 of file raytrace.cpp.

References Scene::get_instance(), Scene::get_subpixel_sqrt(), Scene::get_viewport_pixel_height(), Scene::get_viewport_pixel_width(), jitter(), raytrace_info::rendered_pixels, rt_info, trace_ray(), raytrace_info::traced_rays, Point3D::x, Point3D::y, and Point3D::z.

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

struct raytrace_info rt_info

Definition at line 33 of file raytrace.cpp.

Referenced by print_stats(), trace_ray(), and trace_rays().


Generated on Tue Oct 30 22:12:20 2007 for mbrt by  doxygen 1.5.2