Raytracing Implementation - PowerPoint PPT Presentation

About This Presentation
Title:

Raytracing Implementation

Description:

Construct using the eye location and the pixel's location on the image plane. x0=eye ... Construct using laws of reflection. x0=surface point ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 20
Provided by: Stephen787
Category:

less

Transcript and Presenter's Notes

Title: Raytracing Implementation


1
Raytracing Implementation
  • Raytracing breaks down into two tasks
  • Constructing the rays to cast
  • Intersecting rays with geometry
  • The former problem is simple vector arithmetic
  • The intersection problem arises in many areas of
    computer graphics
  • Collision detection
  • Other rendering algorithms
  • Intersection is essentially root finding (as we
    will see)
  • Any root finding technique can be applied

2
Constructing Rays
  • Define rays by an initial point and a direction
    x(t)x0td
  • Eye rays Rays from the eye through a pixel
  • Construct using the eye location and the pixels
    location on the image plane. x0eye
  • Shadow rays Rays from a point on a surface to
    the light.
  • x0point on surface
  • Reflection rays Rays from a point on a surface
    in the reflection direction
  • Construct using laws of reflection. x0surface
    point
  • Transmitted rays Rays from a point on a
    transparent surface through the surface
  • Construct using laws of refraction. x0surface
    point

3
Ray-Object Intersections
  • Aim Find the parameter value, ti, at which the
    ray first meets object i
  • Transform the ray into the objects local
    coordinate system
  • Makes ray-object intersections generic
    ray-sphere, ray-plane,
  • Write the surface of the object implicitly
    f(x)0
  • Unit sphere at the origin is x2-10
  • Plane with normal n passing through origin is
    nx0
  • Put the ray equation in for x
  • Result is an equation of the form f(t)0 where we
    want t
  • Now its just root finding

4
Ray-Sphere Intersection
  • Quadratic in t
  • 2 solutions Ray passes through sphere - take
    minimum value that is gt 0
  • 1 solution Ray is tangent - use it if gt0
  • 0 solutions Ray does not hit sphere

5
Ray-Plane Intersections
  • To do polygons, intersect with plane then do
    point-in-polygon test

6
Point-in-Polygon Testing
  • Project point and polygon onto a 2D plane
  • Find biggest component of normal vector, and just
    use other two coordinates
  • For example, if n(0.2, 0.4, 0.9), just use x,y
    coordinates, which is like projecting down onto
    the x-y plane
  • Cast a ray from the point to infinity and count
    the number of edges it crosses
  • Odd number means point is inside
  • Edge crossing tests are very fast - think clipping

7
More complex tests
  • Ray-Polygon test reveals a common strategy
  • Intersect with something easy - a superset of the
    actual shape
  • Do a bounds check to make sure you have actually
    hit the shape
  • Also works for cylinders, disks, cones
  • CSG is well suited to raytracing
  • Find intersection along ray of all the CSG
    primitives
  • Break the ray into intervals according to which
    primitives it is in
  • Do set operations to find the first interval that
    is actually inside the CSG object

8
CSG Intersection Testing
Subtract
Subtract intervals
Intersection intervals
9
Ray-Patch Intersection
  • Equation in 3 parameters, two for surface and one
    for ray
  • Solve using Newtons method for root finding
  • Have derivatives from basis functions
  • Starting point from control polygon, or random
    guess, or try a whole set of different starting
    values

10
Details
  • Must find first intersection of ray from the eye
  • Find all candidate intersections, sort them and
    take soonest
  • Techniques for avoiding testing all objects
  • Bounding boxes that are cheap to test
  • Octrees for organizing objects in space
  • Take care to eliminate intersections behind the
    eye
  • Same rules apply for reflection and transmission
    rays
  • Shadow ray just have to find any intersection
    shadowing the light source
  • Speedup Keep a cache of shadowing objects - test
    those first

11
Transforming Normal Vectors
  • Normal vectors are not transformed the same way
    points are
  • Ray directions behave like normal vectors
  • Plane equation should still be true with
    transformed points!
  • Transform normal vectors with the inverse
    transpose of the transformation matrix
  • For rotations, matrix is its own inverse transpose

12
Numerical Issues
  • Shadow, reflection and transmission rays have to
    be sure they dont intersect the surface they are
    leaving
  • Cant just ignore the objects - some objects
    self-shadow
  • Solution Use a tolerance - offset the starting
    point off the surface a little in the normal
    direction
  • Finding all the intersections with a spline
    surface patch is difficult
  • CSG can have problems when doing set operations
  • Make sure pieces being subtracted protrude above
    surfaces

Bad
Good
13
Mapping Techniques
  • Raytracing provides a wealth of information about
    the visible surface point
  • Position, normal, texture coordinates,
    illuminants, color
  • Raytracing also has great flexibility
  • Every point is computed independently, so effects
    can easily be applied on a per-pixel basis
  • Reflection and transmission and shadow rays can
    be manipulated for various effects
  • Even the intersection point can be modified

14
Texture Mapping
  • Define texture parameters over the surface
  • Determine texture parameters at each hit point
  • Use them to look up a texture map, just as with
    OpenGL
  • But
  • Can also use them to look up other things

15
Bump Mapping
  • Vary the surface normal vector according to some
    map
  • Influences shading and reflection and refraction
  • Variation may be random - for effects like stucco
    - or structured - for effects like tiles

16
Bump Mapping Examples
17
Displacement Mapping
  • Bump mapping changes only the normal, not the
    intersection point
  • Silhouettes will not show bumps, even though
    shading does
  • Displacement mapping actually shifts the
    intersection point according to a map
  • Gives bump map effects and also correct
    silhouettes and self shadowing, if implemented
    fully

18
From RmanNotes http//www.cgrg.ohio-state.edu/sma
y/RManNotes/index.html
19
Procedural Texturing
  • Define a shading language that can be used to
    compute the color of the intersection point
  • A shading language program can be defined for
    each surface
  • Every time the surface is hit, the program is run
    to compute the color
  • Program has access to the incoming ray, the
    normal, the texture coordinates, the texture
    image, plus lots of other stuff
  • Implemented in, for example, RenderMan from Pixar
  • Starting to show up in hardware renderers -
    OpenGL extensions
Write a Comment
User Comments (0)
About PowerShow.com