27.01.2015 Views

Point-Based Rendering - Computer Graphics Lab at ETH Zurich ...

Point-Based Rendering - Computer Graphics Lab at ETH Zurich ...

Point-Based Rendering - Computer Graphics Lab at ETH Zurich ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Point</strong>-<strong>Based</strong> <strong>Rendering</strong><br />

<strong>Point</strong>-<strong>Based</strong> <strong>Rendering</strong><br />

M<strong>at</strong>thias Zwicker<br />

<strong>Computer</strong> <strong>Graphics</strong> <strong>Lab</strong><br />

<strong>ETH</strong> Zürich<br />

• Introduction and motiv<strong>at</strong>ion<br />

• Surface elements<br />

•<strong>Rendering</strong><br />

• Antialiasing<br />

• Hardware Acceler<strong>at</strong>ion<br />

• Conclusions<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 1<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 2<br />

Motiv<strong>at</strong>ion 1<br />

Motiv<strong>at</strong>ion 1<br />

Quake 2<br />

1998<br />

Nvidia GeForce4<br />

2002<br />

• Performance of 3D hardware has exploded<br />

(e.g., GeForce4: 136 million vertices per<br />

second)<br />

• Projected triangles are very small (i.e.,<br />

cover only a few pixels)<br />

• Overhead for triangle setup increases<br />

(initializ<strong>at</strong>ion of texture filtering,<br />

rasteriz<strong>at</strong>ion)<br />

A simpler, more efficient rendering<br />

primitive than triangles<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 3<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 4<br />

Motiv<strong>at</strong>ion 2<br />

• Modern 3D scanning devices<br />

(e.g., laser range scanners)<br />

acquire huge point clouds<br />

• Gener<strong>at</strong>ing consistent triangle<br />

meshes is time consuming and<br />

difficult<br />

<strong>Point</strong>s as <strong>Rendering</strong><br />

Primitives<br />

• <strong>Point</strong> clouds instead of triangle meshes [Levoy and<br />

Whitted 1985, Grossman and Dally 1998, Pfister et<br />

al. 2000]<br />

A rendering primitive for<br />

direct visualiz<strong>at</strong>ion of point<br />

clouds, without the need to<br />

gener<strong>at</strong>e triangle meshes<br />

4 million pts.<br />

[Levoy et al. 2000]<br />

triangle mesh (with<br />

textures)<br />

point cloud<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 5<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 6<br />

1


<strong>Point</strong>-<strong>Based</strong> Surface<br />

Represent<strong>at</strong>ion<br />

• <strong>Point</strong>s are samples of the surface<br />

• The point cloud describes:<br />

• 3D geometry of the surface<br />

• Surface reflectance properties (e.g.,<br />

diffuse color, etc.)<br />

• There is no additional inform<strong>at</strong>ion,<br />

such as<br />

• connectivity (i.e., explicit<br />

neighborhood inform<strong>at</strong>ion between<br />

points)<br />

• texture maps, bump maps, etc.<br />

Surface Elements - Surfels<br />

• Each point corresponds to a surface<br />

element, or surfel, describing the surface in<br />

a small neighborhood<br />

• Basic surfels:<br />

BasicSurfel {<br />

position;<br />

color;<br />

}<br />

y<br />

z<br />

x<br />

position<br />

color<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 7<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 8<br />

Surfels<br />

• How to represent the surface between the<br />

points<br />

holes between<br />

the points<br />

• Surfels need to interpol<strong>at</strong>e the surface<br />

between the points<br />

• A certain surface area is associ<strong>at</strong>ed with<br />

each surfel<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 9<br />

Surfels<br />

• Surfels can be extended by storing additional<br />

<strong>at</strong>tributes<br />

• This allows for higher quality rendering or<br />

advanced shading effects<br />

ExtendedSurfel {<br />

position;<br />

color;<br />

normal;<br />

radius;<br />

etc...<br />

}<br />

color<br />

radius<br />

surfel disc<br />

normal<br />

position<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 10<br />

Surfels<br />

• Surfels store essential inform<strong>at</strong>ion for<br />

rendering<br />

• Surfels are primarily designed as a<br />

point rendering primitive<br />

• They do not provide a m<strong>at</strong>hem<strong>at</strong>ically<br />

smooth surface definition (see [Alexa<br />

2001], point set surfaces)<br />

Model Acquisition<br />

• 3D scanning of physical objects<br />

• See Pfister, acquisition<br />

• Direct rendering of acquired point clouds<br />

• No mesh reconstruction necessary<br />

[M<strong>at</strong>usik et al. 2002]<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 11<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 12<br />

2


Model Acquisition<br />

• Sampling synthetic objects<br />

• Efficient rendering of complex models<br />

• Dynamic sampling of procedural objects<br />

and anim<strong>at</strong>ed scenes (see Stamminger,<br />

dynamic sampling)<br />

Model Acquisition<br />

• Processing and editing of point-sampled<br />

geometry<br />

[Zwicker et al. 2001] [Stamminger et al. 2001]<br />

spectral processing<br />

[Pauly, Gross 2002]<br />

(see Gross, spectral processing)<br />

point-based surface editing<br />

[Zwicker et al. 2002]<br />

(see Pauly, <strong>Point</strong>shop3D)<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 13<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 14<br />

<strong>Point</strong> <strong>Rendering</strong> Pipeline<br />

<strong>Point</strong> <strong>Rendering</strong> Pipeline<br />

<strong>Point</strong><br />

Cloud<br />

Forward<br />

Warping<br />

Filtering<br />

and Shading<br />

Visibility<br />

Framebuffer<br />

Image<br />

Reconstruction<br />

• Simple, pure forward mapping pipeline<br />

• Surfels carry all inform<strong>at</strong>ion through the pipeline<br />

(„surfel stream“)<br />

• No texture look-ups<br />

• Framebuffer stores RGB, alpha, and Z<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 15<br />

Forward<br />

Warping<br />

Filtering<br />

and Shading<br />

Visibility<br />

Image<br />

Reconstruction<br />

• Perspective projection of each point in<br />

the point cloud<br />

• Analogous to projection of triangle<br />

vertices<br />

• homogeneous m<strong>at</strong>rix-vector product<br />

• perspective division<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 16<br />

<strong>Point</strong> <strong>Rendering</strong> Pipeline<br />

<strong>Point</strong> <strong>Rendering</strong> Pipeline<br />

Forward<br />

Warping<br />

Filtering<br />

and Shading<br />

Visibility<br />

Image<br />

Reconstruction<br />

Forward<br />

Warping<br />

Filtering<br />

and Shading<br />

Visibility<br />

Image<br />

Reconstruction<br />

•Per-point shading<br />

• Conventional models for shading (Phong,<br />

Torrance-Sparrow, reflections, etc.)<br />

• High quality antialiasing is an advanced<br />

topic discussed l<strong>at</strong>er in the course<br />

• Visibility and image reconstruction is<br />

performed simultaneously<br />

• Discard points th<strong>at</strong> are occluded from the<br />

current viewpoint<br />

• Reconstruct continuous surfaces from<br />

projected points<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 17<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 18<br />

3


Overview<br />

Visibility and Image<br />

Reconstruction<br />

Forward<br />

Warping<br />

Filtering<br />

and Shading<br />

Visibility<br />

Image<br />

Reconstruction<br />

without visibility and<br />

image reconstruction<br />

with visibility and<br />

image reconstruction<br />

2.<br />

1.<br />

foreground point<br />

occluded background point<br />

surface discontinuity<br />

(“hole”)<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 19<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 20<br />

Image Reconstruction<br />

• Goal: avoid holes<br />

• Use surfel disc radius r to cover<br />

surface completely<br />

normal<br />

surfel disc<br />

radius r<br />

3D object space<br />

Quad <strong>Rendering</strong><br />

Primitive<br />

• Draw a colored quad centered <strong>at</strong> the projected<br />

point<br />

• The quad side length is h, where h = 2 * r * s<br />

• The scaling factor s given by perspective<br />

projection and viewport transform<strong>at</strong>ion<br />

• Hardware implement<strong>at</strong>ion: screen space OpenGL GL_POINTS<br />

colored quad<br />

projected point<br />

y<br />

} h<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 21<br />

x<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 22<br />

Projected Disc <strong>Rendering</strong><br />

Primitive<br />

• Project surfel discs from object to screen space<br />

• Projecting discs results in ellipses in screen space<br />

• Ellipses adapt to the surface orient<strong>at</strong>ion<br />

screen space<br />

object space<br />

normal<br />

y<br />

x<br />

projected surfel disc<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 23<br />

y<br />

z<br />

x<br />

surfel disc<br />

Comparison<br />

• Quad primitive<br />

• Low image quality (primitives do not adapt to<br />

surface orient<strong>at</strong>ion)<br />

• Efficient rendering<br />

• Supported by conventional 3D acceler<strong>at</strong>or<br />

hardware (OpenGL GL_POINTS)<br />

• Projected disc primitive<br />

• Higher image quality (primitives adapt to surface<br />

orient<strong>at</strong>ion)<br />

• Not directly supported by graphics hardware<br />

• Higher comput<strong>at</strong>ional cost<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 24<br />

4


Visibility: Z-Buffering<br />

• No blending of rendering primitives<br />

framebuffer<br />

z1<br />

z1 >z2{<br />

z2<br />

pixel<br />

Spl<strong>at</strong>ting<br />

y<br />

• A spl<strong>at</strong> primitive consists of a colored point<br />

primitive and an alpha mask<br />

y<br />

* =<br />

y<br />

z<br />

y<br />

x<br />

x<br />

colored point<br />

primitive c<br />

x<br />

alpha mask<br />

w(x,y)<br />

(often a 2D<br />

Gauss function)<br />

x<br />

spl<strong>at</strong> primitive<br />

c * w(x,y)<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 25<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 26<br />

Spl<strong>at</strong>ting<br />

Spl<strong>at</strong>ting<br />

• The final color c(x,y) is computed by additive<br />

alpha blending, i.e., by computing the weighted<br />

sum<br />

color of spl<strong>at</strong> i<br />

c(<br />

x,<br />

y)<br />

=<br />

∑i<br />

∑i<br />

c w ( x,<br />

y)<br />

i<br />

alpha of spl<strong>at</strong> i <strong>at</strong> position (x,y)<br />

i<br />

i<br />

w ( x,<br />

y)<br />

• Normaliz<strong>at</strong>ion is necessary, because the weights do<br />

not sum up to one with irregular point distributions<br />

∑ i<br />

wi ( x,<br />

y)<br />

≠ 1<br />

without normaliz<strong>at</strong>ion<br />

varying brightness<br />

because of irregular<br />

point distribution<br />

with normaliz<strong>at</strong>ion<br />

no artifacts<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 27<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 28<br />

Spl<strong>at</strong>ting<br />

• Extended z-buffering<br />

z-buffer pixel<br />

z-threshold<br />

accumul<strong>at</strong>e<br />

spl<strong>at</strong>s<br />

surface 1<br />

surface 2<br />

discard spl<strong>at</strong>s<br />

surfel disc<br />

z<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 29<br />

Extended Z-Buffering<br />

DepthTest(x,y) {<br />

if (abs(spl<strong>at</strong> z – z(x,y)) < threshold) {<br />

c(x,y) = c(x,y) + spl<strong>at</strong> color<br />

w(x,y) = w(x,y) + spl<strong>at</strong> w(x,y)<br />

} else if (spl<strong>at</strong> z < z(x,y)) {<br />

z(x,y) = spl<strong>at</strong> z<br />

c(x,y) = spl<strong>at</strong> color<br />

w(x,y) = spl<strong>at</strong> w(x,y)<br />

}<br />

}<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 30<br />

5


Spl<strong>at</strong>ting Comparison<br />

High Quality Spl<strong>at</strong>ting<br />

minif.<br />

elliptical<br />

spl<strong>at</strong>s<br />

circular spl<strong>at</strong>s<br />

with min. radius<br />

surface<br />

spl<strong>at</strong>ting<br />

• High quality spl<strong>at</strong>ting requires careful<br />

analysis of aliasing issues<br />

• Review of signal processing theory<br />

• Applic<strong>at</strong>ion to point rendering<br />

• Surface spl<strong>at</strong>ting [Zwicker et al. 2001]<br />

magnif. 128 x 192 128 x 192 128 x 192<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 31<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 32<br />

Aliasing in <strong>Computer</strong><br />

<strong>Graphics</strong><br />

• Aliasing = Sampling of continuous functions<br />

below the Nyquist frequency<br />

• To avoid aliasing, sampling r<strong>at</strong>e must be twice as<br />

high as the maximum frequency in the signal<br />

•Aliasingeffects:<br />

• Loss of detail<br />

• Moire p<strong>at</strong>terns, jagged edges<br />

• Disintegr<strong>at</strong>ion of objects or p<strong>at</strong>terns<br />

• Aliasing in <strong>Computer</strong> <strong>Graphics</strong><br />

• Texture Mapping<br />

• Scan conversion of geometry<br />

Aliasing in <strong>Computer</strong><br />

<strong>Graphics</strong><br />

• Aliasing: high frequencies in the input signal<br />

appear as low frequencies in the<br />

reconstructed signal<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 33<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 34<br />

Occurrence of Aliasing<br />

Aliasing-Free Reconstruction<br />

Sp<strong>at</strong>ial Domain Frequency Domain Sp<strong>at</strong>ial Domain Frequency Domain<br />

Sp<strong>at</strong>ial Domain Frequency Domain<br />

Sp<strong>at</strong>ial Domain Frequency Domain<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 35<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 36<br />

6


Antialiasing<br />

•Prefiltering<br />

• Band-limit the continuous signal before<br />

sampling<br />

• Elimin<strong>at</strong>es all aliasing (with an ideal low-pass<br />

filter)<br />

• Closed form solution not available in general<br />

• Supersampling<br />

•Raise samplingr<strong>at</strong>e<br />

• Reduces, but does not elimin<strong>at</strong>e all aliasing<br />

artifacts (in practice, many signals have infinite<br />

frequencies)<br />

• Simple implement<strong>at</strong>ion (hardware)<br />

Resampling<br />

discrete input signal<br />

warp<br />

resampling<br />

1.<br />

2. 3.<br />

discrete output signal<br />

4.<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 37<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 38<br />

Resampling Filters<br />

Object Space<br />

Resampling Filters<br />

Object Space<br />

Screen Space<br />

color<br />

position<br />

reconstructed input<br />

reconstruction kernels<br />

2. Warp<br />

Screen Space<br />

Screen Space<br />

4. Sample<br />

irregular spacing<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 39<br />

3. Filter<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 40<br />

Resampling Filters<br />

Resampling<br />

2. Warp<br />

Object Space<br />

Screen Space<br />

warped reconstruction<br />

kernel<br />

Screen Space<br />

sum of resampling filters<br />

Screen Space<br />

resampling filters<br />

4. Sample<br />

• Resampling in the context of surface<br />

rendering<br />

• Discrete input function = surface texture<br />

(discrete 2D function)<br />

• Warping = projecting surfaces to the<br />

image plane (2D to 2D projective<br />

mapping)<br />

low-pass filter convolution<br />

3. Filter<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 41<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 42<br />

7


2D Reconstruction Kernels<br />

• Warping a 2D reconstruction kernel is equivalent to<br />

projecting a surfel disc with alpha mask<br />

y<br />

screen space<br />

x<br />

warped reconstruction kernel<br />

y<br />

object space<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 43<br />

z<br />

x<br />

normal<br />

surfel disc with<br />

alpha mask =<br />

reconstruction<br />

kernel<br />

Resampling Filters<br />

• A resampling filter is a convolution of a<br />

warped reconstruction filter and a low-pass<br />

filter<br />

warped<br />

reconstruction<br />

kernel<br />

screen space<br />

pixel grid<br />

convolution<br />

low-pass filter<br />

(determined by<br />

pixel grid)<br />

“no inform<strong>at</strong>ion falls<br />

inbetween the pixel<br />

grid”<br />

resampling filter<br />

(“blurred reconstruction<br />

kernel”)<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 44<br />

M<strong>at</strong>hem<strong>at</strong>ical Formul<strong>at</strong>ion<br />

−1<br />

c ( x,<br />

y)<br />

= ∑ c r ( m ( x,<br />

y))<br />

⊗ h(<br />

x,<br />

y)<br />

k<br />

k<br />

k<br />

pixel color<br />

warping function low pass filter<br />

reconstruction kernel<br />

reconstruction kernel color<br />

Gaussian Resampling Filters<br />

• Gaussians are closed under linear<br />

warping and convolution<br />

• With Gaussian reconstruction kernels<br />

and low-pass filters, the resampling<br />

filter is a Gaussian, too<br />

• Efficient rendering algorithms<br />

(surface spl<strong>at</strong>ting [Zwicker et al.<br />

2001])<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 45<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 46<br />

M<strong>at</strong>hem<strong>at</strong>ical Formul<strong>at</strong>ion<br />

M<strong>at</strong>hem<strong>at</strong>ical Formul<strong>at</strong>ion<br />

−1<br />

c ( x,<br />

y)<br />

= ∑ c r ( m ( x,<br />

y))<br />

⊗ h(<br />

x,<br />

y)<br />

k<br />

k<br />

k<br />

Gaussian<br />

reconstruction kernel<br />

Gaussian<br />

low-pass filter<br />

−1<br />

c ( x,<br />

y)<br />

= ∑ c r ( m ( x,<br />

y))<br />

⊗ h(<br />

x,<br />

y)<br />

k<br />

k<br />

= ∑ k<br />

c<br />

kGk<br />

( x,<br />

y)<br />

k<br />

Gaussian resampling filter<br />

screen space<br />

screen space<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 47<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 48<br />

8


Algorithm<br />

for each point P {<br />

project P to screen space;<br />

shade P;<br />

determine resampling kernel G;<br />

spl<strong>at</strong> G;<br />

}<br />

for each pixel {<br />

normalize;<br />

}<br />

Properties of 2D Resampling<br />

Filters<br />

warped reconstruction<br />

kernel<br />

low-pass<br />

filter<br />

resampling<br />

filter<br />

minific<strong>at</strong>ion<br />

magnific<strong>at</strong>ion<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 49<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 50<br />

Hardware Implement<strong>at</strong>ion<br />

• <strong>Based</strong> on the object space formul<strong>at</strong>ion of<br />

EWA filtering<br />

• Implemented using textured triangles<br />

• All calcul<strong>at</strong>ions are performed in the<br />

programmable hardware (extensive use of<br />

vertex shaders)<br />

• Presented <strong>at</strong> EG 2002 ([Ren et al. 2002])<br />

Surface Spl<strong>at</strong>ting<br />

Performance<br />

• Software implement<strong>at</strong>ion<br />

• 500 000 spl<strong>at</strong>s/sec on 866 MHz PIII<br />

• 1 000 000 spl<strong>at</strong>s/sec on 2 GHz P4<br />

• Hardware implement<strong>at</strong>ion [Ren et al. 2002]<br />

• Uses texture mapping and vertex shaders<br />

• 3 000 000 spl<strong>at</strong>s/sec on GeForce4 Ti 4400<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 51<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 52<br />

Conclusions<br />

• <strong>Point</strong>s are an efficient rendering primitive for highly complex<br />

surfaces<br />

• <strong>Point</strong>s allow the direct visualiz<strong>at</strong>ion of real world d<strong>at</strong>a<br />

acquired with 3D scanning devices<br />

• High performance, low quality point rendering is supported<br />

by 3D hardware (tens of millions points per second)<br />

• High quality point rendering with anisotropic texture filtering<br />

is available<br />

• 3 million points per second with hardware support<br />

• 1 million points per second in software<br />

• Antialiasing technique has been extended to volume<br />

rendering<br />

Applic<strong>at</strong>ions<br />

• Direct visualiz<strong>at</strong>ion of point clouds<br />

• Real-time 3D reconstruction and rendering<br />

for virtual reality applic<strong>at</strong>ions<br />

• Hybrid point and polygon rendering systems<br />

• <strong>Rendering</strong> anim<strong>at</strong>ed scenes<br />

• Interactive display of huge meshes<br />

• On the fly sampling and rendering of<br />

procedural objects<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 53<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 54<br />

9


Future Work<br />

• Dedic<strong>at</strong>ed rendering hardware<br />

• Efficient approxim<strong>at</strong>ions of exact EWA<br />

spl<strong>at</strong>ting<br />

• <strong>Rendering</strong> architecture for on the fly<br />

sampling and rendering<br />

References<br />

• [Levoy and Whitted 1985] The use of points as a display primitive,<br />

technical report, University of North Carolina <strong>at</strong> Chapel Hill, 1985<br />

• [Heckbert 1986] Fundamentals of texture mapping and image warping,<br />

Master‘s Thesis, 1986<br />

• [Grossman and Dally 1998] <strong>Point</strong> sample rendering, Eurographics<br />

workshop on rendering, 1998<br />

• [Levoy et al. 2000] The digital Michelangelo project, SIGGRAPH 2000<br />

• [Rusinkiewicz et al. 2000] Qspl<strong>at</strong>, SIGGRAPH 2000<br />

• [Pfister et al. 2000] Surfels: Surface elements as rendering primitives,<br />

SIGGRAPH 2000<br />

• [Zwicker et al. 2001] Surface spl<strong>at</strong>ting, SIGGRAPH 2001<br />

• [Zwicker et al. 2002] EWA Spl<strong>at</strong>ting, to appear, IEEE TVCG 2002<br />

• [Ren et al. 2002] Object space EWA spl<strong>at</strong>ting: A hardware acceler<strong>at</strong>ed<br />

approach to high quality point rendering, Eurographics 2002<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 55<br />

<strong>Point</strong>-<strong>Based</strong> <strong>Computer</strong> <strong>Graphics</strong> M<strong>at</strong>thias Zwicker 56<br />

10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!