Ray tracing implicit surfaces
Download
1 / 10

Ray Tracing Implicit Surfaces - PowerPoint PPT Presentation


  • 82 Views
  • Uploaded on

Ray Tracing Implicit Surfaces. John C. Hart CS 319 Advanced Topics in Computer Graphics. Problem. Intersection of ray r ( t ) with implicit surface f ( x ) = 0 Easy to solve f ( r ( t )) when f algebraic Implicit surfaces can be defined by an arbitrary function More general techniques

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Ray Tracing Implicit Surfaces' - urania


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Ray tracing implicit surfaces

Ray Tracing Implicit Surfaces

John C. Hart

CS 319

Advanced Topics in Computer Graphics


Problem
Problem

  • Intersection of ray r(t) with implicit surface f(x) = 0

  • Easy to solve f(r(t)) when f algebraic

  • Implicit surfaces can be defined by an arbitrary function

  • More general techniques

    • LG Surfaces (Kalra&Barr 89)

    • Sphere Tracing (Hart 96)

    • Interval Analysis (Mitchell 89)


Problem statement
Problem Statement

  • Given a cell (cube), can one guarantee that the implicit surface

    • passes through it?

    • does not pass through it?

  • Sign of function values at corners

    • Different signs: guarantees surface intersects cell

    • Same signs: surface may or may not intersect cell

  • How can we determine definitively if a surface intersects any given cell?


Lipschitz functions
Lipschitz Functions

  • Function f is Lipschitz ifL |f(x) – f(y)|/||x – y||for some value L

  • Smallest such L is the Lipschitz constant Lip f

  • Lipschitz constant is the maximum slope of a continuous function

    L = max f’(x)

  • Function might by Lipschitz only over a given region (e.g. x2)

  • Function might not be Lipschitz (e.g. sin 1/x)


Lipschitz arithmetic
Lipschitz Arithmetic

  • Let f(x) and g(x) be real functions over a compact subset of 3-D

    Lip(f+g) = max(f+g)’ = max(f’+g’)  max f’ + max g’ = Lip f + Lip g

    Lip(fg) = max(fg)’ = max(f’g + fg’)  max(f’ g) + max(fg’)

  • Let h be a real function

    Lip(f(h)) = max(f’(h) h’) = h’ Liph(x)f


Lipschitz guarantee
Lipschitz Guarantee

f(x)

  • Let L Lip f be a Lipschitz bound of f, and let f(x) 0

  • Then f 0 over the region(x – f(x)/L, x + f(x)/L)

  • Why? Because f can’t get back to zero fast enough

  • Let x be the center of a cell, and let r be the radius of the cell (distance to farthest corner)

  • If f(x)/L > r then f 0 over the entire cell  no implicit surface in cell

  • Otherwise subdivide the cell

f(x)/L

r


Root isolation
Root Isolation

  • Let G be a Lipschitz bound off’(t) = df(r(t))/dt

  • Derivative of f(r(t))?

    • Directional derivative of f

       df(r(t))/dt = f  rd

    • Change in f in ray direction

  • If f’(t)/G >t then derivative of f can’t get back to zero over interval

  • Hence f is monotonic over interval

  • Hence we can use Newton’s method to find root

  • Otherwise subdivide interval

f(t)

f’(t)


Sphere tracing
Sphere Tracing

  • Let d(x,A) be a signed distance bound

    d(x,A) min ||x – y|| for all y in A

  • If f is Lipschitz with bound L then f(x)/L is a signed distance bound

  • d(x,A) is radius of a ball guaranteed not to intersect implicit surface A

  • March along ray by distance steps

    x = r0

    x += d(x,A) rd

  • Intersection when steps converge


Interval analysis
Interval Analysis

  • Replace values x with ranges of values [x0,x1]

  • Interval arithmetic

    [a,b] + [c,d] = [a+c,b+d]

    [a,b] – [c,d] = [a-d,b-c]

    [a,b] * [c,d] = [min(ac,ad,bc,bd), max(ac,ad,bc,bd)]

    1 / [c,d] = [1/d,1/c]

    [a,b]3 = [a3,b3]

  • Implement function using interval arithmetic

f [a,b]

[a,b]


Interval roots
Interval Roots

  • Let [y0,y1] = f[x0,x1]

  • If y0 > 0 or y1 < 0 then no root over interval [x0,x1]

  • Otherwise subdivide [x0,x1] and recurse

  • Let [y’0,y’1] = f’[x0,x1]

  • If y’0 > 0 or y’1 < 0 then f monotonic over interval [x0,x1]

  • Then we can find root with Newton’s method

  • Otherwise subdivide [x0,x1] and recurse

[y0,y1]

[x0, x1]

[y’0,y’1]


ad