Вы находитесь на странице: 1из 49

..

2011

681.3

..
.
. : , 2011. 50 .

..................................................................................................... 4
1 ..............................

1.1 ................... 7
1.2 ........................................... 12
2 .................................... 18
2.1 ............................................................... 18
2.2

....................................................................... 22
3

............................... 29
3.1 ................. 29
3.2 ..................................... 31

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

1951 ,

()

:
, ,
- ,
.

60- ,
( )

Sketchpad

(1963 .), General Motors


(1964 .).

,
.
, , , ,

,
,

, ,

( ), (
), ,
( ), (
), ( ,
) .


, , ,
. ,
, : ()
, ,
.

. ,
() ,
(). ,
, ;
,
;
,
,
.
,
. ,
, ,
:

, , );
(

);
(

, , );

,
);

( , ,

, , );

);
( , ..

).

, .

. ,

.

.
, (
).
OpenGL
DirectX.


,
.

1.1

,
- , .

()
.

.

(),

.
() .
().
, .

.

. .
, () , (,
) .
,

. ,
, () ()

. .

.
.
()
, ,
. ,
( )
.
,
, ,
.

.

, ,
.

: ,
.

.

. ()
: , , , .


[1].
,
:
. ,
().
( rendering)
.

().

T&L (transformation
and lighting),
,
.
. ( )

.
(rasterization)
,

.

.
, .
. ,

10

,
.

.
,

.
( )
- .

,
.
( ) .

, .
,

.
( ),
.

.
()
. .

, .
.

11

.
(,
),

.

.

, . ,
,
() , .
,
.

, ,
.
.


(), .

. ()

12

(),
.
.
.
(, ) .


(, ). ,
.
,
.


.

1.2

1.1

,
.
(host - ),
(graphics processing unit GPU).

.
, ,
,
,

13

, .

, .

.

.

, .
.
,
, .
()
.

.

,
,
.
( ) .
,
,
. , , ,
, -, ,
.

14

, , ,

. , ,
.
. ,
,
.
, ,
.
, ,
.


,
.
,
.
.
()

. ,

().


.
.
.
,

15

.
:
,
.
,
.
,
.

,
.

.
. ,
,

. (tessellation).

.
, .

.

,
.

,
. -,

16

, (),
. -,
() ,
. , -,
,
,
.

. ,

. 1 ,

. a b (a)
(b) .
z

V
a

b*

a*
V

b*

a*

17

,

.

,
.
[1].

.

, ,
, .
,
.

. ,
.
,
() , ,
.
.
()
.
. ,
, .
.
, ,
-,

-,

-.

18

, ,
.
, , ,
.

,
.

2

2.1
,
,
.
,
.

.
.
, ( )
,
( ) .
,
, P
P ,

19

, P

,
,
.

.
x, y.
, ,
:

x = t11 x + t12 y + x 0 ,
y = t 21 x + t 22 y + y 0 ,

(2.1)

x, y , x, y

;
tij, x0, y0 ,
t11 t12
0.
t21 t22

.

. tij, x0,
y0 ,
.

,
. ,
, .

20

,
x0 y0
.
(xOy) (
xOy) :

x = x + x0 ,
y = y + y0 ,
x0, y0 xOy xOy .

()
( ) :

x = cos x sin y ,
y = sin x + cos y ,
.
, , ,
x, y,
x, y .


. ,

x = k x x ,

).

y = k y y ,

21

k x , k y 0 .
k

x, y

> 1 , k

x, y

< 1

, k x k y .

()

, .
, ,
:

x = cos 2 x + sin 2 y ,
y = sin 2 x cos 2 y .

2. ,
,
(2.1).
y

y*

y*p
yp
y*
Y*0
y*p

0*

xp
xp
P

x*p

0*

x*p

x
f
x*

yp

x*0

x*

y*

y*

y*p

P*

yp

0*

xp

x*p

x*

yp

0*

x*p

y*p

P*

xp

x*

2 (),
(), () ()

22

.
-,
() . -,

( ).
:
x

y = x

y T,

(2.2)

T .
x, y
- x y T. T

(2.1),

:
t11 t 21
T = t12 t 22 .
x0

y0


(2.2). ,
.
(2.2)
x

y , x

.
.

2.2 .

23

n- ,
, (n+1)- ,
.
.
P
(x, y).
[w1 w2 w3],
P :
w1
= x,
w3

w2
= y.
w3

(2.3)

w3 .

,
(x,y,w), 3.
w

P (xh,yh,h)
w=1

P(x,y,1)
1

y
y

P(x,y)
x

24

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

:
x

1= x

K = K T,

t11 t 21
1 t12 t 22
x0 y0

0
0
1

(2.4)

.
K T (2.1)
1=1.
,
.

25

, (translation )
:
1
TR = 0
x0

0
1
y0

0
0,
1

(rotation)
cos
RT = sin
0

sin
cos
0

0
0,
1

(scaling)
mx
SC = 0
0

0
my
0

0
0,
1

(reflection)
cos 2
RF = sin 2
0

sin 2
cos 2
0

0
0.
1

, ,
x

(=0)

y (=90).

,
(2.4) .
.
,

[2].

26

1.
xc, yc.
RT

,
. , RT,
, ,
. (x : y : 1)
. ,
TR.
RT.
. ,
() ,
.
.

. , ( )

: ,

.
x

1= x

1
y 1 0
xC

0
1
yC

0
cos
0 sin
1
0

sin
cos
0

0 1
0 0
1 xC

0
1
yC

0
0,
1

K = K TR1 RT TR2 .

()

27

. ,
(2.4)
.
2. P, P
(xc, yc).

( ),

).

, .
.
RF

,
. ,
( ).

:
x

1 = xP

yP

1
1 0
xC

0
1
yC

0 1 0 0 1 0 0 1
0 0 1 0 0 1 0 0
1 0 0 1 0 0 1 xC

0
1
yC

0
0.
1

( )
,
.
3.
xc, yc
.

28

,
1, .
,
:
2 0 0
SC = 0 2 0 .
0 0 1

:
K = K TR1 RT TR2 SC.


, , , TR3

.
!

-. . .

[2].
, (2.4), K T
, . ,
,

, ,
. ,
1 :

29

x
1 0

y = 0 1
1
0 0

xC cos
yC sin
1
0

sin
cos
0

0 1 0 xC x
0 0 1 yC y .
1 0 0
1 1

3.1

.
,

()

, .
,
.
(),
.
, x0y (
z=0). ,

. ,

,
, .

,

. ,

30

,
1.2.

: , ,
.
.

,
. ,

,
,
.


.
, 4. x
y, y z, z x ,
.
z

4 () ()

31

,
xOy, V
z, 5.

y*

Pyz

P(x*,y*,z*)

y*s
O*
V (0,0,-z v*)

z*

Ps

Pxz

x*
s
x*


. ,
,

, ,
, .

3.2
,
, .
,
, ,

32

x, y, z , , , ,
x*, y*, z*,

x = t11 x + t12 y + t13 z + x0 ,


y = t21 x + t22 y + t23 z + y0 ,

(3.1)

z = t31 x + t32 y + t33 z + z0 ,

tij, x0 , y0 , z0 ,
t11
t 21

t12
t 22

t13
t 23 0.

t 31

t 32

t 33


: , ,
.
. ,
,
.
, ,

, .
, :
(x: y: z: 1), (xh: yh: zh: h), h<>0
.
:
x

1= x

z 1T,

(3.2)

.
(
TR):

33

1
0
TR =
0
x 0

0
1
0
y 0

0
0
1
z 0

0
0
,
0
1

x0 , y0 , z0 .
,
.
, ( )
.
tij

(3.1)

,
. 6
x (xyz).

, 6
, , .
y*

x*

z*

6
,
. ,

34

, .
, (3.1) t11 x
x* , t12 x y*
3.1.
3.1

x
y
z


x
y

t11
t21
t31

t13
t23
t33

t12
t22
t32


,

t11 t 21 t31
t
t
t
RT = 12 22 32
t13 t23 t33
0 0 0

0
0
.
0
1


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

( ) ,

.

35


.
(3.2) RTx,
RTy, RTz,
.
. :
1
0
RTx =
0
0

0
cos
sin
0

cos
0
RT y =
sin
0
cos
sin
RTz =
0
0

0
1
0
0

0
sin
cos
0

0
0
,
0
1

sin
0
cos
0

0
0
,
0
1

sin
cos
0
0

0
0
1
0

0
0
,
0
1

-:

36

1
0
0 cos
RTx =
0 sin
0
0
cos
0
RTy =
sin
0
cos
sin
RTz =
0
0

0
sin
cos
0

0
0
,
0
1

0 sin
1
0
0 cos
0
0

0
0
,
0
1

sin
cos
0
0

0
0
1
0

0
0
.
0
1

,
( )

SC:
kx
0
SC =
0
0

0
ky
0
0

0
0
kz
0

0
0
,
0
1

kx, ky, kz - .
,

,
. ,

.

37

, x,y,z
xy,

5. PS
P .

s.

PS


V(0,0, zv )

xs

ys

x
=
z
(1 + )
zv
y
=
z
(1 + )
zv

(3.3)

zs = 0 .

5,
xz yz. PXZ , PYZ
.

:

PR =

1 0 0
0 1 0

0 0 0

0 0 0

0
0
1
zv
1

38

,
,
. , PR
x

1 ,

( xs h : ys h : z s h : h ) :
xs h = x ,

ys h = y ,

z
h = + 1 .
zv

zs h = 0,

h ( xs , ys , zs ) ,

(3.3),
PR.
,

zv ,

.
()

, . ,
xy :
1
0
RFxy =
0
0

0 0
1 0
0 1
0 0

0
0
.
0
1


,

(
);
;

39

.
, ,

(
).

. ,
, :
- -.
-

.
1.

(xA, yA, zA)

,
(xC, yC, zC)
.

V (0,0, zv ),

, .


.
. ,
,
44.
,

40

,
1,

x sA
h

y sA
h

z sA
h h.

.
V,
x, y, z.

z.

z, .
.
, . ,

, z
. ,
.
RTz
, .
,
.

.

. ,
,

41

, ,
,


. , , ,
,
.
,
, :

x sA
h

y sA
h z sA
h h = xA

cos( )
sin ( )

0
0

sin (
cos(
0
0

)
)

0
0
1
0

yA

0
0

0
1

zA 1

1
0
0
xC

0
1
0
y C

1 0 0
0 1 0

0 0 0

0 0 0
0
0
1
z C

0
0

0
1

0
0
1
z v
1

1
0
0
xC

1
0 0
0 1 0
0
0 1
0
0
0

0
1
0
y C

0
0
1
z C

0
0

0
1

0
0
.
0
1


, ,
.
2.

, -

x, y, z,
x0w , y0w , z0w .
v
v
v
x, y, z x0 , y0 , z0

42

. -.
. .
,
.
,
, ,
. ,
.

, ,
. ,
, ,
, , ,
.


().
-

KP = x p

yp

zp 1 .

.
.
,
,
.

o
o
o
x, y, z x0 , y0 , z0 .

- KO :

43

KO = x o

yo

z o 1 = KP

cos

0
0

sin
0

0 cos

0
sin

cos
0

0 sin
1
0

sin

0
0

cos
0

0
0

0
1

(3.4)
cos z
sin z

0
0

sin z
cos z
0
0

0
0
1
0

0
0

0
1

0
x 0o

0
y 0o

1
z 0o

0
1

,
. (
)

.
. W, :

KW = x w

yw

zw

1
0
1 = KO
0
0

0
cos
sin
0

x
x

0
sin
cos
0

x
x

0 cos
0
0

0 sin
1
0

0
1
0
0

sin y
0
cos y
0

0
0

0
1

(3.5)
cos z
sin z

0
0

sin
cos
0
0

z
z

0
0
1
0

0
0

0
1

1
0
0
x 0w

0
1
0
y 0w

0
0
1
z 0w

0
0
.
0
1

.
, - KW,

44

. - KV:

KV = x v

yv

z v 1 = KW

0 cos

cos

sin

sin

cos

0 sin

0
y

sin

cos

0
0

(3.6)
cos z
sin z

0
0

sin z
cos z
0
0

0
0
1
0

0
0

0
1

1
0
0
x 0v

0
1
0
y 0v

0
0
1
z 0v

0
0
.
0
1

, ()
.
, - KS
, :

KS = x h

y h z h h = KV

1 0 0
0 1 0

0 0 0

0 0 0

0
0
1
z v
1

(3.7)

z v , ,

.
, .
, KS,
h,

45

, z

(3.4)

, ,
. ,
KO
( KP). (3.5),(3.6)

, ,
. KW (3.5) (3.6),
KV (3.6) (3.7),

) .
, . ,
KO ,

,
. , ,
.

4.1

46


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

47

4.3
(50,100) ,
y=x+20,
(50,100) 2 . ,
. : 640480.
400 .
: x=110, y=40.

.
( ).
, .

.
,
.
4.4

.(300,300,400)

, = 50.
. , .
: 640480.
400 .
.

48

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


, .

49

: 640480. : 0,0,400.
.
: x= 81, y=86.

1.

..

. . :
, 2008. 60 .
2.

..

: . .: , 2009. 224 .
3. . .
OpenGL, 2 .: . . .: , 2001.
592 .

Оценить