summaryrefslogtreecommitdiffstats
path: root/libdimension/raytrace.c
Commit message (Collapse)AuthorAgeFilesLines
* Precompute objects in dmnsn_raytrace_scene() rather than dmnsn_new_prtree().Tavian Barnes2010-05-301-0/+6
|
* New dmnsn_new_thread() function.Tavian Barnes2010-05-091-23/+11
| | | | | | | Two advantages: first, waiters are guaranteed to wake if a dmnsn_error() cancels a thread. Second, the thread library is fully abstracted over by threads.{c,h} and progress.{c,h} now, though raytrace.c is still using pthread_create() directly.
* New DMNSN_ARRAY_FOREACH() macro, faster than iterating with dmnsn_array_get().Tavian Barnes2010-05-081-7/+3
|
* Use C99 for loop initializers.Tavian Barnes2010-05-051-13/+9
|
* Replace BVSTs with priority R-trees.Tavian Barnes2010-05-051-21/+10
|
* Fix some includes.Tavian Barnes2010-04-271-0/+1
|
* Don't render transparent shadows with transparency off.Tavian Barnes2010-04-171-1/+2
|
* Remove a bunch of errno.h includes.Tavian Barnes2010-04-131-1/+0
|
* Fix low-quality renders.Tavian Barnes2010-04-111-0/+2
|
* Don't use dynamic memory for dmnsn_intersection's.Tavian Barnes2010-04-071-14/+10
| | | | Drops us from ~400,000 allocs to ~1000. Oops ><.
* New dmnsn_malloc() function, and friends.Tavian Barnes2010-04-071-88/+37
| | | | | | I'm tired of checking for malloc failures everywhere, considering it never happens. So just bail out whenever it does. A lot of stuff is guaranteed to succeed if it returns now.
* Set errno on failures.Tavian Barnes2010-04-011-3/+11
|
* Make float equality comparisons more relaxed.Tavian Barnes2010-03-191-13/+0
|
* Rename dmnsn_bvst_copy() to dmnsn_copy_bvst().Tavian Barnes2010-03-161-1/+1
|
* Handle nested refractive objects correctly.Tavian Barnes2010-03-021-11/+24
|
* Implement refraction.Tavian Barnes2010-02-251-5/+39
|
* Point the normal vectors away from the object.Tavian Barnes2010-02-251-1/+2
|
* Determine nthreads in dmnsn_new_scene().Tavian Barnes2010-02-231-10/+5
|
* Rename `limit' scene field to `reclimit'.Tavian Barnes2010-02-231-8/+8
|
* Use standard C for texture callback macros.Tavian Barnes2010-01-181-28/+25
|
* Rename kD splay trees to Bounding Volume Splay Trees.Tavian Barnes2010-01-151-20/+17
|
* Don't reflect transparent colors.Tavian Barnes2010-01-141-0/+2
|
* Finally proper translucency semantics.Tavian Barnes2010-01-141-43/+42
|
* Collapse some repeated work in raytracing.Tavian Barnes2010-01-141-18/+18
|
* Make number of raytracing worker threads configurable.Tavian Barnes2010-01-141-6/+8
|
* Match POV-Ray transparency semantics a bit better.Tavian Barnes2010-01-141-2/+1
|
* Fold repeated dmnsn_line_point() calls.Tavian Barnes2010-01-131-19/+11
|
* Implement proper texture overloading.Tavian Barnes2010-01-131-71/+48
|
* Clean up internal raytracing API a bit.Tavian Barnes2010-01-131-13/+9
|
* Split finish_fn into diffuse_fn and specular_fn.Tavian Barnes2010-01-131-5/+14
|
* Implement reflection.Tavian Barnes2010-01-091-44/+100
|
* Make recursion limit a scene parameter.Tavian Barnes2010-01-081-18/+18
|
* Modularize translucency.Tavian Barnes2010-01-081-28/+32
|
* Kill DMNSN_RENDER_OBJECTS.Tavian Barnes2010-01-081-1/+1
|
* Clean up internal raytracing API a bit.Tavian Barnes2010-01-071-60/+74
|
* Limit recursion depth in raytracing.Tavian Barnes2010-01-061-9/+20
|
* Make quality settings into flags.Tavian Barnes2010-01-061-6/+6
|
* Separate finishes into single-purpose finishes.Tavian Barnes2009-12-231-3/+5
|
* Fix progress calculation in raytracing.Tavian Barnes2009-11-201-1/+1
|
* Use dmnsn_new_*() rather than dmnsn_*_construct().Tavian Barnes2009-11-191-6/+3
|
* Refactor raytrace.c a bit.Tavian Barnes2009-11-191-56/+81
|
* Implement translucency with shadows.Tavian Barnes2009-11-191-10/+35
|
* Translucency support.Tavian Barnes2009-11-181-29/+67
|
* Make finish callback a propper BRDF.Tavian Barnes2009-11-171-24/+31
|
* Raytrace one row of pixels per thread.Tavian Barnes2009-11-091-5/+2
| | | | | | The theory is that if the next ray shot is closer to the previous ray, the k-D splay tree will work better because we're more likely to hit the same object.
* Correct dmnsn_color_illuminate().Tavian Barnes2009-11-091-1/+1
|
* Use finishes.Tavian Barnes2009-11-091-61/+92
|
* Calculate surface normals in intersection callbacks.Tavian Barnes2009-11-091-8/+1
|
* Render multiple (or zero) lights correctly.Tavian Barnes2009-11-091-1/+2
|
* Rudimentary light/shadow handling.Tavian Barnes2009-11-091-9/+57
|