author | Radek Brich <radek.brich@devl.cz> |
Sat, 19 Apr 2008 18:00:27 +0200 | |
branch | pyrit |
changeset 71 | 4fedf7290929 |
parent 69 | 303583d2fb97 |
child 72 | 7c3f38dff082 |
permissions | -rw-r--r-- |
24
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
1 |
#include "raytracer.h" |
71
4fedf7290929
simplify kd-tree building, it's also much faster now
Radek Brich <radek.brich@devl.cz>
parents:
69
diff
changeset
|
2 |
#include "kdtree.h" |
24
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
3 |
|
39
7079dcc3bd74
ccdemos: put the common code to header files, common_ply.h and common_sdl.h
Radek Brich <radek.brich@devl.cz>
parents:
38
diff
changeset
|
4 |
#include "common_sdl.h" |
7079dcc3bd74
ccdemos: put the common code to header files, common_ply.h and common_sdl.h
Radek Brich <radek.brich@devl.cz>
parents:
38
diff
changeset
|
5 |
#include "common_ply.h" |
24
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
6 |
|
40
929aad02c5f2
Makefile: added help and distclean target, plus small fixes
Radek Brich <radek.brich@devl.cz>
parents:
39
diff
changeset
|
7 |
int main(int argc, char **argv) |
24
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
8 |
{ |
39
7079dcc3bd74
ccdemos: put the common code to header files, common_ply.h and common_sdl.h
Radek Brich <radek.brich@devl.cz>
parents:
38
diff
changeset
|
9 |
Raytracer rt; |
71
4fedf7290929
simplify kd-tree building, it's also much faster now
Radek Brich <radek.brich@devl.cz>
parents:
69
diff
changeset
|
10 |
KdTree top; |
39
7079dcc3bd74
ccdemos: put the common code to header files, common_ply.h and common_sdl.h
Radek Brich <radek.brich@devl.cz>
parents:
38
diff
changeset
|
11 |
Camera cam; |
24
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
12 |
|
38
5d043eeb09d9
realtime_dragon demo: now fullsize model + octree
Radek Brich <radek.brich@devl.cz>
parents:
36
diff
changeset
|
13 |
rt.setMaxDepth(0); |
24
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
14 |
rt.setTop(&top); |
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
15 |
|
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
16 |
Light light1(Vector3(-5.0, 2.0, 8.0), Colour(0.9, 0.3, 0.6)); |
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
17 |
light1.castShadows(false); |
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
18 |
rt.addlight(&light1); |
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
19 |
|
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
20 |
//Light light2(Vector3(-2.0, 10.0, 2.0), Colour(0.4, 0.6, 0.3)); |
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
21 |
//light2.castShadows(false); |
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
22 |
//rt.addlight(&light2); |
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
23 |
|
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
24 |
Material mat(Colour(0.9, 0.9, 0.9)); |
69
303583d2fb97
move "smooth" attribute from Triangle to Material
Radek Brich <radek.brich@devl.cz>
parents:
62
diff
changeset
|
25 |
mat.setSmooth(true); |
62
07c2f8084719
more SConscript tweaking, make model preparation work again
Radek Brich <radek.brich@devl.cz>
parents:
40
diff
changeset
|
26 |
load_ply(rt, "../models/ply/dragon/dragon_vrip.ply", &mat, Vector3(-29,29,-29), Vector3(0,-3.6,0)); |
24
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
27 |
|
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
28 |
rt.setCamera(&cam); |
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
29 |
cam.setEye(Vector3(0,0,10)); |
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
30 |
|
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
31 |
top.optimize(); |
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
32 |
|
71
4fedf7290929
simplify kd-tree building, it's also much faster now
Radek Brich <radek.brich@devl.cz>
parents:
69
diff
changeset
|
33 |
if (argc == 2 && strcmp(argv[1], "-buildonly") == 0) |
4fedf7290929
simplify kd-tree building, it's also much faster now
Radek Brich <radek.brich@devl.cz>
parents:
69
diff
changeset
|
34 |
return 0; |
4fedf7290929
simplify kd-tree building, it's also much faster now
Radek Brich <radek.brich@devl.cz>
parents:
69
diff
changeset
|
35 |
|
39
7079dcc3bd74
ccdemos: put the common code to header files, common_ply.h and common_sdl.h
Radek Brich <radek.brich@devl.cz>
parents:
38
diff
changeset
|
36 |
loop_sdl(rt, cam); |
24
d0d76e8a5203
new C++ demo: realtime_dragon.cc
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
37 |
} |