ゲームグラフィックス特論 第1回

72
ǞȒȃǜȊǺǑǭǛǥùŋ Ę1^ ȍȐǫȋȐǜǶǒǼȊǒȐ

Upload: -

Post on 14-Jun-2015

7.210 views

Category:

Education


3 download

DESCRIPTION

レンダリングパイプライン

TRANSCRIPT

Page 1: ゲームグラフィックス特論 第1回

1

Page 2: ゲームグラフィックス特論 第1回

2

Page 3: ゲームグラフィックス特論 第1回

•  •  3DCG

•  •  OpenGL GLSL (OpenGL Shading Language)

• •  3D • 

•  3DCG

•  GPU

3

Page 4: ゲームグラフィックス特論 第1回

•  • 

•  : 0 : 2 : 3: 4 : 5

•  40% 60%• 

•  • 

•  • 

•  • 

4

Page 5: ゲームグラフィックス特論 第1回

• • 

• • 

• 

• • 

•  • …

5

Page 6: ゲームグラフィックス特論 第1回

•  •  (CG)

•  • 

•  • 

6

Page 7: ゲームグラフィックス特論 第1回

CG

7

Page 8: ゲームグラフィックス特論 第1回

•  (CG)•  3DCG

• • • 

• • • 

8

Page 9: ゲームグラフィックス特論 第1回

•  3DCG • 

• 

• • 

• 

• •  (interaction)

•  CG

9

Page 10: ゲームグラフィックス特論 第1回

CG

Interactive Phong

10

Page 11: ゲームグラフィックス特論 第1回

CG • 

• 

• •  3DCG

• • 

• • 

11

Page 12: ゲームグラフィックス特論 第1回

CG • 

•  …

• •  …

• • •  API •  …

12

Page 13: ゲームグラフィックス特論 第1回

• • 

• • 

• 

• •  API / •  / • 

• 

13

Page 14: ゲームグラフィックス特論 第1回

14

Page 15: ゲームグラフィックス特論 第1回

アプリケーション(やりたいこと)

ハードウェア(やれること)

アプリケーション(やりたいこと)

ハードウェア(やれること)

アルゴリズムセマンティックギャップ(隔たり)

15

Page 16: ゲームグラフィックス特論 第1回

•  • 

•  •  •  •  ACM CORE, ISO GKS, GKS-3D, PHIGS, PHIGS+, …

•  •  •  CPU (API - Application Program Interface) •  OpenGL, DirectX, …

• OpenGL/DirectX •  •  API

16

Page 17: ゲームグラフィックス特論 第1回

アプリケーション(やりたいこと)

ハードウェア(やれること)

アプリケーション(やりたいこと)

ハードウェア(やれること)

アルゴリズム

グラフィックスライブラリ

アルゴリズム

アプリケーション(やりたいこと)

ハードウェア(やれること)

グラフィックスライブラリ

アルゴリズム

アルゴリズム

17

Page 18: ゲームグラフィックス特論 第1回

GPU

CPU側に実装

GPU側に実装

アプリケーション(やりたいこと)

アルゴリズム

アルゴリズム

グラフィックスライブラリ

プログラマブルシェーダ

固定機能ハードウェア

グラフィックスライブラリは GPU を対象としたときに機能が整理された

ハードウェア APIとしての役割に集中する

ハードウェア(やれること)

アルゴリズム

18

Page 19: ゲームグラフィックス特論 第1回

API •  API

• 

•  •  •  • 

•  • 

•  API •  OpenSceneGraph, SceniX, OpenInventor (obsolete), …

•  •  CryENGINE, Unreal Engine, Unity, MascotCapsule, OROCHI, chidori, Irrlicht,

OGRE, Blender Game Engine, BISHAMON ( ) …

19

Page 20: ゲームグラフィックス特論 第1回

アプリケーション(やりたいこと)

アプリケーション(やりたいこと)

アプリケーション(やりたいこと)

ハードウェア(やれること)

アルゴリズム

アルゴリズム

アルゴリズム

ミドルウェア

ハードウェア API

プログラマブルシェーダ

固定機能ハードウェア

20

Page 21: ゲームグラフィックス特論 第1回

21

Page 22: ゲームグラフィックス特論 第1回

図形情報

材質情報

光源情報

視点情報

画像情報

22

Page 23: ゲームグラフィックス特論 第1回

•  •  • 

•  • 

• 

•  •  • 

•  • 

• 

• 

23

Page 24: ゲームグラフィックス特論 第1回

• • 

• 

•  •  fps (Frames Per Second)

•  1 fps – •  8 fps – •  15 fps – •  60 fps –

•  • 

•  •  •  …

24

Page 25: ゲームグラフィックス特論 第1回

•  fps • • 

• Hz • • 

•  60Hz •  fps 60

• 

•  fps 60Hz •  30fps, 20fps, 15fps, 12fps, 10fps, •  1 16ms 60fps 17ms 30fps

25

Page 26: ゲームグラフィックス特論 第1回

• • 

•  • 

•  •  • 

• •  PC •  3D

• GPU (Graphics Processing Unit) •  • 

26

Page 27: ゲームグラフィックス特論 第1回

• • 

• • • 

27

Page 28: ゲームグラフィックス特論 第1回

1 Cycle

1/3 Cycle 1/3 Cycle 1/3 Cycle

Not Pipelined

Pipelined

1 Operation/Cycle

3 Operations/Cycle

28

Page 29: ゲームグラフィックス特論 第1回

1/4 Cycle 1/2 Cycle 1/4 Cycle

2 Operations/Cycle

1/3 Cycle 1/3 Cycle 1/3 Cycle

3 Operations/Cycle

29

Page 30: ゲームグラフィックス特論 第1回

• 

30

Page 31: ゲームグラフィックス特論 第1回

CPU

31

Page 32: ゲームグラフィックス特論 第1回

• • 

• 

• • 

• 

• 

•  •  • 

32

Page 33: ゲームグラフィックス特論 第1回

• • 

• • 

•  • 

• 

•  • 

• 

• 

33

Page 34: ゲームグラフィックス特論 第1回

•  •  • 

•  CPU•  (GPU)

• 

• •  …

• • 

34

Page 35: ゲームグラフィックス特論 第1回

35

Page 36: ゲームグラフィックス特論 第1回

•  •  …

•  • 

• • 

• •  • 

36

Page 37: ゲームグラフィックス特論 第1回

37

Page 38: ゲームグラフィックス特論 第1回

Single-Pipe

Multi-Pipe

38

Page 39: ゲームグラフィックス特論 第1回

•  •  • 

• • • 

• • •  • 

• • 

39

Page 40: ゲームグラフィックス特論 第1回

40

Page 41: ゲームグラフィックス特論 第1回

41

Page 42: ゲームグラフィックス特論 第1回

x

y

z x

y

z

x

y

z

x

y

z

42

Page 43: ゲームグラフィックス特論 第1回

• • 

• • • • 

•  •  •  GPU

43

Page 44: ゲームグラフィックス特論 第1回

44

Page 45: ゲームグラフィックス特論 第1回

•  •  (Normalized Device Coordinate, NDC)

(-1,-1,-1), (1,1,1) x, y, z • 

• • 

• • 

45

Page 46: ゲームグラフィックス特論 第1回

標準ビューボリューム

視野錐台 (View Frustum)

直交投影(Orthographic Projection)

透視投影(Perspective Projection)

1

-1

1-1

1

-1

ビューボリューム (View Volume)

(Canonical View Volume)

46

Page 47: ゲームグラフィックス特論 第1回

47

Page 48: ゲームグラフィックス特論 第1回

1

-1 1

-1

O

1

-1 1

-1

O

48

Page 49: ゲームグラフィックス特論 第1回

49

Page 50: ゲームグラフィックス特論 第1回

50

Page 51: ゲームグラフィックス特論 第1回

1

-1 1

-1

O

x

y

w

hx�

y�

51

Page 52: ゲームグラフィックス特論 第1回

52

Page 53: ゲームグラフィックス特論 第1回

53

Page 54: ゲームグラフィックス特論 第1回

• • 

•  • 

•  •  → •  →

•  • 

•  • 

•  • 

•  …

54

Page 55: ゲームグラフィックス特論 第1回

y1 < y0

dy2 y2 − y0

N

Y

N

BEGIN

t� x0x0� x1x1� tt� y0y0� y1y1� t

y2 < y0Y

Nt� x0x0� x2x2� tt� y0y0� y2y2� t

y2 < y1Y

Nt� x1x1� x2x2� tt� y1y1� y2y2� t

dy2 > 0

Ydx2� x2 − x0

Y

mx2� dx2 / dy2N

mx2� dx2 − dy2 + 1 / dy2

ax2� 2 mx2dy2 − dx2bx2� 2dy2ex2� dy2

2

dx1� x1 − x0

Y

mx1� dx1 / dy1N

mx1� dx1 − dy1 + 1 / dy1

ax1� 2 mx1dy1 − dx1bx1� 2dy1ex1� dy1

dx1� x2 − x1

Y

mx1� dx1 / dy1N

mx1� dx1 − dy1 + 1 / dy1

ax1� 2 mx1dy1 − dx1bx1� 2dy1ex1� dy1

dy1� y1 − y0

dy1 > 0N

Y

dy1� y2 − y1

dy1 > 0N

Y

2 4

hline(hx1, hx2, y, c)

y� y + 1

hx1� hx1 + mx1ex1� ex1 + ax1

Y

Nhx1� hx1 + 1ex1� ex1 + bx1

Y

Nhx2� hx2 + 1ex2� ex2 + bx2

hx2� hx2 + mx2ex2� ex2 + ax2

dy1� dy1 − 1

dy1 > 0

Y

N 4

dx1 > 0=

hx1� x0 hx1� x1

dx2 > 0= dx1 > 0=

hx2� x0

ex1 < 0=

ex2 < 0=

y� y0

4

hline(hx1, hx2, y, c)

y� y + 1

hx1� hx1 + mx1ex1� ex1 + ax1

Y

Nhx1� hx1 + 1ex1� ex1 + bx1

Y

Nhx2� hx2 + 1ex2� ex2 + bx2

hx2� hx2 + mx2ex2� ex2 + ax2

dy1� dy1 − 1

dy1 > 0

Y

ex1 < 0=

ex2 < 0=

6

3

31

1

5

5

) (

N END�

55

Page 56: ゲームグラフィックス特論 第1回

• • 

• • 

56

Page 57: ゲームグラフィックス特論 第1回

McCool, M. D., Wales, C., Moule, K., Incremental and Hierarchical Hilbert Order Edge Equation Polygon Rasterization, Proceedings of the ACM SIGGRAPH/EUROGRAPHICS workshop on Graphics hardware, ACM, pp. 65-72, 2001

57

Page 58: ゲームグラフィックス特論 第1回

58

Page 59: ゲームグラフィックス特論 第1回

•  •  • 

•  • 

•  • 

• 

59

Page 60: ゲームグラフィックス特論 第1回

60

Page 61: ゲームグラフィックス特論 第1回

• •  • • •  • 

• 

• • • 

61

Page 62: ゲームグラフィックス特論 第1回

• • 

• • 

• • 

•  • 

• • 

• • 

62

Page 63: ゲームグラフィックス特論 第1回

63

Page 64: ゲームグラフィックス特論 第1回

64

��

�������� ���

�����������

��������� �

!�"��

Page 65: ゲームグラフィックス特論 第1回

• • 

• 

•  • 

• • 

• • 

•  (FBO) •  • 

65

Page 66: ゲームグラフィックス特論 第1回

• • 

• • 

• • 

• • 

• 

66

Page 67: ゲームグラフィックス特論 第1回

Z • • 

• • • 

• •  • 

67

Page 68: ゲームグラフィックス特論 第1回

GeForce 256

68

Page 69: ゲームグラフィックス特論 第1回

http://www.hc.t.u-tokyo.ac.jp/~kaki/paper/VSJ/VisFrontier/OpenGLarchiAnswers.pdf

69

Page 70: ゲームグラフィックス特論 第1回

GeForce 256 • 

• •  Hardware T & L (Transform and Lighting) • 

• GPU (Graphics Processing Unit)•  CPU

72

Page 71: ゲームグラフィックス特論 第1回

GeForce 256 • 

• •  • 

• • • • 

73

Page 72: ゲームグラフィックス特論 第1回

•  GitHub •  https://github.com/tokoik/ggsample01

•  Web •  Web

•  http://www.wakayama-u.ac.jp/~tokoi/lecture/gg/ • 

•  Linux / Windows / Mac OS X •  OpenGL 3.2 •  OpenGL 3.2 / DirectX 10

• 

• 

OpenGL

76