Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mesh Processing Course: Multiresolution Mesh Processing

Mesh Processing Course: Multiresolution Mesh Processing

Gabriel Peyré

January 01, 2011
Tweet

More Decks by Gabriel Peyré

Other Decks in Research

Transcript

  1. Gabriel Peyré
    CEREMADE, Université Paris Dauphine
    http://www.ceremade.dauphine.fr/~peyre/
    Multiresolution Mesh
    Processing

    View full-size slide

  2. Overview, course #3
    52 CHAPTER 3. MULTIRESOLUTION MESH PROCESSING
    Figure 3.6: Surface after 0, 1 and 3 step of

    3 subdivision.
    3.2.3 Invariant Neighborhoods
    In order to study the convergence of subdivision schemes, one needs to consider independently
    each vertex x ⌅ Vj0(x)
    , where j0
    (x) is the coarser scale at which x appears
    j0
    (x) = max {j \ x ⌅ Vj
    } .
    Original vertices satisfy j0
    (x) = 0 and are the only one (except boundary vertices) that have a
    non-regular connectivity.
    The vertex x belongs to the mesh Mj0(x)
    which is going to be refined through scales j < j0
    (x).
    In order to analyze this refinement, one needs to define an invariant neighborhood V x
    j
    ⇥ Vj
    of x for
    each scale j j0
    (x). These neighborhood are the set of points that are required to compute the
    operators Pj
    and ˜
    Pj
    . More precisely, given a vector f ⌅ 2(Vj 1
    ), the neighborhoods are required
    to satisfy

    ⇧ ⌅ V x
    j 1
    ⌃ Vj, ( ˜
    Pjf)[ ] depends only on V x
    j
    ⇧ k ⌅ V x
    j 1
    ⌃ Hj, (Pjf)[k] depends only on V x
    j
    .
    wavelets bases. All these predictors have one vanishing moment since they satisfy Pj
    1 = 1 .
    In order to ensure that the dual wavelets have one vanishing moment, the update operator
    depends on the direct neighbors in Hj
    of each point in Vj
    ⌅ ✏ ⇤ Vj, V = { (✏, ✏⇥) \ (✏, ✏⇥) ⇤ Ej
    } .
    One wants looks for a valid update operator in the following form
    ⌅ h ⇤ ✏2(Hj
    ), ⌅ ✏ ⇤ Vj, (Ujh)[✏] = ⇥
    k⇤V⇥
    h[k], (3.12)
    where each ⇥ should be fixed in order for condition (3.11) to be satisfied.
    In an semi-regular triangulation, |V | = 6 except maybe for some points in the coarse grid
    ⇤ V0
    . In this setting, the values of ⇥ can be computed by a recursion through the scales. In
    an ideal triangulation where |V | = 6 for all ✏, one can use a constant weight ⇥ = ⇥. For the
    pecial case of the butterfly wavelets, Pj
    T1Hj
    = 3 ⇥ 1Vj
    and Uj
    T1Vj
    = 6⇥1Hj
    , so setting ⇥ = 1/24
    olves equation (3.11). Figure 3.8 shows examples of butterfly wavelets on a planar semi-regular
    riangulation.
    Wavelets on Meshes
    Subdivision Surfaces
    2

    View full-size slide

  3. Overview
    • Semi Regular Meshes:
    1:4 subdivision, geometry images.
    • Subdivision Surfaces:
    Local interpolators, subdivision schemes, convergence.
    • Biorthogonal Wavelets on Meshes:
    Lifting Scheme, vanishing moments, compression.
    3

    View full-size slide

  4. Regular 1:4 Subdivision
    4
    48 CHAPTER 3. MULTIRESOLUTION MESH PROCESSING
    j = 0 j = 1 j = 2 j = 3
    Vj
    ⇥ Vj 1
    = Vj
    ⌅ { (e) \ e ⇤ Ej
    } .
    Ej
    ⇥ Ej 1
    = { i
    (e) \ i = 1, 2 and e ⇤ Ej
    } .
    Fj
    ⇥ Fj 1
    = {µi
    (f) \ i = 1, 2, 3, 4 and f ⇤ Fj
    } .
    e
    1
    (e)
    2
    (e)
    (e) µ1
    (f)
    µ2
    (f)
    µ3
    (f)
    µ4
    (f)
    f
    subdivision subdivision

    View full-size slide

  5. Complementary grids: Vj
    = Vj+1 Hj+1
    .
    Nested indexes: V0 V 1 . . . VL
    = V .
    Semi-regular mesh hierarchy {Mj
    = (Vj, Ej, Fj
    ) \ L j 0}.
    Semi-regular Meshes
    5
    3.2. SUBDIVISION SURFACES 49
    j = 0 j = 1 j = 2 j = 3
    Signals f ⇥ Rn 2(VL
    ) with n = |VL
    |.

    View full-size slide

  6. Spherical Geometry Images
    6
    !
    !"#$%&'()*+(%(,$-%&.(-&/0*(01*2$,$3#&04*
    !"#$%&'()*% +),)-.%+/00-%
    1*#2-'.#34%/5%13(6% 7#8'/./53%9-.-('86%
    ! ! ! !
    "#$%$&'(!!!!!! )*+,#$-'(!*'#'.,/#$0'/$"&! "-/'+,1#'(!*'#'.,/#$0'/$"&! %,".,/#2!$.'%,!3($/4! #,.,)+,1!%,".,/#2!!!
    5$%6#,!78!9,."&)/#'/$"&!":!)*+,#$-'(!*'#'.,/#$0'/$"&!'&1!)6;),<6,&/!#,)'.*($&%!$&/"!'!%,".,/#2!$.'%,=!
    "#$%&'(%!
    >,-,&/(2?!@6!,/!'(=!ABCCBD!$&/#"16-,1!)*+,*%&-!.,')*$?!$&!E+$-+!
    %,".,/#2! $)! #,)'.*(,1! $&/"! '! -".*(,/,(2!
    #,%6('#!B9!%#$1=!F+,!*#"-,))!$&G"(G,)!-6//$&%!
    /+,!)6#:'-,!$&/"!'!1$)H!6)$&%!'!&,/E"#H!":!-6/!
    *'/+)?!'&1!/+,&!.'**$&%!/+,!;"6&1'#2!":!/+$)!
    1$)H! /"! '! )<6'#,=! ! I"/+! %,".,/#2! '&1! "/+,#!
    F+,! /#'1$/$"&'(! '**#"'-+! :"#! *'#'.,/#$0$&%! '! )6#:'-,! $&G"(G,)!
    -6//$&%!$/!$&/"!-+'#/)!'&1!.'**$&%!/+,),!*$,-,E$),!"&/"!'!*('&'#!
    1".'$&=!!M,!$&/#"16-,!'!#";6)/!/,-+&$<6,!:"#!1$#,-/(2!*'#'.,/#$0K
    $&%! '! %,&6)K0,#"! )6#:'-,! "&/"! '! )*+,#$-'(! 1".'$&=! ! J! H,2!
    $&%#,1$,&/! :"#! .'H$&%! )6-+! '! *'#'.,/#$0'/$"&! *#'-/$-'(! $)! /+,!
    .$&$.$0'/$"&! ":! '! )/#,/-+K;'),1! .,')6#,?! /"! #,16-,! )-'(,K
    x
    U
    T
    S
    Surface S R3.
    Spherical parameterization:
    S
    : S2 ⇤ S.
    Spherical-tetraedron flattening:
    T
    : Tetrahedron ⇤ S2.
    Tetraedron unfolding:
    U
    : [0, 1]2 ⇤ Tetrahedron.
    Regular sampling: x =
    S
    ⇥ T
    ⇥ U
    (⇥/n) for ⇥i
    = 0, . . . , n 1.
    [Praun & Hoppe 2003]
    Spherical Geometry Images: =
    S T U
    : [0, 1]2 ⇥ S.
    Geometry Image ⇥ 3-channels image, special boundary conditions.

    View full-size slide

  7. Overview
    • Semi Regular Meshes:
    1:4 subdivision, geometry images.
    • Subdivision Surfaces:
    Local interpolators, subdivision schemes, convergence.
    • Biorthogonal Wavelets on Meshes:
    Lifting Scheme, vanishing moments, compression.
    7

    View full-size slide

  8. 1D Function Refinement
    8
    h0
    h1
    ˜
    h 1 ˜
    h1
    ˜
    h0
    Vj
    Hj
    Vj 1
    [1, 1]/2
    [1, 1]/2 [1, 6, 1]/8 [1, 4, 6, 4, 1]/8
    1 [1, 2, 1]/4
    g
    h
    ˜
    h
    Linear
    Cubic
    fj
    ⇤ 2(Vj
    ) ⇥
    ⌅ k ⇤ Hj, fj 1
    (k) =

    t
    fj
    ((k 1)/2 + t)h(t),
    ⌅ ⇤ Vj, fj 1
    ( ) =

    t
    fj
    ( + t)˜
    h(t).
    f 1 f 2 f 5
    f0

    View full-size slide

  9. Spline Interpolation
    9
    g = [. . . , ˜
    h( 1), h(0), ˜
    h(0), h(1), ˜
    h(1), . . .] Cubic: [1, 4, 6, 4, 1]/8.
    fj 1
    = (fj
    ⇤ 2) ⇥ g where a ⇤ 2 = [. . . , a( 1), 0, a(0), 0, a(1), . . .].
    f0
    =
    0
    f ⇥
    =
    Rescaled ˜
    fj
    (x = 2j⇥) = f(⇥) j⇥ ⇤
    ⇥ f(x) =
    ⌅V0
    (x ⇥)f0(⇥).
    ˆ
    fj
    ( ) = ˆ
    fj+1
    ( /2)ˆ
    g( ) = ˆ
    f0
    (2j )
    j 1
    k=0
    ˆ
    h( /2k)
    ˆ
    ⇥( ) =
    0
    j= ⇥
    ˆ
    g(2j ).

    View full-size slide

  10. Curve Subdivision
    10
    Signal (X0, Y0
    ) : V0
    R2 (control polygon).
    Subdivision curve (Xj, Yj
    ) converges to (X(t), Y (t))1
    t=0
    R2.
    (X 2, Y 2
    ) (X 5, Y 5
    )
    (X0, Y0
    )
    (X 1, Y 1
    )

    View full-size slide

  11. Subdivision Refinement
    11
    define ˜
    Pj
    .
    For a vertex k ⇤ Hj
    ⇥ Vj 1
    , the butterfly neighborhood is a set of vertices in Vj
    close to k.
    This neighborhood is used to define Pj
    . The two immediate neighbors are
    (v1
    k
    , v2
    k
    ) def.
    = {v ⇤ Vj
    \ (v, k) ⇤ Ej 1
    } .
    Two other vertices (w1
    k
    , w2
    k
    ) are defined using the two faces adjacent to edge (v2
    k
    , v2
    k
    ) ⇤ Ej
    f1
    k
    = (v1
    k
    , v2
    k
    , w1
    k
    ) ⇤ Fj
    and f2
    k
    = (v1
    k
    , v2
    k
    , w2
    k
    ) ⇤ Fj.
    For edges Ej
    on the boundary of Mj
    , one one face is available, in which case we implicitly assume
    that f1
    = f2
    (reflecting boundary conditions). The four last vertices are defined using faces adjacent
    to f1
    and f2
    :
    ⇧ i, j = 1, 2, fi,j
    k
    def.
    = (zi,j
    k
    , vj
    k
    , wj
    k
    ) ⇤ Fj
    with fi,j
    k
    ⌅= fj.
    Once again, reflecting boundary condition are applied for faces on the boundary of the mesh. The
    butterfly neighborhood is depicted on figure 3.3.
    k
    v1
    k
    v2
    k
    f2
    k
    f1
    k
    w1
    k
    w2
    k
    z1,1
    k
    f1,1
    k
    f1,2
    k
    f2,2
    k
    f2,1
    k
    z1,2
    k
    z2,2
    k
    z2,1
    k
    Interpolators : Pj
    : 2(Vj
    ) ⇥ 2(Hj
    ),
    ˜
    Pj
    : 2(Vj
    ) ⇥ 2(Vj
    ).
    Signal refinement: fj
    ⇥ R|Vj
    | ⇤ fj 1
    ⇥ R|Vj 1|:
    ⇥ Vj 1, fj 1
    [ ] =
    (Pjfj
    )[ ] if Vj,
    ( ˜
    Pjfj
    )[ ] if Hj.

    View full-size slide

  12. Triangular Subdivision Schemes
    12
    1
    2
    (f[v1
    k
    ] + f[v2
    k
    ]) fj
    [ ]
    ⇥ Vj, ( ˜
    Pjfj
    )[ ] =
    ⇥ k Hj, (Pjfj
    )[k] =
    1
    2
    2
    i=1
    f[vi
    k
    ] +
    1
    8
    2
    i=1
    f[wi
    k
    ]
    1
    16
    2
    i,j=1
    f[zi,j
    k
    ]
    m
    def.
    =
    1
    m

    5
    8
    3
    8
    +
    1
    4
    cos(2⇥/m)
    ⇥2

    .
    3
    8
    2
    i=1
    f[vi
    k
    ] +
    1
    8
    2
    i=1
    f[wi
    k
    ]
    (1 |V | |V |
    )fj
    [⇥] +
    |V |
    ⇥V
    fj
    [⇥ ]
    fj
    [ ]
    Figure 3.4: Examples of iterative subdivision using Loop scheme. The points (X0, Y0, Z0
    ) of the
    nitial coarse mesh M0
    are shown in red.
    Original Linear Butterfly Loop
    Linear
    Butterfly
    Loop

    View full-size slide

  13. Examples of Loop Subdivision
    13
    3.2. SUBDIVISION SURFACES 51
    Figure 3.4: Examples of iterative subdivision using Loop scheme. The points (X0, Y0, Z0
    ) of the
    initial coarse mesh M0
    are shown in red.
    j = 0 j = 1 j = 2 j = 3

    View full-size slide

  14. Invariant Neighborhoods
    14
    3.2. SUBDIVISION SURFACES
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    0
    2
    3
    7
    4
    8
    5
    9
    6
    Figure 3.7: Invariant neighborhood V x
    j
    and V x
    j 1
    (indexing with red circles) o
    Coarser scale: j0
    (x) = max {j \ x Vj
    } .
    Invariant neighborhoods (V x
    j
    )
    j
    of x:
    ⇥ V x
    j 1
    ⇤ Vj, ( ˜
    Pjf)[ ] depends only on V x
    j
    ⇥ k V x
    j 1
    ⇤ Hj, (Pjf)[k] depends only on V x
    j
    .
    Restrictions: Px
    j
    : V x
    j
    ⇥ V x
    j 1
    ⇤ Vj,
    ˜
    Px
    j
    : V x
    j
    ⇥ V x
    j 1
    ⇤ Hj.
    Same size j j0
    (x), #V x
    j
    = mx
    .
    Subdivision matrix Sx
    j
    Rmx mx
    ( ˜
    Px
    j
    , Px
    j
    ) : V j
    x
    ⇥ V j 1
    x
    .















    7 3 3 3
    1 1 1 1 10 1 1
    1 1 1 1 1 10 1
    1 1 1 1 1 1 10
    1 1 3 3
    1 1 3 3
    1 1 3 3
    1 3 1 1
    1 1 3 1
    1 2 1 3
















    Sx
    j
    =

    View full-size slide

  15. Convergence of Subdivisions
    15
    fx
    j
    Rmx
    restriction of fj
    to V x
    j
    .
    fj
    [x] = Sxfx
    j+1

    [x] =

    (Sx)j0(x) jfx
    j0(x)

    [x],
    Hypothesis : 1 =
    1 < def.
    =
    2
    =
    3 < 4.
    = (
    i
    )m
    i=1
    , = (
    i
    )m
    i=1
    1
    k
    (f ⇥f, ⇥1
    ⇤1) = ⇥f, ⇥2
    ⇤ ˜
    ⇥2
    + ⇥f, ⇥3
    ⇤ ˜
    ⇥3
    + o(1).
    Sx = ˜
    ⇥V ⇥T where
    ⇥T = ˜
    ⇥ 1,
    = diag(
    i
    ), 1 2 . . . mx
    .
    Eigen-decomposition:
    Theorem : fj(x) j⇥ ⇤
    ⇥ ⇤fx
    j0(x)
    , 1
    ⌅.
    Asymptotics with k +⇥:

    View full-size slide

  16. Convergence
    16
    p(x) = (X(x), Y (x), Z(x)) = ( Xx
    j0
    , 1
    ⇥, Y x
    j0
    , 1
    ⇥, Zx
    j0
    , 1
    ⇥).
    Coarse control mesh: p0
    = (X0, Y0, Z0
    ) 2(V0
    )3.
    Subdivision surface: pj
    = (Xj, Yj, Zj
    ) converges to
    p(x) p(x ) + o(1) ⇥ Span( x
    2
    , x
    3
    )
    where i(x) def.
    = ( Xx
    j0
    , ⇥i
    ⇥, Y x
    j0
    , ⇥i
    ⇥, Zx
    j0
    , ⇥i
    ⇥).
    Tangent plane:
    3.2. SUBDIVISION SURFACES
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0
    1
    0
    2
    3
    7
    4
    8
    5
    9
    6
    x x
    1
    = 1 and
    2
    =
    3
    = 1/3 > 4
    .















    7 3 3 3
    1 1 1 1 10 1 1
    1 1 1 1 1 10 1
    1 1 1 1 1 1 10
    1 1 3 3
    1 1 3 3
    1 1 3 3
    1 3 1 1
    1 1 3 1
    1 2 1 3
















    Sx
    j
    =
    Loop matrix
    k = 3

    View full-size slide

  17. Overview
    • Semi Regular Meshes:
    1:4 subdivision, geometry images.
    • Subdivision Surfaces:
    Local interpolators, subdivision schemes, convergence.
    • Biorthogonal Wavelets on Meshes:
    Lifting Scheme, vanishing moments, compression.
    17

    View full-size slide

  18. Biorthogonal Wavelets on Meshes
    18
    .. .
    f0
    2(V0
    )
    f 1
    2(V 1
    )
    f 2
    2(V 2
    )
    d0
    2(H0
    )
    d 1
    2(H 1
    )
    Initial signal (dj
    2(Hj
    ))J 1
    j=0
    f0
    2(G0
    )
    (wavelets coefs.)
    (coarse approx.)
    fwd. trans.
    bwd. trans.
    Forward : ⇥ k Hj, dj
    [k] = ⇤f, j,k
    ⌅,
    ⇥ ⇤ Vj, fj
    [⇤] = ⇤f, ⇥j,
    ⌅.
    Backward : f =
    Ldj
    [k] ˜
    j,k
    +
    VJ
    fJ
    [⇤] ˜
    ⇥J, .
    f = fJ
    2(VJ
    )

    View full-size slide

  19. Lifting Scheme
    19
    split Pj Uj
    fj 1
    Vj
    Vj 1
    Hj
    + fj
    dj
    .. .
    fj
    dj
    Vj
    Hj
    Uj
    Pj
    +
    merge fj 1
    Vj 1
    .. .
    .. .
    .. .
    Predict : Pj
    : 2(Vj
    ) ⇥ 2(Hj
    )
    Update : Uj
    : 2(Hj
    ) ⇥ 2(Vj
    )

    View full-size slide

  20. Lifting Recursion
    20
    Forward Predict/Update steps:
    ⇤ k ⇥ Hj, dj
    [k] = fj 1
    [k]

    ⇥Vj
    pj
    [k, ]fj 1
    [ ], followed by
    ⇤ ⇥ Vj, fj
    [ ] = fj 1
    [ ] +

    k⇥Hj
    uj
    [ , k]dj
    [k].
    Backward Update/Predict steps:
    ⇤ ⇥ Vj, fj 1
    [ ] = fj
    [ ]

    k⇥Hj
    uj
    [ , k]dj
    [k], followed by
    ⇤ k ⇥ Hj, fj 1
    [k] = dj
    [k] +

    ⇥Vj
    pj
    [k, ]fj 1
    [ ].
    ⇤ k ⇥ Hj, j,k
    = ⇥j 1,k

    ⇥Vj
    pj
    [k, ⇤]⇥j 1, ,
    ⇤ ⇤ ⇥ Vj, ⇥j,
    = ⇥j 1,
    +

    k⇥Hj
    uj
    [⇤, k]
    j,k,
    E ect on basis functions:

    View full-size slide

  21. Imposing Vanishing Moments
    21
    ⇤ k ⇥ Hj, j,k
    = ⇥j 1,k

    ⇥Vj
    pj
    [k, ⇤]⇥j 1, ,
    ⇤ ⇤ ⇥ Vj, ⇥j,
    = ⇥j 1,
    +

    k⇥Hj
    uj
    [⇤, k]
    j,k,
    Sampling locations: ⇤ ⇥ VL, x = (X , Y , Z ) ⇥ S R3.
    Polynomials:
    s
    (x ) = xs = (X )s1 (Y )s2 (Z )s3 .
    Imposing vanishing moments: ⇥ ⇤ Vj, ⇤ s, ⇥j,
    ⌅ =
    s
    [⇤],
    ⇥ k Hj, ⇤ s, j,
    ⌅ = 0,
    (⇥j, , j,
    )
    k,
    have VM ⇥

    ⌅ s ⇤ S, Pj
    Vj
    s
    = Hj
    s ,
    Uj
    T Vj
    s
    + Pj
    T Hj
    s

    = Hj
    s .
    If (⇥j 1, , j 1,
    )
    k,
    have vanishing moments:
    where A
    s
    2(A) is the restriction of
    s
    to A.

    View full-size slide

  22. wavelets bases. All these predictors have one vanishing moment since they satisfy Pj
    1Hj
    = 1Vj
    .
    In order to ensure that the dual wavelets have one vanishing moment, the update operator
    depends on the direct neighbors in Hj
    of each point in Vj
    ⌅ ✏ ⇤ Vj, V = { (✏, ✏⇥) \ (✏, ✏⇥) ⇤ Ej
    } .
    One wants looks for a valid update operator in the following form
    ⌅ h ⇤ ✏2(Hj
    ), ⌅ ✏ ⇤ Vj, (Ujh)[✏] = ⇥
    k⇤V⇥
    h[k], (3.12)
    where each ⇥ should be fixed in order for condition (3.11) to be satisfied.
    In an semi-regular triangulation, |V | = 6 except maybe for some points in the coarse grid
    ⇤ V0
    . In this setting, the values of ⇥ can be computed by a recursion through the scales. In
    an ideal triangulation where |V | = 6 for all ✏, one can use a constant weight ⇥ = ⇥. For the
    pecial case of the butterfly wavelets, Pj
    T1Hj
    = 3 ⇥ 1Vj
    and Uj
    T1Vj
    = 6⇥1Hj
    , so setting ⇥ = 1/24
    olves equation (3.11). Figure 3.8 shows examples of butterfly wavelets on a planar semi-regular
    riangulation.
    Examples of Update Operators
    22
    ⇥ h ⇥2(Hj
    ), ⇥ ⇥ Vj, (Ujh)[⇥] = (h[v1
    k
    ] + h[v2
    k
    ]),
    Update operators:
    On a regular triangulation: |V | = 6, = .
    Pj
    T1Hj
    = 3 1Vj
    , Uj
    T1Vj
    = 6 1Hj
    =⇥ = 1/24.
    Pj
    1 = 1.
    1/2 1/2 1/2 1/2
    1/16 1/16
    1/16
    1/16
    3/8 3/8
    1/8
    1/8
    Linear Loop Butterfly
    ˜
    1,k
    ˜
    2,k
    ˜
    3,k

    View full-size slide

  23. Function on Meshes Approximation
    23
    100% 10% 5% 2%
    Figure 3.9: Non-linear wavelet mesh compression with a decreasing number of coe cients.
    100% 10% 5% 2%
    Function f ⇥ 2(VJ
    ) Rn.
    Decomposition : f =
    Lf, j,k
    ⇥ ˜
    j,k
    where IT
    = (j, k) \ k Hj
    and |⇥f, j,k
    ⇤| > T| supp(
    j,k
    )| 1/2

    .
    Approximation : fM
    =
    (j,k) IT
    f, j,k
    ⇥ ˜
    j,k, M = #IT

    View full-size slide

  24. 3D Mesh Compression
    24
    wavelet in order to approximately normalize the wavelets in ⇤2(VL
    ) norm.
    Figure 3.9 shows an example of compression of the position of a vertex in 3D spaces as 3
    functions defined on a semi-regular mesh. Figure 3.10 shows an example of compression of a
    spherical texture map which is a single function defined at each vertex of a semi-regular mesh
    obtained by subdividing an icosaedron.
    100% 10% 5% 2%
    Sampling locations: ⇤ ⇥ VL, x = (X , Y , Z ) ⇥ S R3.

    View full-size slide