I am serachig for a label for a method on BVH and root solving
category: code [glöplog]
My label is "bisymmetry" for lack of a better term, as it touches ad contains a lot of set-theory, labels are tricky.
https://www.shadertoy.com/view/MlscWn
(has a lot of commentary and related pointers at the end of its code)
Is the most recent and best method/ideology description of
https://www.shadertoy.com/results?query=bisymmetry&sort=newest&from=0&num=12
Its goal is to optimize performance,
- by simplifying or generalizing any gradient easily.
- by subdividing a gradient into simpler segments
- by making it easier to implement Bounding Volumes.
It divides more complicated (parametric) gradients into simpler segments (that share some factors) by calculating separating isoline/borders/BoundingVolumes first.
Separating isoline/borders can be used as Bounding Volume (Hierarchy) for the segments, and within them, root solving tends to be simplified, Because;
if(b>.0)a=c;else a=d;
very often boils down to a Binomial that contains sign(n), after you make it branchless, by substituting to a=mix(c,d,step(b,.0)); The more of these variables are =0 or =1 or simple scalars of another (making substitutions more efficient), the more this substitutes down to something like : a=.5*c*(sign(b-1.)*(d-c));
Root solving is also simpler when the equation can be simplified to a binomial (as above)
So this is where [making a branch branchless] and [calculating the distance to a sphere or spline] and [ray tracing, ray marching, root solving] overlap.
at
https://www.reddit.com/r/askmath/comments/6waiwg/looking_for_labels_on_this_method_on_generalizing/
I already asked the math people for pointers and labels, but they do not understand opengl or c++ or java, because they speak their own silly dialect, which quite honestly is a mess that relies too much on outdated technology, like spouting ink on dried wood, chiseling into stone or drawing with a stick in sand:
I hope to find out that my concept is not novel, that it has been done before, in detail, likely better, or that i am missing something basic.
https://www.shadertoy.com/view/MlscWn
(has a lot of commentary and related pointers at the end of its code)
Is the most recent and best method/ideology description of
https://www.shadertoy.com/results?query=bisymmetry&sort=newest&from=0&num=12
Its goal is to optimize performance,
- by simplifying or generalizing any gradient easily.
- by subdividing a gradient into simpler segments
- by making it easier to implement Bounding Volumes.
It divides more complicated (parametric) gradients into simpler segments (that share some factors) by calculating separating isoline/borders/BoundingVolumes first.
Separating isoline/borders can be used as Bounding Volume (Hierarchy) for the segments, and within them, root solving tends to be simplified, Because;
if(b>.0)a=c;else a=d;
very often boils down to a Binomial that contains sign(n), after you make it branchless, by substituting to a=mix(c,d,step(b,.0)); The more of these variables are =0 or =1 or simple scalars of another (making substitutions more efficient), the more this substitutes down to something like : a=.5*c*(sign(b-1.)*(d-c));
Root solving is also simpler when the equation can be simplified to a binomial (as above)
So this is where [making a branch branchless] and [calculating the distance to a sphere or spline] and [ray tracing, ray marching, root solving] overlap.
at
https://www.reddit.com/r/askmath/comments/6waiwg/looking_for_labels_on_this_method_on_generalizing/
I already asked the math people for pointers and labels, but they do not understand opengl or c++ or java, because they speak their own silly dialect, which quite honestly is a mess that relies too much on outdated technology, like spouting ink on dried wood, chiseling into stone or drawing with a stick in sand:
I hope to find out that my concept is not novel, that it has been done before, in detail, likely better, or that i am missing something basic.
Quote:
or that i am missing something basic.
There you go.