2. IIITHyderabad
Implicit Surfaces
• Implicit Surface which can be described by an
equation S(x,y,z) = 0. This can be of different
kinds
– Algebraic
– Non- Algebraic eg. Transcedental, Irrational, Rational
etc.
• Implicit Surfaces are used for fluid simulation, modeling
of fire, waves and natural phenomena described by
equations
3. IIITHyderabad
Thesis Contributions
• Analytical (Exact) Root Finding at frame-rates of
1100 – 5821 for surfaces up to fourth order
• Mitchell’s Interval method (first time on GPU) at
frame-rates of 60 – 965 for surfaces up to fifth
order
• Marching Points at frame rates of 38 – 825 for
arbitrary implicits
• Adaptive Marching Points (a new method) for
arbitrary implicits at frame rates of 60 – 920
5. IIITHyderabad
Rendering Implicit Surfaces
• Polygonization using Marching Cubes
– Marching Cubes gives a 3d mesh for the input implicit
surface
– Rasterization of this 3d mesh gives the rendering
• Ray Tracing
– Shoot rays towards the implicit surface and intersect
them with these
7. IIITHyderabad
Root Finding Methods
• Analytical (Exact) exists for polynomials up
to fourth order
• Iterative Methods exists for arbitrary
implicits but have problems related to
initialization and convergence.
• Searching based methods which search for
the root along the ray using surface
properties
8. IIITHyderabad
Related Work (Exact)
Loop and Blinn [ Siggraph ’06]
• Piecewise algebraic surfaces up to order four.
• The roots are computed by converting the
polynomial to Bezier form.
• Coefficients are interpolated in vertex shader. If
root is inside the Bezier tetrahedron then surface
normal and per-pixel lighting done.
• Problems in quartic root finding due
to extreme self intersections
• Quadric root finding on GPU
– Sigg , PBG ‘06
– Toledo, INRIA Tech Report ‘06
– Ranta , ICVGIP ‘06
9. IIITHyderabad
Iterative Methods
• Newton Raphson Method
xn+1 = xn-f(xn)/ f’(xn)
• Laguerre’s method ( Similar to Newton’s)
• Newton Bisection Method
Given interval [t1,t2]
Choose one of the intervals [t1,tm] or
[tm,t2] where tm is the midpoint
11. IIITHyderabad
Recent Related Work (Iterative)
Knoll’s Affine Arithmetic [ CGF ’08]
• Compute affine extension of function as F
• If 0 ε F then the interval contains the root
• Compute maximum depth (dmax) of bisection
based on user defined threshold
• If depth is dmax then we hit the surface
• Else increment depth and reduce the stepsize by
half
• Back recursion helps in visiting other unvisited
nodes in the tree. In the worst case it can
lead to visiting all the nodes of the tree.
12. IIITHyderabad
Related Work (Searching)
LG Implicit Surfaces [ Kalra and Barr, Siggraph ’89]
• Lipschitz constants (L,G) for ray tracing implicits. L is equal to
maximum rate of change of f(x) over R. G is equal to maximum rate of
change of g(t).
• Compute Bounding Box (B) divide it into sub-bounding boxes (b)
Compute L for b If |f(x0)| > Ld reject b
else continue recursive subdivision.
• For each ray compute bounding box extents t1,t2
and midpoint tm
If |g(tm)| > Gd
If F(t1) and F(t2) are of opposite signs then find the root using
Newton’s method.
Else there is no intersection in t1,t2
Else if |g(tm)| < Gd
Call the function recursively on intervals [t1,tm] and [tm,t2]
13. IIITHyderabad
Related Work (Searching)
Sphere Tracing [Hart, Visual Computer ’96]
• Compute
while t < D
d = f(r(t)) ( Geometric Distance)
If d < epsilon then return t
t = t + d
where Geometric Distance = Signed Distance/
Lipschitz Constant (L)
14. IIITHyderabad
• Roots are computed in power basis
• Limitations:
– Not available for polynomials of order > 4!
– Difficult for non-algebraic equations
Must use iterative methods
for others
Analytical (closed-form) Roots
( Our Work)
15. IIITHyderabad
Analytical Root Finding
Cubic Roots
Equation (Homogenous Form) :
Ax3
+3Bx2
w+3Cxw2
+Dw3
= 0
• Compute: δ1= AC-B2
, δ2 = AD-BC, δ3=BD-C2
,
δ (discriminant) = 4 δ1 δ3- δ2
2
• The sign of the discriminant and the values of δis
determine if it has one triple root, one double and
a single real root, three distinct real roots or one
real root and one complex conjugate pair as roots.
16. IIITHyderabad
Analytical Root Finding
Quartic Roots
• The equation is first depressed by removing the
cubic term t4
+pt2
+qt+r = 0
• If r is zero then the roots are the roots of cubic
equation and zero.
• If r is non zero then rewrite as (t2
+p)2
+qt+r =
pt2
+p2
This is followed by a substitution y s.t.
RHS becomes a perfect square (t2
+p+y)2
=
(p+2y)t2
-qt+(y2
+2yp+p2
-r) Now, for RHS to be a
perfect square its discriminant must be zero which
yields a cubic equation in y. Now resubstitute to
get two quadratic equations.
17. IIITHyderabad
Interval Arithmetic
Two Intervals a = [x, y] and b = [z, w]
• Addition a + b = [x + z, y + w]
• Subtraction a – b = [x – w, y – z]
• Multiplication a * b = [min(xz,xw,yz,yw),
max(xz,xw,yz,yw)]
• Division a/b = a * (1/b) = a* [ 1/w,1/z]
18. IIITHyderabad
Mitchell’s Interval-Based Method
• Initialize interval to [ta, tb] = [tnear, tfar]
• Compute interval extension of function f ([ta, tb])
and it’s derivative ft ([ta, tb])
• If f ([ta, tb] contains 0, root exists in it.
– If ft ([ta, tb]) contains zero, multiple roots.
• Divide into [ta, tm] and [tm, tb] around the midpoint
• Recurse into right half only if left has no root.
– Else, single root. Proceed to root
finding
• Continue till tb -ta < ε
Mitchell, Graphics Interface 90
19. IIITHyderabad
Interval Extensions
• Natural: Uses end-points only.
f ([ta, tb]) = [min(f(ta), f(tb)), max(f(ta), f(tb))]
• Centered:
f ([ta, tb]) = f (tm) + ft ([ta,tb]) * [ta - tm, tb - tm]
• Exact: Use critical points ta < t1 < t2 < … <
tb of f()
f ([ta, tb]) = [min(f(ta), f(t1), f(t2) …, f (tb)), max (f(ta),
f(t1), f(t2) …, f(tb))]
20. IIITHyderabad
Mitchell’s Method: Discussion
• Advantages:
– Robust, based on interval arithmetic
– Fast as the order is logarithmic due to bisections
• Disadvantages:
– Good interval extension needed
• Not obvious for general functions
• Not easy even for polynomials
– Difficult on SIMD/GPU
• Calculations in f(t), derivatives needed
• Interval extension used is exact
21. IIITHyderabad
Two-Step Root Finding
• Bracketing the root
– Find a (small) bracket/interval that
contains the first positive root.
– Between tnear and tfar
• Find the root in the interval
– Newton bisections
• Always converges, no “special” situations
• Best for GPU/SIMD as uniform calculations
22. IIITHyderabad
Marching Points
(Sign Test)
• Divide the parameter domain into equal
width intervals from tnear till tfar
• Compute the function value at endpoints of
these intervals. Return the interval with the
first sign change.
23. IIITHyderabad
Marching Points (Taylor Test)
• Divide the parameter domain
into equal width intervals from
tnear till tfar
• Compute the values p, q, r and
s for an interval and the interval
checked for sign change is
[min(p,q,r,s), max(p,q,r,s)]
24. IIITHyderabad
S(x, y, z) versus f(t)
• S(x, y, z) is the given form.
– Relatively simple with dozen or so terms
– For a given t, evaluate (x, y, z) and S(.).
– Good for GPU; compose shader on the fly
• f(t) is different for each ray/pixel.
– Evaluates to a large number of terms
– About 1500 terms for a 10th order polynomial
– Not suitable for GPU/SIMD
26. IIITHyderabad
Marching Points: Discussions
• Advantages:
– Easy Implementation
– Suited for SIMD, fast on current GPUs
– No need for derivative or coefficient computation
• Disadvantages:
– Linear in number of intervals as all may be evaluated
– Sign Test Not robust. Multiple and close roots are
problems
– No structured way to decide interval size.
27. IIITHyderabad
Adaptive Marching Points
• Algebraic distance is used as a measure for
searching the root
• Step-size depends on algebraic distance
(S(p(t)) and silhouettes (F’(t))
29. IIITHyderabad
Self Shadowing
• Shoot a secondary (shadow) ray
towards the light source from
intersection point.
• If this ray intersects the surface in
between then the point is in shadow.
• Only need to bracket the root; no need
to find the root.
39. IIITHyderabad
Limitations
Chmutov 20 and 30 (Exterior, Interior)
• Numerical precision is a issue large number of
roots are present in the exterior of Chmutov
Surface [0.99,1.0]
• Taylor test produces false roots for extreme
self intersections (Cushion and Piriform)
40. IIITHyderabad
What do we need on the GPU?
• Number format:
– Exact implementation of IEEE 754
– (Limited) Double precision support
• Beam-Tracing:
– Transfer roots from one pixel to neighbour
• Recursive ray-tracing
– Fixed stack on GPU
42. IIITHyderabad
Conclusions
• MP and AMP methods are widely
applicable in terms of Implicit Surfaces and
are also SIMD amenable as cost per root
finding is low
• Analytical Method has limited applicability
However it is SIMD amenable
• Mitchell’s method has limited applicability
and is not SIMD amenable.
43. IIITHyderabad
Thesis Publications
Related Publications
• GPU Objects
Sunil Mohan Ranta , Jag Mohan Singh and P.J. Narayanan
Proc. Fifth Indian Conference on Computer Vision, Graphics and Image
Processing (ICVGIP), LNCS Volume 4338, Pages 352-363, 2006, Madurai,
India
• Real time Ray tracing of Implicit Surfaces on the GPU
Jag Mohan Singh and P. J. Narayanan
IEEE Transactions on Visualization and Computer Graphics, 2008 (Under
Revision)
Other Publications
• Progressive Decomposition of Point Clouds without Local Planes
Jag Mohan Singh and P. J. Narayanan
LNCS Volume 4338, Pages 364-375, Proc. of Indian Conference on Computer
Vision, Graphics and Image Processing (ICVGIP), 2006
• Point Based Representations for Hierarchical Environments
Kedarnath Thangudu , Lakshmi Gade,Jag Mohan Singh, and P J Narayanan.
Pages 574-578, IEEE Computer Society Press, Proc. of International
Conference on Computing: Theory and Applications(ICCTA),2007
45. IIITHyderabad
CPU and GPU versions
2.1132.1132.1132.113CPU Mitchell
0.71960.73100.79390.8124CPU Point Sampling
1662.01662.01662.01665.0GPU Mitchell
7207909221000GPU Point Sampling
z = 5z = 4z = 1z = 0Position of Sphere
1.1081.1081.1081.109CPU Mitchell
0.6560.6640.72580.7626CPU Point Sampling
952.2952.2953.4955.4GPU Mitchell
367.5447.5724.7825.3GPU Point Sampling
z = 5z = 4z = 1z = 0Position of Cubic
Sphere
(Quadratic)
Ding Dong
(Cubic)
Torus
(Quartic)
0.1850.1850.1850.186CPU Mitchell
0.17590.17910.20740.2202CPU Point Sampling
379.23379.23380.16381.06GPU Mitchell
230.06273.50383.77410.96GPU Point Sampling
z = 5z = 4z = 1z = 0Position of Torus
Frame Rates for 512x512
46. IIITHyderabad
Discussion CPU vs GPU
• SIMD amenable AMP method GPU is able
to achieve higher speedups than for
Mitchell’s method.
• Interval method is faster for lower order
surfaces than AMP. This advantage is
nullified for higher order surfaces.