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 ...
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