forked from thabz/RayGay
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
72 lines (69 loc) · 3.69 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
* = Outstanding.
+ = Done.
+ Get a Meshs triangles into hierarchy as separate nodes.
+ Refactor Material to provide hookups for procedural textures
+ More accurate Triangle-BoundingBox intersection code
+ Hierarchy will never exit when more than 8 objects intersect a the same point.
- Implement onEdge() and inside() for Mesh class.
+ Adaptive supersampling til antialias
+ BSP
+ Cylinder
+ Separate objectspace and worldspace transformations.
+ Area lights
+ Bumpmapping
+ 3DS import (meshes, UV, materials)
+ gprof profiling
+ Create a XML scene format and an importer.
+ Cone
+ Torus
+ General polynomial surfaces.
* Support for separate night and day textures.
+ Mathematical cylinder
+ Bicubic interpolation of textures
+ Support for u,v coordinates in meshes
+ Distributed reflections aka gloss.
+ Mathematical cone
+ Heightmap objects
+ Correct handling of camera placement, direction and field of view.
* Adaptive arealights
* Adaptive gloss
+ Mathematical torus.
* Fix the numerical error in the final gather near wall edges
See http://www.asimov.de/Studienarbeit/tracer.html
* Displacement mapping
See Peter Shirleys "Direct Ray Tracing of Displacement Mapped Triangles"
http://www.cs.utah.edu/~shirley/papers/
+ Scaling of all objects:
See http://www.cl.cam.ac.uk/Teaching/2000/AGraphHCI/SMEG/node2.html
+ HDRI support
* OpenEXR support. See http://www.openexr.com/
* LightProbe support
* Structured Importance Sampling of Environment Maps
http://graphics.ucsd.edu/papers/structured/
* ELK
* Swept sphere: http://www.acm.org/pubs/tog/GraphicsGems/gemsv/ch5-4/sweep.cpp
+ 'man 2 times' giver bedre syscall til tidsmåling
+ Thread local storage using pthread: Google for pthread_getspecific
* Check 'oprofile' profileren ud. Er en Debian pakke.
+ Make a Perl-like -e <Scheme-expr> option that evals the Scheme-expr before
the scenefile is read. Use gh_eval_str(char *) to eval a string. Support
multiple -e -e-options.
* Maybe also support a Java-like -Dvariable=value property-option.
+ Optionally mmap all image files.
* Optionally mmap photonmaps.
* Optionally mmap meshdata.
* Optionally render bezierpatches directly without tessalating into triangles.
* Checkout valarray
* Implementer BoundaryAdaptive sampleren.
* Fix at stats for Raytracer ikke virker. Lav en singleton- eller static-ting.
* Optionally render additional output-images such as depth-map, sampling-density, photon-distribution.
* Physics-engine
* Make a spotlight-lightsource which is a "checkered" window. See http://www.skeedz.com/images/wallpaper/0280.jpg ... Support for importance sampling af environmentmaps is probably better.
* 3D Mandelbulbs http://www.skytopia.com/project/fractal/mandelbulb.html
Snippets to implement sometime:
---------------------------------------------------
An idea from Steve Parker:
"...leads to an optimization present in some interactive ray tracers: if you don't allow objects to be placed inside your dielectrics [transparent objects], you can avoid a scene intersection test for transmitted rays and only perform a test against the dielectric object. This is an interesting optimization because it offers a huge performance benefit for large scenes containing dielectrics (imagine a glass coffee table in a complex scene)."
---------------------------------------------------
"An excellent code for box-triangle overlap is on Tomas Akenine-M¨oller's web site. It is faster and more stable than previous methods and very simple to add to your code library. I strongly recommend that any object you are inserting into your grid is tested to make sure it actually overlaps your grid cell. This simple change gave a 15-17% boost in performance for a simple scene with the Stanford bunny.
---------------------------------------------------