Age | Commit message (Collapse) | Author |
|
|
|
ObjectRenderInstance and VlakRen pointers)
- it difers from RayFace that localy stored the vertex coordinates.
- basicaly this reduces memory usage
|
|
counters) can now be enabled/disabled at compile-time.
#define RE_RAYCOUNTER (/source/blender/render/extern/include/RE_raytrace.h)
*Some other small organization on code
(will be disable as this only matters for testing and developping)
|
|
(this is a generalization of some of the experimental stuff i tried during SoC,
but only had time to improve a few days ago)
- it should yield slightly better results
- the cost model can somehow be tweaked to optimize for diferent trees.
*cleaned up some code
*added counters for number of SIMD BB tests
*added GPL license block on missing files
|
|
-separated vbvh, svbvh, qbvh in diferent files (before the only way to switch between them was at compile time)
|
|
*Moved part of counters code to a separated file (rayobject_raycounter.c)
|
|
|
|
multipe of 4childs
|
|
|
|
groupped childs (for SIMD)
*SIMD support for the first 4*N childs of each node
*Some bvh code organized
|
|
|
|
|
|
*some simd stuff on bvh
|
|
|
|
and on any type of tree)
(it only shows worth on -O3 -msse2)
because it seems gcc makes horrible asm code on -O2
|
|
|
|
evaluation (leads to early exits)
(this is mixed with some simd code commit, althouth no simd is being used up to the moment)
|
|
heuristic based on that
|
|
for now only BB hint (i am hoping to find a decent frustum-test)
|
|
|
|
the efficiency of this depends on ray-bb and ray-triangle functions efficiency
|
|
now that build is nlogn (it should be worth to the tree of trees)
|
|
sort once
select subsets and kept the order (on X, Y and Z)
|
|
|
|
Expected number of BB tests should reduce a bit (depending on the scene)
|
|
size in runtime)
*put cost model back to normal
|
|
longest common transversing subtree)
It creates a tree cut after knowing that a given point will pass on a BB.
This tree cut is used to accelarate the rays casted from a given BB, eliminating unnecessary BB tests from root till the tree cut.
|
|
|
|
on bvh trees
*tree pushdowns after the pushsups :P (its still not local optimum)
|
|
*Added vbvh - Just a experimental tree type :)
Variable Way BVH - there is no hardcoded number of childs per each Tree Node
- idea is to optimize a tree to reduced the expected number of BB tests even after applying SAH (for that an hardcoded n-way is not enough)
- for now childs are stored on a linked list
|
|
|
|
to be able to use C++ at raytrace code
C++ used in here is basicly C with templates and function overloads,
to make it easier to reuse code between structures.
For now BVH was converted in C++ and moved to this module
|