1
play

1 Splatting Splatting Algorithm: Process from closest voxel to - PDF document

Object Order Splatting Render image one voxel at a time Volume Rendering has three key steps Reconstruction Integration or projection for each voxel ... - transfer function Material attributes and classification - determine


  1. Object Order Splatting � Render image one voxel at a time � Volume Rendering has three key steps � Reconstruction � Integration or projection for each voxel ... - transfer function � Material attributes and classification - determine image contribution - composite 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 103 104 Reconstruction Integration � Given a discrete set of points, determine a � Our reconstruction will give us a continuous function of the form: continuous function that interpolates or f( x,y,z ) = ∑ k ∑ j ∑ i f i h ( x-i,y-j,z-k ) approximates the discrete data. where f i are the discrete data points, and h () is � Different functions are created with the reconstruction function. different basis or interpolation kernels. � We seek the volume integral with respect to f(). V (f) = ∫ β f( x,y,z )e - ∫ ρ f( x,y,t )dt dz when looking down the z-axis. � For x-ray model, V (f) = ∫ β f( x,y,z )dz 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 105 106 Splatting Splatting � Lee Westover - Vis 1989; SIGGRAPH 1990 � Object order method � Front-To-Back or Back-To-Front � Main idea: Throw voxels to the image � 5/12/2003 R. Crawfis, Ohio State Univ. 107 5/12/2003 R. Crawfis, Ohio State Univ. 108 1

  2. Splatting Splatting Algorithm: � Process from closest voxel to furthest voxel � � Biggest problem: determination of voxel’s projected area called its footprint 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 109 110 Splatting Splatting � Volume = field of 3D interpolation kernels � Volume = field of 3D interpolation kernels � One kernel at each grid voxel � One kernel at each grid voxel � Each kernel leaves a 2D footprint on screen � Each kernel leaves a 2D footprint on screen � Voxel contribution = footprint ·(C, opacity) � Voxel contribution = footprint ·(C, opacity) � Weighted footprints accumulate into image � Weighted footprints accumulate into image screen footprints screen footprints voxel kernels voxel kernels = splats = splats screen screen 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 111 112 Splatting Splatting � Volume = field of 3D interpolation kernels � Volume = field of 3D interpolation kernels � One kernel at each grid voxel � One kernel at each grid voxel � Each kernel leaves a 2D footprint on screen � Each kernel leaves a 2D footprint on screen � Voxel contribution = footprint ·(C, opacity) � Voxel contribution = footprint ·(C, opacity) � Weighted footprints accumulate into image � Weighted footprints accumulate into image screen footprints screen footprints voxel kernels voxel kernels = splats = splats screen screen 5/12/2003 R. Crawfis, Ohio State Univ. 113 5/12/2003 R. Crawfis, Ohio State Univ. 114 2

  3. Ray-casting - revisited Ray-casting - revisited Interpolation � (ideally) we would reconstruct the continuous volumetric compositing kernel volume (cloud) using the interpolation kernel h: color c = c s α s (1 - α ) + c ∑ = − f ( v ) h ( v v ) f ( v ) r k k opacity α = α s (1 - α ) + α k � the we would compute the analytic integral along a ray r: ∫∑ ( ) ( ) ∫ = + = + − I ( p ) f ( p r ) dr h p r v f v dr 1.0 r k k k � this can only be approximated by discretization object (color, opacity) 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 115 116 Splatting - principal idea Footprint Extent � This last equation ( ) ( ) ∫∑ Approximate the 3D kernel (h(x,y,z))extent by = + − I ( p ) h p r v f v dr k k a sphere k � can be rewritten in the following way: ∑ ( ) ( ) ∫ = + − I ( p ) f v h p r v dr k k k Splatting Kernel or “Splat” � Which can be computed analytically analytically : known as footprint ( ) dz ∫ = Splat ( x , y ) h x , y , z 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 117 118 3D kernel Integrate to footprint table pixels Filter footprint Filter kernel 3D filter kernel Integrate along one dimension y filter extent Image-space splat 2D filter kernel coordinate x filter extent The 3D rotationally symmetric filter kernel is Positioning each splat on the screen and compositing the contribution into each pixel integrated to produce a 2D filter kernel 5/12/2003 R. Crawfis, Ohio State Univ. 119 5/12/2003 R. Crawfis, Ohio State Univ. 120 3

  4. Footprint Table Overlapping Problem Splat 2 Splat 1 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 Gaussian function on 2D image space after voxel projection Generic footprint table Desired result preprocessing 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 121 122 Overlapping Problem View-dependent footprint Splat 2 Splat 1 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 Actual result 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 123 124 Example Footprint at Different View-dependent footprint (2) Resolutions 5/12/2003 R. Crawfis, Ohio State Univ. 125 5/12/2003 R. Crawfis, Ohio State Univ. 126 4

  5. Footprint - principal idea Rendering a Splat � Use texture mapping hardware to resample � Draw each voxel as a cloud of footprint table (either single density points (footprint) that spreads the voxel channel or separate classified r,g,b,a contribution across multiple channels) pixels. � Larger footprint -> larger spatial kernel extent -> lower frequency components -> more blurring � Large pixel/voxel ratio 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 127 128 Splatting: Splatting: Original Implementation Original Implementation � Volume � Add voxel kernels within first sheet voxels voxels sheet buffer Rasterization image plane compositing buffer image plane 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 129 130 Splatting: Splatting: Original Implementation Original Implementation � Add voxel kernels to the image. � Add voxel kernels to the image. voxels voxels image plane image plane 5/12/2003 R. Crawfis, Ohio State Univ. 131 5/12/2003 R. Crawfis, Ohio State Univ. 132 5

  6. Splatting: Splatting: Original Implementation Second Implementation � Add voxel kernels to the image. � Do for all voxels in some bak-to-front order. voxels voxels image plane image plane 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 133 134 Splatting - efficiency Splatting - Highlights � “footprint” - splatted (integrated) kernel � Footprints can be pre-integrated � if interpolation kernel is radially symmetric � fast voxel projection (spherical) then its footprint is independent of the view point (for orthographic viewing) � Advantages over ray-casting: � for perspective - footprint can be approximated with � Fast: voxel interpolation is in 2D on screen an ellipse � More accurate integration (analytic for X-ray) � Hence, for common cases, we can pre-integrate it (efficient!) � More accurate reconstruction (afford better kernels) � for perspective projection, to approximate, we have � Only relevant voxels must be projected to compute the orientation of the ellipse 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 135 136 Early Implementation – Axis Splatting: Highlights Aligned Splatting � Footprints can be pre-integrated � Voxel kernels are added within axis-aligned sheets � fast voxel projection � Sheets are composited front-to-back � Advantages over raycasting: � Sheets = volume slices most perpendicular to � Fast: voxel interpolation is in 2D on screen the image plane � More accurate integration volume slices volume slices z ⌧ analytical for X-ray y � More accurate reconstruction x ⌧ afford better kernels � Only relevant voxels must be projected image plane at 30° image plane at 70° 5/12/2003 R. Crawfis, Ohio State Univ. 137 5/12/2003 R. Crawfis, Ohio State Univ. 138 6

  7. Splatting: Splatting: Second Implementation Second Implementation � Voxel kernels are added within sheets � Volume � Sheets are composited front-to-back � Sheets = volume slices most volume slices perpendicular to the image plane volume slices z volume slices y x sheet buffer image plane compositing buffer image plane at 30° image plane at 70° 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 139 140 Splatting: Splatting: Second Implementation Second Implementation � Add voxel kernels within first sheet to an auxillary � Transfer to the compositing buffer buffer. volume slices volume slices sheet buffer sheet buffer image plane image plane compositing buffer compositing buffer 5/12/2003 R. Crawfis, Ohio State Univ. 5/12/2003 R. Crawfis, Ohio State Univ. 141 142 Splatting: Splatting: Second Implementation Second Implementation � Add voxel kernels within second sheet � Composite sheet under the compositing buffer volume slices volume slices sheet buffer sheet buffer image plane image plane compositing buffer compositing buffer 5/12/2003 R. Crawfis, Ohio State Univ. 143 5/12/2003 R. Crawfis, Ohio State Univ. 144 7

Recommend


More recommend