Splat/Mesh Blending, Perspective Rasterization and Transparency - - PowerPoint PPT Presentation

splat mesh blending perspective rasterization and
SMART_READER_LITE
LIVE PREVIEW

Splat/Mesh Blending, Perspective Rasterization and Transparency - - PowerPoint PPT Presentation

Splat/Mesh Blending, Perspective Rasterization and Transparency for Point-Based Rendering Gal Guennebaud Loc Barthe, Mathias Paulin IRIT UPS CNRS TOULOUSE FRANCE http://www.irit.fr/~Gael.Guennebaud/ Gal Guennebaud IRIT


slide-1
SLIDE 1

Gaël Guennebaud – IRIT – Toulouse – SPBG06 1

Gaël Guennebaud

Loïc Barthe, Mathias Paulin

IRIT – UPS – CNRS TOULOUSE – FRANCE

http://www.irit.fr/~Gael.Guennebaud/

Splat/Mesh Blending, Perspective Rasterization and Transparency for Point-Based Rendering

slide-2
SLIDE 2

Gaël Guennebaud – IRIT – Toulouse – SPBG06 2

Approximate depth-peeling for Transparency

slide-3
SLIDE 3

Gaël Guennebaud – IRIT – Toulouse – SPBG06 3

Transparency via depth-peeling

  • Standard depth-peeling
  • advantages:
  • no pre-process
  • no sort
  • suitable for per-pixel lighting
  • drawback:
  • may requires several rendering passes
  • => “approximate depth-peeling” ?
slide-4
SLIDE 4

Gaël Guennebaud – IRIT – Toulouse – SPBG06 4

Approximate depth-peeling

  • Idea:
  • bound the number of rendering passes
  • + approximate blending for the last layer
  • blending heuristic:
  • no deferred shading

c x=∑

i

i

' xi ci

slide-5
SLIDE 5

Gaël Guennebaud – IRIT – Toulouse – SPBG06 5

Approximate depth-peeling

(results with 2 layers)

complete depth-peeling

  • nly the first layer

+ a 2nd layer with approx blending

slide-6
SLIDE 6

Gaël Guennebaud – IRIT – Toulouse – SPBG06 6

Approximate depth-peeling

(results with 3 layers)

complete depth-peeling

  • nly the first 2 layers

+ a 3th layer with approx blending

slide-7
SLIDE 7

Gaël Guennebaud – IRIT – Toulouse – SPBG06 7

Splat rasterization

slide-8
SLIDE 8

Gaël Guennebaud – IRIT – Toulouse – SPBG06 8

Point Cloud Rendering

  • Ray-cast a reconstructed surface (MLS)
  • Best quality but slow, requires pre-process...
  • Rasterization (splatting)
  • best quality criteria:
  • perspectively correct splat rasterization
  • per-pixel shading (=> deferred shading)
  • high frequency filtering (aliasing)
  • performance criteria:
  • use the best of current GPU
  • incremental calculations for the rasterization
slide-9
SLIDE 9

Gaël Guennebaud – IRIT – Toulouse – SPBG06 9

Splat rasterization

  • Decomposed as two stages:
  • “splat setup” stage
  • compute the screen space shape of the splat
  • implemented in a vertex program
  • rasterization stage
  • generate the fragments with correct depth and weight
  • implemented in a fragment program (+ point sprite)
slide-10
SLIDE 10

Gaël Guennebaud – IRIT – Toulouse – SPBG06 10

splat rasterization implementations

✘ ✔ ✔ software

[Guennebaud03]

✘ ✔ ✔ 51 6 (✔) ✔ ✔ 93 8 ✔ ✘ 35 13

[PBG06]

✔ (✔) ✔ 58 3

perspective OK EWA filtering suitable for incremental computation # instr. setup # instr. raster EWA Splatting [Zwicker01]

  • Perspec. Accu.

[Zwicker04] [Botsch05] (ray casting)

slide-11
SLIDE 11

Gaël Guennebaud – IRIT – Toulouse – SPBG06 11

Perspective splatting

reconstruction kernel  (gaussian)

local splat space screen space

s t

(u,v) (x,y)

[

xz yz z ] = M . [ u v 1] = [s t p] . [ u v 1]

p

slide-12
SLIDE 12

Gaël Guennebaud – IRIT – Toulouse – SPBG06 12

Perspective splatting

local splat space screen space

s t

(u,v) (x,y)

[

uw vw w ] =

[

t×p

T

p×s

T

s×t

T ]

. [ x y 1]

p

reconstruction kernel  (gaussian)

slide-13
SLIDE 13

Gaël Guennebaud – IRIT – Toulouse – SPBG06 13

Depth value

[

uw vw w depth] =

[

t×p

T

p×s

T

s×t

T

a s×t

T

s×t

T p

[

b]

T

]

. [ x y 1]

  • We have and
  • Hence:

w= 1 z depth=a 1 z b

slide-14
SLIDE 14

Gaël Guennebaud – IRIT – Toulouse – SPBG06 14

GPU implementation

[

uw vw w depth] =

[

t×p

T

p×s

T

s×t

T

a s×t

T

s×t

T p

[

b]

T

]

. [ x y 1]

2 MAD

u ,v =  uw w , vw w 

1 projective 2D texture access 3 vectors computed in the vertex program fragment program

slide-15
SLIDE 15

Gaël Guennebaud – IRIT – Toulouse – SPBG06 15

EWA filtering

  • EWA filtering
  • OK for affine mapping only



'⊗hx reconstruction kernel low-pass filter

  • Object-space filter only

'x warped reconstruction kernel

slide-16
SLIDE 16

Gaël Guennebaud – IRIT – Toulouse – SPBG06 16

EWA filtering approximations

magnification minification magnification + minification reconstruction kernel low-pass pre-filter EWA resampling filter

approximation used in [BHZH05]

OK OK aliasing

max

'x,hx

slide-17
SLIDE 17

Gaël Guennebaud – IRIT – Toulouse – SPBG06 17

EWA filtering approximations

magnification minification magnification + minification reconstruction kernel low-pass pre-filter EWA resampling filter approximation used in [BHZH05] EWA resampling filter

  • ur approximation
  • Basic idea:

adjust the object space tangent vectors such that the warped reconstruction kernel can contains the screen space low-pass filter

slide-18
SLIDE 18

Gaël Guennebaud – IRIT – Toulouse – SPBG06 18

EWA filtering approximation

  • Tangent vectors adjustment
  • only check along the tangent vector directions

t s p

screen space

projected splat diameter along t low-pass filter diameter (=2h)

t'

adjusted tangent vector

slide-19
SLIDE 19

Gaël Guennebaud – IRIT – Toulouse – SPBG06 19

EWA filtering approximation

  • Provides the expected result if and only if the

projected tangent vectors are orthogonal

  • => on the fly re-parametrization ?
  • too much expensive
  • => efficient heuristic for isotropic splats (disks):
  • s = p x n
  • t = n x s
  • exact at the screen center
  • exact for splats parallel to the screen plane
  • “good” worst case
slide-20
SLIDE 20

Gaël Guennebaud – IRIT – Toulouse – SPBG06 20

About depth values and EWA filtering

low-pass filter diameter

A B

  • ur approach:

constant depth values previous approaches => may generate arbitrary depth values ! current splat

slide-21
SLIDE 21

Gaël Guennebaud – IRIT – Toulouse – SPBG06 21

EWA filtering approximation (results)

[Botsch et al. 05]

  • ur new approximation
slide-22
SLIDE 22

Gaël Guennebaud – IRIT – Toulouse – SPBG06 22

Performances

screen resolution: 1024x1024 fps (M splats/s) fps (M splats/s)

slide-23
SLIDE 23

Gaël Guennebaud – IRIT – Toulouse – SPBG06 23

Hybrid rendering

slide-24
SLIDE 24

Gaël Guennebaud – IRIT – Toulouse – SPBG06 24

Hybrid rendering

(motivations)

  • Flat surface or large zoom
  • points are inefficient (both in speed and quality)

⇒ hybrid rendering

points and polygons are complementary

use triangles when points become less efficient

  • What about the transitions ?
slide-25
SLIDE 25

Gaël Guennebaud – IRIT – Toulouse – SPBG06 25

  • High quality =>

to smooth the transitions

Hybrid rendering

(transition smoothing)

standard splats & polygons rendering splatting + ∑weights

  • straightforward !
  • no additional rendering cost !

hybrid rendering with alpha-blending

  • Key idea:

use the sum of weights coming from the splatting to blend the representations

slide-26
SLIDE 26

Gaël Guennebaud – IRIT – Toulouse – SPBG06 26

Hybrid rendering

(transition smoothing)

  • Too much straightforward ?
  • Best quality => uniform sampling of the “transition edges”
slide-27
SLIDE 27

Gaël Guennebaud – IRIT – Toulouse – SPBG06 27

Hybrid rendering

(implementation example)

  • Multi-resolution hierarchy of points
  • Leaves store both points and polygons
  • At the sampling time:
  • explicitly sample the edges shared by two faces stored

in two different leaves leaf “A” leaf “B” “transition splats”

slide-28
SLIDE 28

Gaël Guennebaud – IRIT – Toulouse – SPBG06 28

Hybrid rendering

(implementation example)

  • Hybrid rendering rules:
  • render the polygons (instead of the splats) of all visible

and not dense enough leaf node.

  • render the transition splats shared by at least one leaf

rendered as a set of splats

slide-29
SLIDE 29

Gaël Guennebaud – IRIT – Toulouse – SPBG06 29

Conclusion

  • Summary:
  • Approximate depth-peeling for efficient transparency
  • Perspectively correct splat rasterization
  • efficient on current GPU
  • allows efficient dedicated implementation

(incremental computation)

  • EWA filtering approximation
  • same quality as full EWA filtering
  • only for isotropic splats
  • Splat/polygon transitions smoothing
slide-30
SLIDE 30

Gaël Guennebaud – IRIT – Toulouse – SPBG06 30

slide-31
SLIDE 31

Gaël Guennebaud – IRIT – Toulouse – SPBG06 31

  • Ray-casting -> splatting -> EWA splatting
  • splat rasterization, 2 class of approaches:
  • perspective approx
  • match the center or the contour (better)
  • allow EWA filtering (by an analytic convolution)
  • expensive splat setup
  • suitable for incr. rasterization
  • ray casting
  • simple to implement
  • perspective correct
  • simple splat setup (all the computation are performed at

the fragment level)

  • expensive rasterization shader
slide-32
SLIDE 32

Gaël Guennebaud – IRIT – Toulouse – SPBG06 32

EWA filtering approximation

  • Basic idea:
  • adjust the tangent vectors s and t such that the

warped reconstruction kernel can contains the screen space low-pass filter

  • ~ adjust the tangent vectors s and t such that their

screen space length are greater than the radius of the screen space low-pass filter

  • OK if and only if the tangent vector are still orthogonal

in the screen space and the low pass filter is radially symmetric