Commit Graph

296 Commits (06cc8005f043e06812e0794e033bed86e02ed451)

Author SHA1 Message Date
Wenzel Jakob 0516aacfe2 added left-balanced kd-tree construction as another testcase 2011-02-09 02:13:52 +01:00
Wenzel Jakob 9c1c16ab87 added a point kd-tree class 2011-02-09 01:32:35 +01:00
Wenzel Jakob a9efb5cd1a AABB bugfixes, generic kd-tree 2011-02-07 15:59:13 +01:00
Wenzel Jakob 4396a4618d naming conventions 2011-02-04 18:15:11 +01:00
Wenzel Jakob 11bf7be59f column and row access 2011-02-04 18:08:53 +01:00
Wenzel Jakob 6f5f0c11d2 matrix scalar division 2011-02-04 17:15:47 +01:00
Wenzel Jakob 8ea4716dd8 fixed a typo 2011-02-04 12:20:22 +01:00
Wenzel Jakob 4ec8a1dd81 for convenience: support matrix-vector multiplication directly in the dense matrix classes 2011-02-03 16:37:52 +01:00
Wenzel Jakob 806e9b1733 missed an obvious optimization 2011-02-03 15:25:22 +01:00
Wenzel Jakob df553745c4 A few missing matrix methods 2011-02-03 15:14:43 +01:00
Wenzel Jakob 48ae1f3eae A batch of changes that have piled up:
- Cleaner build system organization (1 SConscript file per directory instead
  of a single huge file)
- Robustness improvements to the KD-tree construction code (now does a better
  job at handling degenerate triangles)
- Switched to an epsilon-free KD-tree traversal loop using Havran's T_{AB}^rec
  algorithm
- Generalization of the KD-tree construction code (now supports plugging in
  arbitrary tree construction heuristics)
- Addition of some utility code (LRU cache, adaptive Gauss-Lobatto
  quadrature, etc.)
- Generic dense matrix class that supports arbitrary dimensions
- Pixel traversal within image blocks now uses a space-filling curve
  ordering
- Added support for several noise functions from PBRT
- Cleanups of various top-level interfaces (Luminaires, Phase functions,
  BSDFs, Participating media, etc.)
- Robustness improvements to the participating media code (faster + now
  does a better job at dielectric boundaries)
- Added a basic tonemapping utility (can be invoked via mtsutil)
2011-02-03 09:15:25 +01:00
Wenzel Jakob 07bc3a23fe Scheduler: ability to return the number of local workers 2011-01-12 02:07:34 +01:00
Wenzel Jakob 55ba3887bd moved the re-centering feature to the OBJ loader, where it makes more sense 2010-12-08 11:35:56 +01:00
Wenzel Jakob 2131a1b2d0 re-centering feature 2010-12-08 10:44:47 +01:00
Wenzel Jakob 683c5e463d worker priority chooser UI 2010-12-01 22:14:28 +01:00
Wenzel Jakob 04d26f0dae backported a bunch of serious bugfixes from the bidirectional branch 2010-12-01 11:33:11 +01:00
Wenzel Jakob 20f3b7e0dc heterogeneous medium: don't require an orientation field 2010-12-01 01:27:33 +01:00
Wenzel Jakob c2d7903f54 much nicer FP exception system 2010-12-01 00:46:06 +01:00
Wenzel Jakob 052f5f0bb8 flake model bugfixes 2010-11-30 21:56:21 +01:00
Wenzel Jakob 2131bdb817 initial support for computing shading normals with a specifiable angle cutoff, switched to Thuermer-Wuethrich-style smooth normal computation 2010-11-25 20:40:28 +01:00
Wenzel Jakob 94e1d825b7 miscellaneous bugfixes and improvements 2010-11-23 23:01:47 +01:00
Wenzel Jakob 7a581340ee win32 bugfixes 2010-11-22 18:24:25 +01:00
Wenzel Jakob 9ffca1b6b9 another merge 2010-11-21 12:17:58 -08:00
Wenzel Jakob 5f924f5085 get rid of secure SCL warnings 2010-11-21 12:12:27 -08:00
Wenzel Jakob d631da2187 miscellaneous bugfixes 2010-11-21 02:50:15 +01:00
Wenzel Jakob 221e063330 merged with the build system rearrangement branch 2010-11-21 01:53:24 +01:00
Wenzel Jakob 5bb3812861 moved dependencies out of the main repository, switch to boost 1.44 2010-11-20 07:30:50 -08:00
Wenzel Jakob 87ac8b57bd generalized the XML schema 2010-11-19 14:07:14 +01:00
Wenzel Jakob 2cc242e5e7 merged with the time-aware branch 2010-11-17 21:10:40 +01:00
Wenzel Jakob 6a42b631f7 merged with main branch 2010-11-17 12:58:03 +01:00
Wenzel Jakob da6f122ccc windows compilation fix 2010-11-16 11:41:56 -08:00
Wenzel Jakob df1a3fc3ba got it to compile 2010-11-16 17:20:24 +01:00
Wenzel Jakob ceaa1907c0 miscellaneous bugfixes, animated instance 2010-11-16 14:59:52 +01:00
Wenzel Jakob c7c6d32579 more work on importing animations 2010-11-16 10:36:49 +01:00
Wenzel Jakob aaa9fe74f5 more work on animation support 2010-11-16 01:00:37 +01:00
Wenzel Jakob 02d6129df9 store imported geometry more compactly 2010-11-15 20:51:31 +01:00
Wenzel Jakob 5452a0d30b more work on importing animations 2010-11-15 17:27:42 +01:00
Wenzel Jakob 710890d894 initial support for importing animation tracks 2010-11-15 16:05:50 +01:00
Wenzel Jakob c82899de89 expose texture wrapping 2010-11-14 14:27:32 +01:00
Wenzel Jakob e394456621 fix annoying win32 template static member linkage errors 2010-11-12 19:35:15 -08:00
Wenzel Jakob f2f4f94bdf changed dimension functions to constants to fix compilation on windows 2010-11-13 02:14:22 +01:00
Wenzel Jakob 81982c8932 MtsBlend: refresh feature 2010-11-12 15:43:07 +01:00
Wenzel Jakob a5b07f06ab matrices and linear transformations are now stored on the stack 2010-11-12 15:09:37 +01:00
Wenzel Jakob bd69a0fb0b added a basic quaternion data structure 2010-11-12 14:16:47 +01:00
Wenzel Jakob 37d06c5623 instancing works 2010-11-12 11:03:43 +01:00
Wenzel Jakob 57d13dfe7b partial support for geometry instancing 2010-11-12 03:15:32 +01:00
Wenzel Jakob 2a53d3240f changed the way that luminaire importance sampling works -- now, a sampling weight can be specified 2010-11-11 21:52:49 +01:00
Wenzel Jakob cd80c15814 further generalizations 2010-11-09 15:48:20 +01:00
Wenzel Jakob 701af0aa4b kd-tree generalizations 2010-11-09 15:35:27 +01:00
Wenzel Jakob fee7a12934 Make the AABB class more general 2010-11-09 14:45:12 +01:00
Wenzel Jakob 437169e4b4 support scaling and translating textures 2010-11-05 01:03:13 +01:00
Wenzel Jakob f87a6a78a2 renamed isnan function 2010-11-04 23:04:40 +01:00
Wenzel Jakob cff0d96f09 applied Edgar's patch (#20) 2010-11-04 22:56:18 +01:00
Wenzel Jakob 41efe48e01 with the fixed ray epsilon issue, sphere intersections can be switched back to single precision 2010-11-03 22:14:26 +01:00
Wenzel Jakob af27507674 switched object reference counting to atomics 2010-11-01 23:48:28 +01:00
Wenzel Jakob ba5a9654d9 documentation updates, allow to specify the configuration file 2010-11-01 22:33:00 +01:00
Wenzel Jakob 7036116997 further documentation updates 2010-10-31 16:20:58 +01:00
Wenzel Jakob 6433604064 documentation updates 2010-10-31 16:06:26 +01:00
Wenzel Jakob aecd28dc8d bug-hunt, fixed some hair-shape related issues 2010-10-25 22:36:30 +02:00
Wenzel Jakob 707bb4a2ac faster+more approximate micro-flake sampling 2010-10-25 17:18:10 +02:00
Wenzel Jakob a8763c890d clipping for hair is done 2010-10-25 13:30:01 +02:00
Wenzel Jakob a3842d5e2c realtime preview: render triangle approximations of analytic shapes 2010-10-25 09:05:30 +02:00
Wenzel Jakob 90d488d3ba kd-tree visualization mode 2010-10-24 16:17:39 +02:00
Wenzel Jakob 0013e696f7 fixed some accuracy issues 2010-10-24 14:14:12 +02:00
Wenzel Jakob 0e1534e863 the hair primitive works, made shadow ray intersections faster 2010-10-24 00:22:44 +02:00
Wenzel Jakob 589398f61a hair primitive compiles again 2010-10-23 21:54:11 +02:00
Wenzel Jakob 914b959ef9 windows compilation fix 2010-10-22 12:13:12 -07:00
Wenzel Jakob 1fe416408f env map bugfix, cleanups 2010-10-22 19:49:47 +02:00
Wenzel Jakob bcf57026cf cylinder clipping viewer 2010-10-22 11:20:17 +02:00
Wenzel Jakob 10abd101f3 support GLUT-style viewer applications 2010-10-21 23:53:40 +02:00
Wenzel Jakob e8d6be6259 further win64 compilation fixes 2010-10-19 21:15:57 +02:00
Wenzel Jakob 36c341f1a7 fixed various win64 compilation problems 2010-10-19 21:04:47 +02:00
Wenzel Jakob f531af3e2d fix fast-math kd-tree building problem on windows 2010-10-19 19:19:12 +02:00
Wenzel Jakob a057677e89 windows compilation fixes, part 3 2010-10-18 17:04:47 -07:00
Wenzel Jakob d41876fc4f windows compilation fixes, part 2 2010-10-18 16:50:16 -07:00
Wenzel Jakob d4d34dfd0f windows compilation fixes 2010-10-18 16:44:54 -07:00
Wenzel Jakob 19eb23b13f Fix bug #12 reported by Jirka Vorba (propagate named objects between included files) 2010-10-18 23:26:15 +02:00
Wenzel Jakob 69dd286edc cylinders work again 2010-10-18 22:59:07 +02:00
Wenzel Jakob e77e1096de sphere works again, initial support for coherent RT with non-tri shapes 2010-10-18 19:20:20 +02:00
Wenzel Jakob 2006538af3 forgot to add the atomics header file 2010-10-18 16:15:11 +02:00
Wenzel Jakob c42f31751d slimmed down the shape interface 2010-10-17 00:08:55 +02:00
Wenzel Jakob fbfe3e395d the octree-class is now completely lock-free (using atomic exchange operations) 2010-10-16 14:10:10 +02:00
Wenzel Jakob 2db91b43f9 scale ray differentials to increase texture sharpness when rendering with multiple samples (idea from PBRTv2) 2010-10-16 12:46:36 +02:00
Wenzel Jakob 781006c968 support face normals in the preview 2010-10-16 04:01:21 +02:00
Wenzel Jakob d6e0638ceb bugfixes 2010-10-16 02:03:38 +02:00
Wenzel Jakob d788010885 committed a number of accumulated architectural changes (see body for details)
- primitive clipping is now more paranoid about roundoff errors
- significantly improved the kd-tree benchmark "kdbench"
- fixed a parallelization-related bug in the kd-tree builder
- fixed some remaining floating point issues in the min-max binning code
- completely moved TriMesh over to a more compact SoA representation
- the OpenGL renderer now sends smaller packets of geometry to the GPU, which
  helps keep the operating system more responsive (NVidia drivers didn't like
  the previous behavior much).
2010-10-16 00:33:32 +02:00
Wenzel Jakob a1b8d2266d copied over coherent RT code from the previous KDTree impl. 2010-10-14 01:00:42 +02:00
Wenzel Jakob b2679e8adc allow to disable the preview 2010-10-13 23:20:20 +02:00
Wenzel Jakob 0d085fc2dc serious bugfixes to the builder 2010-10-13 22:35:15 +02:00
Wenzel Jakob 6a173cb9fd cleanups 2010-10-13 20:56:13 +02:00
Wenzel Jakob 7f4d55bdbd some bugfixes, PBRT-style traversal routine 2010-10-13 19:19:30 +02:00
Wenzel Jakob 30d7e45479 rendering using the new tree code now works 2010-10-13 12:28:09 +02:00
Wenzel Jakob 3fa45c6cb2 integration of the new kd-tree implementation (no coherent RT yet) 2010-10-13 05:15:52 +02:00
Wenzel Jakob c74924fb7a cleanups 2010-10-13 03:38:44 +02:00
Wenzel Jakob 57c329d646 preparations to support the TriAccel4 format 2010-10-13 00:28:06 +02:00
Wenzel Jakob 5feb7753d8 collect some more statistics, code for fitting SAH cost constants to empirical measurements 2010-10-12 23:47:15 +02:00
Wenzel Jakob efb75bbf7b typo 2010-10-12 17:56:27 +02:00
Wenzel Jakob 13878de3fb added a plain traversal routine, havran-style wins 2010-10-12 17:55:32 +02:00
Wenzel Jakob a5736bd8ba lots of bugfixes 2010-10-12 14:51:30 +02:00
Wenzel Jakob 5e7839b9b7 record SAH costs of the old implementation 2010-10-12 11:36:21 +02:00
Wenzel Jakob 82faa961a2 snapshot before searching for remaining traversal/building bug 2010-10-12 03:06:46 +02:00
Wenzel Jakob 76abaf1cb8 added a havran-style traversal routine 2010-10-12 02:36:05 +02:00
Wenzel Jakob 440656a875 initial generic ray intersection architecture 2010-10-12 01:10:28 +02:00
Wenzel Jakob baa41a195a cleanups 2010-10-11 21:04:05 +02:00
Wenzel Jakob 84cff419f8 build better trees 2010-10-11 14:20:20 -04:00
Wenzel Jakob ac4fa10d5d nicer statistics 2010-10-11 19:48:52 +02:00
Wenzel Jakob d09655dbe6 a few more optimizations after profiling the builder 2010-10-11 19:40:40 +02:00
Wenzel Jakob db444cd87f parallelization is starting to work 2010-10-11 15:53:59 +02:00
Wenzel Jakob 2d5eff417c better statistics, global indirection table 2010-10-11 14:05:58 +02:00
Wenzel Jakob d36827be4e do a better job at keeping track of node statistics 2010-10-11 10:09:39 +02:00
Wenzel Jakob fa26a1a271 switched node allocator to a blocked vector 2010-10-11 09:00:14 +02:00
Wenzel Jakob 0df829eede cleanups 2010-10-10 22:38:40 +02:00
Wenzel Jakob bb83ad08cf fixed the transition from MinMax binning to exact evaluation 2010-10-10 18:18:14 +02:00
Wenzel Jakob a1ca92bda2 do a better job at keeping track of statistics 2010-10-10 18:10:14 +02:00
Wenzel Jakob 87b82cc5e1 added the empty space bonus 2010-10-10 13:23:04 +02:00
Wenzel Jakob 1058cfe7a7 cleanups 2010-10-10 13:06:42 +02:00
Wenzel Jakob 83958d8f91 clipping now also works 2010-10-10 13:06:16 +02:00
Wenzel Jakob 679cd18613 exact SAH-optimized kd-tree builder works for the first time (without primitive clipping) 2010-10-10 12:23:55 +02:00
Wenzel Jakob 577a732cd0 SAH costs seem more reasonable now 2010-10-10 12:05:32 +02:00
Wenzel Jakob 2144ce41bb accelerated the case without perfect splits 2010-10-10 04:04:13 +02:00
Wenzel Jakob ba8e333629 all pieces are now there -- time to track down allocator bugs 2010-10-10 03:33:45 +02:00
Wenzel Jakob 0c010ec20f added partitioning code, bugs remain 2010-10-10 03:01:31 +02:00
Wenzel Jakob edadfe8096 better statistics, more work on parallelization 2010-10-10 01:09:18 +02:00
Wenzel Jakob 8102eb91d3 efficient storage for classification results 2010-10-09 22:54:06 +02:00
Wenzel Jakob fc01e4485e SAH minimization sweep 2010-10-08 20:25:48 +02:00
Wenzel Jakob 13ada869dd show statistics similar to [Wald and Havran] 2010-10-08 20:01:15 +02:00
Wenzel Jakob 66e9033d3b some statistics 2010-10-08 19:48:53 +02:00
Wenzel Jakob 075fec5496 about to replace the current binning code with something numerically better-behaved 2010-10-08 19:02:17 +02:00
Wenzel Jakob 6cd1062fe6 bad refines heuristic 2010-10-08 18:33:46 +02:00
Wenzel Jakob d900a92a86 still debugging... 2010-10-08 16:16:45 +02:00
Wenzel Jakob 7d588e32e9 more work on the binary representation, bugs remain 2010-10-08 15:03:49 +02:00
Wenzel Jakob b856ccc0c7 added a chunking memory allocator, min-max binning is starting to work 2010-10-08 02:46:47 +02:00
Wenzel Jakob 05266a5033 merge with default branch 2010-10-07 18:57:44 +02:00
Wenzel Jakob 74fb4d009c more statistics 2010-10-07 18:57:37 +02:00
Wenzel Jakob effb3ebfb0 work on the min-max binning split method 2010-10-07 18:38:06 +02:00
Wenzel Jakob 8351aa5b02 extended the remaining medium classes to handle compound stencil geometry 2010-10-06 21:56:36 +02:00
Wenzel Jakob 76a501b291 faster builds 2010-10-06 20:46:16 +02:00
Wenzel Jakob 5da46517da the initial clustering step works 2010-10-06 02:27:20 +02:00
Wenzel Jakob d57d319048 min-max binning core implementation 2010-10-05 22:49:57 +02:00
Wenzel Jakob 88c0caad3d beginning work on a new KD-tree implementation 2010-10-05 11:02:05 +02:00
Wenzel Jakob 80e4b35c22 merged with main branch 2010-10-05 07:35:24 +02:00
Wenzel Jakob 082facab36 union cast 2010-10-05 07:34:55 +02:00
Wenzel Jakob 4bb5e8c3d6 vertex color and PLY loading support 2010-09-28 19:47:16 +02:00
Wenzel Jakob ef55697dd9 importance sampling support for environment maps 2010-09-21 02:45:25 +02:00
Wenzel Jakob b5b56bd20d gridtexture GLSL implementation for the material test ball scene 2010-09-21 00:03:10 +02:00
Wenzel Jakob e2dfe9a330 some OSX build fixes, missing virtual destructors 2010-09-20 22:19:41 +02:00
Wenzel Jakob 686030ef7e feature to track down use of unitialized values (initialize vectors etc. with NaNs if a compile-time flag is set) 2010-09-20 20:50:30 +02:00
Wenzel Jakob 0bba70a89d work on the documentation 2010-09-19 12:07:34 +02:00
Wenzel Jakob a295b0ecd8 fixed some inconsistencies in the HG phase function, clarified conventions in the documentation 2010-09-17 14:45:23 +02:00
Wenzel Jakob 46dcdc4100 work on sutherland-hodgman, allow to set log level to errors only 2010-09-16 02:30:47 +02:00