49
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Ю.Н. Косников ГЕОМЕТРИЧЕСКИЕ ПРЕОБРАЗОВАНИЯ В КОМПЬЮТЕРНОЙ ГРАФИКЕ Конспект лекций П е н з а 2011

[Kosnikov YU.N.] Geometricheskie Preobrazovaniya v(BookFi.org)

Embed Size (px)

DESCRIPTION

Курс

Citation preview

  • ..

    2011

  • 681.3

    ..

    .

    . : , 2011. 50 .

    .

    , , ,

    .

    ,

    .

    2

  • ..................................................................................................... 4

    1 .............................. 7

    1.1 ................... 7

    1.2 ........................................... 12

    2 .................................... 18

    2.1 ............................................................... 18

    2.2 . ....................................................................... 22

    3 ............................... 29

    3.1 ................. 29

    3.2 ..................................... 31

    4 ................................................................................. 45

    3

  • 1951 ,

    () .

    :

    , ,

    - ,

    .

    60- ,

    ( )

    Sketchpad

    (1963 .), General Motors

    (1964 .).

    ,

    .

    , , , ,

    ,

    ,

    , , ,

    .

    ( ), (

    ), ,

    ( ), (

    ), ( ,

    ) .

    4

  • , , ,

    . ,

    , : ()

    , ,

    .

    . ,

    () ,

    (). ,

    , ;

    ,

    ;

    ,

    ,

    .

    ,

    . ,

    , ,

    :

    (

    , , );

    (

    );

    (

    , , );

    5

  • (

    ,

    );

    ( , ,

    , , );

    ( ,

    );

    ( , ..

    ).

    , ,

    , .

    . ,

    ,

    .

    .

    , (

    ).

    OpenGL

    DirectX.

    .

    ,

    .

    6

  • 1

    1.1

    ,

    - , .

    ()

    .

    . ,

    (),

    .

    () .

    ().

    , .

    .

    . .

    , () , (,

    ) .

    ,

    . ,

    , () ()

    7

  • . .

    .

    .

    ()

    , ,

    . ,

    ( )

    .

    ,

    , ,

    .

    . ,

    .

    , ,

    .

    .

    : ,

    .

    .

    . ()

    : , , , .

    8

  • [1].

    ,

    :

    . ,

    ().

    ( rendering)

    .

    ().

    T&L (transformation

    and lighting),

    ,

    .

    . ( )

    ,

    .

    ,

    .

    (rasterization)

    ,

    .

    .

    .

    .

    , .

    . ,

    9

  • ,

    .

    .

    ,

    .

    ( )

    - .

    ,

    .

    ( ) .

    , .

    ,

    ,

    .

    ( ),

    .

    .

    ()

    . .

    , .

    .

    10

  • .

    .

    .

    (,

    ),

    ,

    .

    .

    .

    , . ,

    ,

    () , .

    ,

    .

    , ,

    .

    .

    (), .

    . ()

    11

  • (),

    .

    .

    .

    (, ) .

    ,

    (, ). ,

    .

    ,

    .

    .

    1.2

    1.1

    ,

    .

    (host - ),

    (graphics processing unit GPU).

    .

    , ,

    ,

    , ,

    12

  • , .

    -

    .

    , .

    . ,

    .

    , .

    .

    ,

    , .

    ()

    .

    .

    ,

    ,

    .

    ( ) .

    ,

    ,

    . , -

    , ,

    , -, ,

    .

    13

  • , , ,

    . , ,

    .

    . ,

    ,

    .

    , ,

    .

    , ,

    . ,

    ,

    .

    ,

    .

    .

    ()

    . ,

    ,

    ().

    .

    .

    .

    ,

    14

  • .

    :

    ,

    .

    ,

    .

    ,

    .

    ,

    .

    .

    . ,

    , ,

    . (tessellation).

    .

    , .

    .

    ,

    .

    . ,

    ,

    . -,

    15

  • , (),

    . -,

    () ,

    . , -,

    ,

    ,

    .

    . ,

    . 1 ,

    . a b (a)

    (b) .

    b

    a

    a*

    b*

    , V

    V

    x

    z

    z

    x

    V

    a*

    b*

    a

    b

    , z

    1

    16

  • ,

    .

    ,

    ,

    .

    [1].

    .

    , ,

    , .

    ,

    . ,

    . ,

    .

    ,

    () , ,

    .

    .

    ()

    .

    . ,

    , .

    .

    , ,

    -, -, -.

    17

  • , ,

    .

    , , ,

    .

    ,

    .

    2

    2.1

    ,

    ,

    .

    ,

    .

    , ,

    .

    .

    , ( )

    ,

    ( ) .

    ,

    , P

    P ,

    18

  • , P

    , .

    ,

    ,

    .

    .

    x, y.

    , ,

    :

    ,

    ,

    02221

    01211

    ++=

    ++=

    yytxtyxytxtx

    (2.1)

    x, y , x, y

    ; tij, x0, y0 ,

    .02221

    1211 tttt

    .

    . tij, x0,

    y0 ,

    .

    ,

    . ,

    , .

    19

  • ,

    x0 y0

    .

    (xOy) (

    xOy) :

    ,

    ,

    0

    0

    +=

    +=

    yyyxxx

    x0, y0 xOy xOy .

    ( )

    ()

    ( ) :

    ,cossin,sincos

    yxyyxx

    +=

    =

    .

    , , ,

    x, y, x, y .

    . ,

    ( ).

    , , ykyxkx yx ==

    20

  • k x , k y 0 .

    k x, y > 1 , k x, y < 1

    , k x k y .

    ()

    , .

    , ,

    :

    .2cos2sin,2sin2cos

    yxyyxx

    =

    +=

    2. ,

    ,

    (2.1).

    P*

    x*p x*xp

    yp

    y*p

    P

    0*

    y*

    x*xp

    yp P

    0*

    y*

    y*p P*

    x*p

    x*px*

    xpyp

    y*pP

    0*

    y*

    xf

    y

    xxp

    P

    0*

    y

    Y*0

    x*0

    P ypy*p

    x*p x*

    y*

    a

    2 (), (), () ()

    21

  • .

    -,

    () . -,

    ( ).

    :

    ,Tyxyx = (2.2)

    T .

    x, y

    - yx T. T

    (2.1),

    :

    .

    00

    2212

    2111

    =

    yxtttt

    T

    (2.2). ,

    .

    (2.2) -

    yxyx , ,

    .

    .

    2.2 .

    22

  • n- ,

    , (n+1)- ,

    .

    .

    P

    (x, y).

    [w1 w2 w3],

    P :

    .,3

    2

    3

    1 ywwx

    ww

    == (2.3)

    w3 .

    ,

    (x,y,w), 3.

    P (xh,yh,h)

    P (x,y, ) 1

    P(x,y)

    y

    x x

    w

    1

    0

    y

    w=1

    3

    23

  • P(x,y) w1, w2, w3 , (0, 0, 0)

    P (x, y, 1). , P

    P, P c (xh, yh, h), h

    . ,

    (2.3).

    .

    : (x : y : 1), h=1 ,

    : (w1 : w2 : w3).

    ( w1, w2, w3)

    ( x, y, z),

    , ,

    , A(xA:yA:1).

    ,

    , , KA =| xA yA 1|.

    :

    100

    11

    00

    2212

    2111

    =

    yxtttt

    yxyx

    K = K T, (2.4)

    .

    K T (2.1)

    1=1.

    ,

    .

    24

  • , (translation )

    :

    ,1010001

    00

    =

    yxTR

    (rotation)

    ,1000cossin0sincos

    =RT

    (scaling)

    ,1000000

    y

    x

    mm

    SC =

    (reflection)

    .10002cos2sin02sin2cos

    =RF

    , ,

    x (=0) y (=90).

    ,

    (2.4) .

    .

    ,

    ,

    [2].

    25

  • 1. xc, yc.

    RT ,

    ,

    . , RT,

    , ,

    . (x : y : 1)

    . ,

    TR.

    RT.

    . ,

    () ,

    .

    .

    . , ( )

    : ,

    .

    ,1010001

    1000cossin0sincos

    1010001

    11

    CCCC yxyxyxyx

    =

    : .21 TRRTTRKK =

    ()

    26

  • . ,

    (2.4)

    .

    2. P, P

    (xc, yc).

    ( ),

    ( ).

    :

    , .

    .

    RF ,

    ,

    . ,

    ( ).

    :

    .1010001

    100010001

    100010001

    1010001

    11

    CCCC

    PPPP

    yxyxyxyx

    =

    ( )

    ,

    .

    3. xc, yc

    .

    27

  • ,

    1, .

    ,

    :

    .100020002

    =SC

    :

    .21 SCTRRTTRKK =

    , , , TR3

    . ,

    .

    .

    !

    -. -

    . .

    [2].

    , (2.4), K T

    , . ,

    ,

    , ,

    . ,

    1 :

    28

  • .1100

    1001

    1000cossin0sincos

    1001001

    1yx

    yx

    yx

    yx

    C

    C

    C

    C

    =

    3

    3.1

    . ()

    ,

    , .

    ,

    .

    (),

    .

    , x0y (

    z=0). ,

    ,

    . ,

    ,

    , .

    , . ,

    29

  • ,

    1.2.

    : , ,

    .

    .

    ,

    . ,

    ,

    ,

    ,

    .

    .

    , 4. x

    y, y z, z x ,

    .

    z

    z

    y

    yx x

    4 () ()

    30

  • ,

    xOy, V

    z, 5.

    z*

    x*

    y*P(x*,y*,z*)

    O*

    x*s

    Ps

    y*s

    Pxz

    Pyz

    V z *(0,0,- )v

    5

    . ,

    ,

    .

    , ,

    , .

    3.2

    ,

    , .

    ,

    , ,

    31

  • x, y, z , , , ,

    x*, y*, z*,

    ,

    ,

    ,

    0333231

    0232221

    0131211

    +++=

    +++=

    +++=

    zztytxtzyztytxty

    xztytxtx (3.1)

    tij, 000 ,, zyx ,

    .0

    333231

    232221

    131211

    ttttttttt

    : , ,

    .

    . ,

    ,

    .

    , ,

    ,

    , .

    , :

    (x: y: z: 1), (xh: yh: zh: h), h0

    .

    :

    ,11 Tzyxzyx = (3.2)

    .

    (

    TR):

    32

  • ,1010000100001

    000

    =

    zyx

    TR

    000 ,, zyx .

    ,

    .

    , ( )

    .

    tij (3.1)

    ,

    . 6

    x (xyz).

    , 6

    , , .

    z*

    y*

    x*

    x

    ,

    . ,

    33

    6

  • , .

    , (3.1) t11 x

    x* , t12 x y*

    3.1.

    3.1

    x y z

    x t11 t12 t13y t21 t22 t23z t31 t32 t33

    ,

    .

    1000000

    332313

    322212

    312111

    ttttttttt

    RT =

    : x ( ), y (), z (), 7. ,

    .

    , , ( ) ,

    .

    34

  • .

    (3.2) RTx,

    RTy, RTz,

    .

    . :

    ,

    10000cossin00sincos00001

    =xRT

    ,

    10000cos0sin00100sin0cos

    =yRT

    ,

    1000010000cossin00sincos

    =zRT

    -:

    35

    z

    yx

    7

  • ,10000cossin00sincos00001

    =xRT

    ,

    10000cos0sin00100sin0cos

    =yRT

    .

    1000010000cossin00sincos

    =zRT

    ,

    ( )

    SC:

    ,

    1000000000000

    z

    y

    x

    kk

    k

    SC =

    kx, ky, kz - .

    ,

    ,

    . ,

    .

    36

  • , x,y,z

    xy, ,

    5. PS P . PS s.

    V(0,0, vz )

    )1(

    *

    +

    =

    v

    s

    zz

    xx

    )1(

    *

    +

    =

    v

    s

    zz

    yy (3.3)

    .0* =sz

    5,

    xz yz. PXZ , PYZ

    .

    :

    .

    1000

    1000

    00100001

    =

    vzPR

    37

  • ,

    ,

    . , PR -

    1 zyx ,

    ( )hhzhyhx sss ::: :.1 ,0 , , +

    ====

    vsss z

    zhhzyhyxhx

    h ( ) sss zyx ,, , (3.3),

    PR.

    , vz ,

    .

    ()

    .

    , . ,

    xy :

    .

    10 00010000 1000 01

    =xyRF

    ,

    (

    );

    ;

    38

  • .

    , ,

    (

    ).

    . ,

    , :

    - -.

    -

    .

    1.

    (xA, yA, zA) :

    ,

    (xC, yC, zC)

    .

    V (0,0, vz ),

    , .

    .

    . ,

    ,

    44.

    ,

    39

  • ,

    1, hhzhyhx sAsAsA .

    .

    V,

    x, y, z.

    z.

    z, .

    .

    , . ,

    , z

    . ,

    .

    RTz

    , .

    ,

    .

    .

    . ,

    , .

    ,

    .

    40

  • , ,

    , .

    . , , ,

    ,

    .

    ,

    , :

    ( ) ( )( ) ( )

    .

    10 0 0 010 0 00 10 00 0 1

    1010000100001

    1000010000cos sin 00sincos

    1010000100001

    1000

    1000

    00100001

    1

    =

    CCC

    CCCv

    AAAsAsAsA

    zyx

    zyxz

    zyxhhzhyhx

    , ,

    .

    2.

    , -

    x, y, z, www zyx 000 ,, .

    x, y, z vvv zyx 000 ,,

    41

  • . -.

    . .

    ,

    .

    ,

    , ,

    . ,

    .

    , ,

    . ,

    , ,

    , , ,

    .

    ().

    - 1ppp zyxKP = .

    .

    .

    ,

    ,

    .

    x, y, z ooo zyx 000 ,, .

    - KO :

    42

  • .1010000100001

    1000010000cossin00sincos

    10000cos0sin00100sin0cos

    10000cossin00sincos 00001

    1

    000ooo

    zz

    zz

    yy

    yy

    xx

    xxooo

    zyx

    KPzyxKO

    ==

    (3.4)

    ,

    . (

    )

    .

    . -

    W, :

    .

    1010000100001

    1000010000cossin00sincos

    10000cos0sin00100sin0cos

    10000cossin00sincos 00001

    1

    000www

    zz

    zz

    yy

    yy

    xx

    xxwww

    zyx

    KOzyxKW

    ==

    (3.5)

    .

    , - KW,

    43

  • ,

    . - KV:

    .

    1010000100001

    1000010000cossin00sincos

    10000cos0sin00100sin0cos

    10000cossin00sincos 00001

    1

    000vvv

    zz

    zz

    yy

    yy

    xx

    xxvvv

    zyx

    KWzyxKV

    ==

    (3.6)

    , ()

    .

    , - KS

    , :

    ,

    1000

    1000

    00100001

    ==

    vzKVhhzhyhxKS (3.7)

    vz , ,

    .

    , .

    , KS,

    h,

    44

  • , z

    .

    (3.4)

    , ,

    . ,

    KO

    ( KP). (3.5),(3.6)

    , ,

    . KW (3.5) (3.6),

    KV (3.6) (3.7),

    (

    ) .

    , . ,

    KO ,

    ,

    . , ,

    .

    4

    4.1

    45

  • (160:160:8), 100 .

    12 .00 .12 .

    .

    . ( ) 640480.

    .

    . -

    , , ,

    . , 12 . 00

    . 00 . .

    , 12 .00 .12 . ,

    .

    : x=115, y=51.

    4.2

    (1600:1200:10)

    =0,

    =120 90 .

    . ,

    . : 640480.

    400.

    .

    : x= 240, y=40.

    46

  • 4.3

    (50,100) ,

    y=x+20,

    (50,100) 2 . ,

    . : 640480.

    400 .

    : x=110, y=40.

    .

    ( ).

    , .

    ,

    .

    ,

    .

    4.4

    .(300,300,400)

    , = 50.

    . , .

    : 640480.

    400 .

    .

    47

  • : x=150, y=50.

    4.5

    ( 4000:4000:

    6000:40).

    .

    (0,240) = 45

    .

    , .

    : 640480.

    400 . .

    . ,

    ,

    . ,

    .

    : x= 170, y= 71.

    4.6

    ( 400:320:400:1) ,

    x 2 ,

    y 3 (30)

    .

    xm=20, ym= 20, xc=0, yc=50.

    , .

    48

  • : 640480. : 0,0,400.

    .

    : x= 81, y=86.

    1. ..

    . . :

    , 2008. 60 .

    2. ..

    : . .: , 2009. 224 .

    3. . .

    OpenGL, 2 .: . . .: , 2001.

    592 .

    49

    .. 2011

    681.3 ..

    4.2 4.4 4.5 4.61. .. . . : , 2008. 60 .