annotate src/rt.h @ 54:6a30f27fa1e6
separated the OpenGL visualization and added a CPU raytracing mode
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Fri, 10 Sep 2010 16:47:00 +0100 |
parents |
30bf84881553 |
children |
df239a52a091 |
rev |
line source |
nuclear@3
|
1 #ifndef RT_H_
|
nuclear@3
|
2 #define RT_H_
|
nuclear@3
|
3
|
nuclear@22
|
4 #include "scene.h"
|
nuclear@13
|
5
|
nuclear@47
|
6 enum {
|
nuclear@47
|
7 ROPT_ITER,
|
nuclear@47
|
8 ROPT_SHAD,
|
nuclear@47
|
9 ROPT_REFL,
|
nuclear@47
|
10
|
nuclear@47
|
11 NUM_RENDER_OPTIONS
|
nuclear@47
|
12 };
|
nuclear@47
|
13
|
nuclear@54
|
14 struct RendInfo {
|
nuclear@54
|
15 float ambient[4];
|
nuclear@54
|
16 int xsz, ysz;
|
nuclear@54
|
17 int num_faces, num_lights;
|
nuclear@54
|
18 int max_iter;
|
nuclear@54
|
19 int cast_shadows;
|
nuclear@54
|
20 };
|
nuclear@54
|
21
|
nuclear@54
|
22 struct Ray {
|
nuclear@54
|
23 float origin[4], dir[4];
|
nuclear@54
|
24 };
|
nuclear@54
|
25
|
nuclear@54
|
26
|
nuclear@39
|
27 bool init_renderer(int xsz, int ysz, Scene *scn, unsigned int tex);
|
nuclear@3
|
28 void destroy_renderer();
|
nuclear@3
|
29 bool render();
|
nuclear@12
|
30 void set_xform(float *matrix, float *invtrans);
|
nuclear@12
|
31
|
nuclear@54
|
32 const RendInfo *get_render_info();
|
nuclear@54
|
33
|
nuclear@47
|
34 void set_render_option(int opt, bool val);
|
nuclear@47
|
35 void set_render_option(int opt, int val);
|
nuclear@47
|
36 void set_render_option(int opt, float val);
|
nuclear@47
|
37
|
nuclear@47
|
38 bool get_render_option_bool(int opt);
|
nuclear@47
|
39 int get_render_option_int(int opt);
|
nuclear@47
|
40 float get_render_option_float(int opt);
|
nuclear@47
|
41
|
nuclear@54
|
42 // raytrace in the CPU
|
nuclear@54
|
43 bool init_dbg_renderer(int xsz, int ysz, Scene *scn, unsigned int texid);
|
nuclear@54
|
44 void destroy_dbg_renderer();
|
nuclear@54
|
45 void dbg_set_primary_rays(const Ray *rays);
|
nuclear@54
|
46 void dbg_render(const float *xform, const float *invtrans_xform, int num_threads = -1);
|
nuclear@54
|
47
|
nuclear@54
|
48 // visualize the scene using OpenGL
|
nuclear@27
|
49 void dbg_render_gl(Scene *scn, bool show_tree = false, bool show_obj = true);
|
nuclear@3
|
50
|
nuclear@3
|
51 #endif /* RT_H_ */
|