+ All Categories
Home > Documents > Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State...

Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State...

Date post: 18-Dec-2015
Category:
Upload: franklin-dawson
View: 215 times
Download: 0 times
Share this document with a friend
Popular Tags:
80
Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.
Transcript
Page 1: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Splatting

Jian Huang, CS 594, Spring 2002

This set of slides reference slides made by Ohio State University alumuni over the past several years.

Page 2: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Volumetric Ray Integration

color

opacity

object (color, opacity)

1.0

Page 3: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Splatting• Lee Westover - Vis 1989; SIGGRAPH 1990

• Object order method

• Front-To-Back or Back-To-Front

• Original method - fast, poor quality

• Many many improvements since then!– Crawfis’93: textured splats

– Swan’96, Mueller’97: anti-aliasing

– Mueller’98: image-aligned sheet-based splatting

– Mueller’99: post-classified splatting

– Huang’00: new splat primitive: FastSplats

Page 4: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Splatting

• Volume = field of 3D interpolation kernel– One kernel at each grid voxel

• Each kernel leaves a 2D footprint on screen– Voxel contribution = footprint ·(C, opacity)

• Weighted footprints accumulate into image

voxel kernels screen footprints = splats

screen

Page 5: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Splatting

• Volume = field of 3D interpolation kernel– One kernel at each grid voxel

• Each kernel leaves a 2D footprint on screen– Voxel contribution = footprint ·(C, opacity)

• Weighted footprints accumulate into image

voxel kernels screen footprints = splats

screen

Page 6: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Splatting

• Volume = field of 3D interpolation kernel– One kernel at each grid voxel

• Each kernel leaves a 2D footprint on screen– Voxel contribution = footprint ·(C, opacity)

• Weighted footprints accumulate into image

voxel kernels screen footprints = splats

screen

Page 7: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Splatting

• Volume = field of 3D interpolation kernel– One kernel at each grid voxel

• Each kernel leaves a 2D footprint on screen– Voxel contribution = footprint ·(C, opacity)

• Weighted footprints accumulate into image

voxel kernels screen footprints = splats

screen

Page 8: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Ray-casting - revisited

color c = c s s(1 - ) + c

opacity = s (1 - ) +

1.0

object (color, opacity)

volumetric compositingInterpolationkernel

Page 9: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Ray-casting - revisited

• (ideally) we would reconstruct the continuous volume (cloud) using the interpolation kernel h:

• the we would compute the analytic integral along a ray r:

• this can only be approximated by discretization

k

kkr drvfvrphdrrpfpI )()(

k

kkr vfvvhvf )()()(

(hey! Which optical model is this equation??)

Page 10: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Splatting - principal idea

• This last equation

• can be rewritten in the following way:

k

kk drvfvrphpI )(

k

kk drvrphvfpI )(

Splatting Kernel or “Splat” Which can be computed analyticallyanalytically: known as footprint

dzzyxhyx ,,),(Splat

Page 11: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Footprint Extent

Approximate the 3D kernel (h(x,y,z))extent by a sphere

Page 12: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Footprint Table

A popular kernel is a three-dimensional Gaussian (radially symmetric)

As 1D integration of 3D Gaussian is still a 2D Gaussian – we can just skip the Z integration and evaluate the Gaussianfunction on 2D image space after voxel projection

Generic footprinttable

preprocessing

Page 13: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

View-dependent footprint

It is possible to transform a sphere kernel into A ellipsoid

• The projection of an ellipsoid is an ellipse

• We need to transform the generic footprint table to the ellipse

Page 14: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

View-dependent footprint (2)

Page 15: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Example Footprint at Different Resolutions

Page 16: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Footprint - principal idea

• Draw each voxel as a cloud of points (footprint) that spreads the voxel contribution across multiple pixels.

• Larger footprint -> larger spatial kernel extent -> lower frequency components -> more blurring– Large pixel/voxel ratio

Page 17: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Rendering a Splat• Use texture mapping hardware to resample footprint

table (either single density channel or separate classified r,g,b,a channels)

• Or, use FastSplats to render each splat as a graphics primitive of itself

Page 18: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Splatting - efficiency

• “footprint” - splatted (integrated) kernel

• if interpolation kernel is isotropic (spherical) then its footprint is independent of the view point (for orthographic viewing)

• for perspective - footprint can be approximated with an ellipse

• Hence, for common cases, we can pre-integrate it (efficient!)

• for perspective projection, to approximate, we have to compute the orientation of the ellipse

Page 19: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Splatting - Highlights

• Footprints can be pre-integrated– fast voxel projection

• Advantages over ray-casting:– Fast: voxel interpolation is in 2D on screen

– More accurate integration (analytic for X-ray)

– More accurate reconstruction (afford better kernels)

– Only relevant voxels must be projected

Page 20: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Early Implementation – Axis Aligned Splatting

• Voxel kernels are added within axis-aligned sheets• Sheets are composited front-to-back• Sheets = volume slices most perpendicular to the

image plane

image plane at 70° image plane at 30°

volume slices

x

yz

volume slices

Page 21: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Early Implementation – Axis Aligned Splatting

sheet buffer

compositing buffer

volume slices

image plane

• Volume

Page 22: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Early Implementation – Axis Aligned Splatting

sheet buffer

compositing buffer

volume slices

image plane

• Add voxel kernels within first sheet

Page 23: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Early Implementation – Axis Aligned Splatting

sheet buffer

compositing buffer

volume slices

image plane

• Transfer to compositing buffer

Page 24: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Early Implementation – Axis Aligned Splatting

sheet buffer

compositing buffer

volume slices

image plane

• Add voxel kernels within second sheet

Page 25: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Early Implementation – Axis Aligned Splatting

sheet buffer

compositing buffer

volume slices

image plane

• Composite sheet with compositing buffer

Page 26: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Early Implementation – Axis Aligned Splatting

sheet buffer

compositing buffer

volume slices

image plane

• Add voxel kernels within third sheet

Page 27: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Early Implementation – Axis Aligned Splatting

sheet buffer

compositing buffer

volume slices

image plane

• Composite sheet with compositing buffer

Page 28: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

What Doesn’t Work?• Mathematically, the early splatting methods only work for X-ray type

of rendering, where voxel ordering is not important– Bad approximation for other types of optical models

• Object ordering is important in volume rendering, front objects hide back objects– need to composite splats in proper order, else we get bleeding

of background objects into the image (color bleeding!)

• Axis- aligned approach add all splats that fall within a volume slice most parallel to the image plane, composite these sheets in front- to- back order– Incorrect accumulating on axis-aligned face cause popping

• A better approximation with Riemann sum is to use the image-aligned sheet-based approach

Page 29: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Problems Early Implementation – Axis Aligned Splatting

• In-accurate compositing, result in color bleeding and popping artifacts (Demo)!

Part of this voxel

gets composited beforepart of this voxel

Page 30: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Image-Aligned Sheet-Buffer

sheet buffer

compositing buffer

• Slicing slab cuts kernels into sections

• Kernel sections are added into sheet-buffer

• Sheet-buffers are composited

image plane

Page 31: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Image-Aligned Sheet-Buffer

sheet buffer

compositing buffer

• Slicing slab cuts kernels into sections

• Kernel sections are added into sheet-buffer

• Sheet-buffers are composited

image plane

Page 32: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Image-Aligned Sheet-Buffer

sheet buffer

compositing buffer

• Slicing slab cuts kernels into sections

• Kernel sections are added into sheet-buffer

• Sheet-buffers are composited

image plane

Page 33: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Image-Aligned Sheet-Buffer

sheet buffer

compositing buffer

• Slicing slab cuts kernels into sections

• Kernel sections are added into sheet-buffer

• Sheet-buffers are composited

image plane

Page 34: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Image-Aligned Sheet-Buffer

sheet buffer

compositing buffer

• Slicing slab cuts kernels into sections

• Kernel sections are added into sheet-buffer

• Sheet-buffers are composited

image plane

Page 35: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Image-Aligned Sheet-Buffer

sheet buffer

compositing buffer

• Slicing slab cuts kernels into sections

• Kernel sections are added into sheet-buffer

• Sheet-buffers are composited

image plane

Page 36: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Image-Aligned Sheet-Buffer

sheet buffer

compositing buffer

• Slicing slab cuts kernels into sections

• Kernel sections are added into sheet-buffer

• Sheet-buffers are composited

image plane

Page 37: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Image-Aligned Splatting• Note: We need an array of footprint tables now. A

separate footprint table for each slice of the 3D reconstruction kernel.

Page 38: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Volume Rendering Pipeline: Two Variations

Page 39: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Volume Rendering Pipeline: Two Variations

Page 40: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

IASB Splatting

• No popping or color bleeding• Sharp, noise-free images

Page 41: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Occlusion Culling

• A voxel is only visible if the volume material in front is not opaque

occluded voxel: does not pass visibility test

wall of occluding voxels

occlusion map = opacity image

screen

Page 42: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Visibility Test Based on SAT of Occlusion Buffer

opacity threshold

occlusion map

Do not project Project

opacity < threshold

opacity = 0

• Compute occlusion map after each sheet• Cull both individual voxel and voxel sets with a

summed area table of occlusion map

Page 43: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Occlusion Culling

• Build a summed area table (SAT) from the opacity buffer

• To test whether a rectangular region is opaque or not, check the four corners

• Can cull voxel sets directly

Page 44: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Anti-aliasing• Needed to preserve small features• Needed for the diverging rays in perspective• In splatting, resize the footprint according to depth

Aliased anti-aliased

Page 45: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Motion Blur• Stretch the reconstruction kernel in the direction

of movement.• Stretch the splat footprint in the direction of the

projected movement (2D).

Page 46: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Camera Depth-of-Field• Two possible approaches:

– Low-pass filter the splats

– Low-pass filter the sheets

Plain with Depth-of-Field

Page 47: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Procedural Textures• Easily done with pre-coloring• Per-pixel

Page 48: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Bump-Mapping

• If calculating the normal per-pixel, we can modulate it to achieve bump mapping.

Page 49: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Per-pixel Classification

• Per-pixel classification can be based on gray scale, position, gradient, or ...

7.25 sec 9.41 sec (procedural) 7.99 sec

Page 50: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Scan-Converting A Splat

• Scan-convert an arbitrary-size radially symmetric 2D function centered at arbitrary position– circular or elliptical

• Texture mapping hardware is not the solution

• We want a hardware accelerated splat or point primitive

Page 51: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Fast Splats FastSplat

• We desire– fast scan conversion

– minimum or controllable errors

– compact storage

– simple integer operation

Page 52: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

FastSplats

1D Linear 1D Squared 2D 1D with Radius Look Up Table (RLUT)

Page 53: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D Linear, 1D Squared FastSplats

• On the radial line

1D Linear FastSplat, indexed by rx,y

1D Squared FastSplat, indexed by r2x,y

(x,y) (x+1,y)

rx,y

(xo,yo)

Page 54: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D Squared FastSplat (Elliptical)

• For elliptical kernels, if we define a canonical radius:

• The incremental scan-conversion still works at the same low cost

Page 55: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

FastSplats

1D Linear 1D Squared 2D

• 1D with Radius Look Up Table (RLUT)

Page 56: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

2D FastSplat (BitBlt,VoxBlt)

• No run-time computationPre-rasterized footprint with center at (xo,yo), radius r

Pre-rasterized footprints for all possible center positions, radius r

Snap splat center to a k by k sub-pixel grid

Page 57: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

2D FastSplats

• No run-time computation

Pre-rasterized footprints for all possible center positions, for all possible radii

Snap splat center to a k by k sub-pixel grid

Allow for a set of radius values

Page 58: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

2D FastSplats (2)

• The storage need:

• When storage is limited, the quality is limited too

• [Mora’00], similar

Page 59: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

FastSplats

1D Linear 1D Squared 2D

• 1D with Radius Look Up Table (RLUT)

Page 60: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D RLUT FastSplat

• For hardware, we need finer parallelism than scan-line

Page 61: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

RLUT

Page 62: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 63: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 64: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 65: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 66: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 67: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 68: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 69: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 70: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 71: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 72: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 73: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 74: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 75: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 76: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 77: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• At a k by k subpixel precision

Page 78: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• k by k subpixel precision

Page 79: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

1D FastSplat with RLUT

• Due to symmetry, the RLUT set for x component is the same as the RLUT set for the y component

• one RLUT set– k 1D tables– each of splat_extent length

x or y offset

k

splat_extent

k

k

Page 80: Splatting Jian Huang, CS 594, Spring 2002 This set of slides reference slides made by Ohio State University alumuni over the past several years.

Comparisons Among the FastSplats

• 1D Linear: very accurate, compact, slow

• 1D Squared: accurate, compact, fast

• 1D RLUT: accurate, compact, intended for hardware

• 2D FastSplat: can be very fast, accurate and compact under constrained conditions


Recommended