1
2
•
• 3DCG
•
• OpenGL GLSL (OpenGL Shading Language)
•
• 3D
•
• 3DCG
• GPU
3
•
•
• : 0 : 2 : 3
: 4 : 5
• 40% 60%
•
•
•
•
•
•
•
4
•
•
•
•
•
•
•
•
• …
5
•
• (CG)
•
•
•
•
6
CG
7
• (CG)
• 3DCG
•
•
•
•
•
•
8
• 3DCG
•
•
•
•
•
•
• (interaction)
• CG
9
CG
Interactive
Phong
10
CG
•
•
•
• 3DCG
•
•
•
•
11
CG
•
• …
•
• …
•
•
• API
• …
12
•
•
•
•
•
•
• API /
• /
•
•
13
14
アプリケーション
(やりたいこと)
ハードウェア
(やれること)
アプリケーション
(やりたいこと)
ハードウェア
(やれること)
アルゴリズム
セマンティックギャップ
(隔たり)
15
アプリケーション
(やりたいこと)
ハードウェア
(やれること)
アプリケーション
(やりたいこと)
ハードウェア
(やれること)
アルゴリズム
グラフィックス
ライブラリ
アルゴリズム
アプリケーション
(やりたいこと)
ハードウェア
(やれ...
•
•
•
•
• ACM CORE, ISO GKS, GKS-3D, PHIGS, PHIGS+, …
•
•
• CPU (API - Application Program Interface)
• OpenGL, DirectX, …...
GPU
CPU側に実装
GPU側に実装
アプリケーション
(やりたいこと)
アルゴリズム
アルゴリズム
グラフィックスライブラリ
プログラマブルシェーダ
固定機能ハードウェア
グラフィックスライブラ
リは GPU を対象とした
ときに機能が整理...
API
• API
•
•
•
•
•
•
•
• API
• OpenSceneGraph, SceniX, OpenInventor (obsolete), …
•
• CryENGINE, Unreal Engine, Unity, Ma...
アプリケーション
(やりたいこと)
アプリケーション
(やりたいこと)
アプリケーション
(やりたいこと)
ハードウェア
(やれること)
アルゴリズム
アルゴリズム
アルゴリズム
ミドルウェア
ハードウェア API
プログラマブルシェーダ
固定...
21
図形情報
材質情報
光源情報
視点情報
画像情報
22
•
•
•
•
•
•
•
•
•
•
•
•
•
23
•
•
• →
•
• fps (Frames Per Second)
• 1 fps –
• 8 fps –
• 15 fps –
• 60 fps –
•
•
•
•
• …
24
• fps
•
•
• Hz
•
•
•
• 60Hz 60 fps
•
•
• fps 60Hz
• 30fps, 20fps, 15fps, 12fps, 10fps,
• 1 16ms 60fps 17ms 30fps
25
G-SYNC...
•
•
•
•
•
•
•
•
• PC
• 3D
• GPU (Graphics Processing Unit)
•
•
26
•
•
•
•
•
27
1 Cycle
1/3 Cycle 1/3 Cycle 1/3 Cycle
Not Pipelined
Pipelined
1 Operation/Cycle
3 Operations/Cycle
28
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
•
30
CPU
31
•
•
•
•
•
•
•
•
•
•
32
•
•
•
•
•
•
•
•
•
•
•
33
•
•
•
• CPU
• (GPU)
•
•
• …
•
•
34
35
•
• …
•
•
•
•
•
•
•
36
37
Single-Pipe
Multi-Pipe
38
•
•
•
•
•
•
•
•
•
•
•
•
39
40
41
x
y
z
x
y
z
x
y
z
x
y
z
42
•
•
•
•
•
•
•
•
• GPU
43
44
•
• (Normalized Device Coordinate, NDC) (-1,-
1,-1), (1,1,1) x, y, z
•
•
•
•
•
45
標準ビューボリューム
視野錐台 (View Frustum)
直交投影
(Orthographic Projection)
透視投影
(Perspective Projection)
1
-1
1
-1
1
-1
ビューボリューム (View ...
47
1
-1 1
-1
O
1
-1 1
-1
O
48
49
50
1
-1 1
-1
O
x
y
w
h
x
y
51
52
53
•
•
•
•
•
• →
• →
•
•
•
•
•
•
• …
54
y1 < y0
dy2 y2 − y0
N
Y
N
BEGIN
t x0
x0 x1
x1 t
t y0
y0 y1
y1 t
y2 < y0
Y
N
t x0
x0 x2
x2 t
t y0
y0 y2
y2 t
y2 < y1
Y
N
t ...
•
•
•
•
56
McCool,M. D., Wales,C., Moule,K., Incremental
and Hierarchical HilbertOrder Edge Equation
Polygon Rasterization,Proceeding...
58
•
•
•
•
•
•
•
•
59
60
•
•
•
•
•
•
•
•
•
•
61
•
•
•
•
•
•
•
•
•
•
•
•
62
63
64
•
•
•
•
•
•
•
•
•
• (FBO)
•
•
65
•
•
•
•
•
•
•
•
•
66
Z
•
•
•
•
•
•
•
•
67
GeForce 256
68
http://www.hc.t.u-tokyo.ac.jp/~kaki/paper/VSJ/VisFrontier/OpenGLarchiAnswers.pdf
69
GeForce 256
•
•
• Hardware T & L (Transform and Lighting)
•
•
• GPU (Graphics Processing Unit)
• CPU
72
GeForce 256
•
•
•
•
•
•
•
•
•
•
73
• GitHub
• https://github.com/tokoik/ggsample01
• Web
• Web
• http://www.wakayama-u.ac.jp/~tokoi/lecture/gg/
•
• Linux / W...
Upcoming SlideShare
Loading in …5
×

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

7,798 views
7,755 views

Published on

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

Published in: Education
0 Comments
28 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,798
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
148
Comments
0
Likes
28
Embeds 0
No embeds

No notes for slide

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

  1. 1. 1
  2. 2. 2
  3. 3. • • 3DCG • • OpenGL GLSL (OpenGL Shading Language) • • 3D • • 3DCG • GPU 3
  4. 4. • • • : 0 : 2 : 3 : 4 : 5 • 40% 60% • • • • • • • 4
  5. 5. • • • • • • • • • … 5
  6. 6. • • (CG) • • • • 6
  7. 7. CG 7
  8. 8. • (CG) • 3DCG • • • • • • 8
  9. 9. • 3DCG • • • • • • • (interaction) • CG 9
  10. 10. CG Interactive Phong 10
  11. 11. CG • • • • 3DCG • • • • 11
  12. 12. CG • • … • • … • • • API • … 12
  13. 13. • • • • • • • API / • / • • 13
  14. 14. 14
  15. 15. アプリケーション (やりたいこと) ハードウェア (やれること) アプリケーション (やりたいこと) ハードウェア (やれること) アルゴリズム セマンティックギャップ (隔たり) 15
  16. 16. アプリケーション (やりたいこと) ハードウェア (やれること) アプリケーション (やりたいこと) ハードウェア (やれること) アルゴリズム グラフィックス ライブラリ アルゴリズム アプリケーション (やりたいこと) ハードウェア (やれること) グラフィックス ライブラリ アルゴリズム アルゴリズム 16
  17. 17. • • • • • ACM CORE, ISO GKS, GKS-3D, PHIGS, PHIGS+, … • • • CPU (API - Application Program Interface) • OpenGL, DirectX, … • OpenGL/DirectX • • API • Vulkan ( OpenGL) / DirectX 12 17
  18. 18. GPU CPU側に実装 GPU側に実装 アプリケーション (やりたいこと) アルゴリズム アルゴリズム グラフィックスライブラリ プログラマブルシェーダ 固定機能ハードウェア グラフィックスライブラ リは GPU を対象とした ときに機能が整理された ハードウェア APIとして の役割に集中する ハードウェア (やれること) アルゴリズム 18
  19. 19. API • API • • • • • • • • API • OpenSceneGraph, SceniX, OpenInventor (obsolete), … • • CryENGINE, Unreal Engine, Unity, MascotCapsule, OROCHI, Mizuchi, YEBIS, chidori, Irrlicht, OGRE, Blender Game Engine, BISHAMON … 19
  20. 20. アプリケーション (やりたいこと) アプリケーション (やりたいこと) アプリケーション (やりたいこと) ハードウェア (やれること) アルゴリズム アルゴリズム アルゴリズム ミドルウェア ハードウェア API プログラマブルシェーダ 固定機能ハードウェア 20
  21. 21. 21
  22. 22. 図形情報 材質情報 光源情報 視点情報 画像情報 22
  23. 23. • • • • • • • • • • • • • 23
  24. 24. • • • → • • fps (Frames Per Second) • 1 fps – • 8 fps – • 15 fps – • 60 fps – • • • • • … 24
  25. 25. • fps • • • Hz • • • • 60Hz 60 fps • • • fps 60Hz • 30fps, 20fps, 15fps, 12fps, 10fps, • 1 16ms 60fps 17ms 30fps 25 G-SYNC (NVIDIA) FreeSync (AMD)
  26. 26. • • • • • • • • • PC • 3D • GPU (Graphics Processing Unit) • • 26
  27. 27. • • • • • 27
  28. 28. 1 Cycle 1/3 Cycle 1/3 Cycle 1/3 Cycle Not Pipelined Pipelined 1 Operation/Cycle 3 Operations/Cycle 28
  29. 29. 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
  30. 30. • 30
  31. 31. CPU 31
  32. 32. • • • • • • • • • • 32
  33. 33. • • • • • • • • • • • 33
  34. 34. • • • • CPU • (GPU) • • • … • • 34
  35. 35. 35
  36. 36. • • … • • • • • • • 36
  37. 37. 37
  38. 38. Single-Pipe Multi-Pipe 38
  39. 39. • • • • • • • • • • • • 39
  40. 40. 40
  41. 41. 41
  42. 42. x y z x y z x y z x y z 42
  43. 43. • • • • • • • • • GPU 43
  44. 44. 44
  45. 45. • • (Normalized Device Coordinate, NDC) (-1,- 1,-1), (1,1,1) x, y, z • • • • • 45
  46. 46. 標準ビューボリューム 視野錐台 (View Frustum) 直交投影 (Orthographic Projection) 透視投影 (Perspective Projection) 1 -1 1 -1 1 -1 ビューボリューム (View Volume) (Canonical View Volume) 46
  47. 47. 47
  48. 48. 1 -1 1 -1 O 1 -1 1 -1 O 48
  49. 49. 49
  50. 50. 50
  51. 51. 1 -1 1 -1 O x y w h x y 51
  52. 52. 52
  53. 53. 53
  54. 54. • • • • • • → • → • • • • • • • … 54
  55. 55. y1 < y0 dy2 y2 − y0 N Y N BEGIN t x0 x0 x1 x1 t t y0 y0 y1 y1 t y2 < y0 Y N t x0 x0 x2 x2 t t y0 y0 y2 y2 t y2 < y1 Y N t x1 x1 x2 x2 t t y1 y1 y2 y2 t dy2 > 0 Y dx2 x2 − x0 Y mx2 dx2 / dy2 N mx2 dx2 − dy2 + 1 / dy2 ax2 2 mx2dy2 − dx2 bx2 2dy2 ex2 dy2 2 dx1 x1 − x0 Y mx1 dx1 / dy1 N mx1 dx1 − dy1 + 1 / dy1 ax1 2 mx1dy1 − dx1 bx1 2dy1 ex1 dy1 dx1 x2 − x1 Y mx1 dx1 / dy1 N mx1 dx1 − dy1 + 1 / dy1 ax1 2 mx1dy1 − dx1 bx1 2dy1 ex1 dy1 dy1 y1 − y0 dy1 > 0 N Y dy1 y2 − y1 dy1 > 0 N Y 2 4 hline(hx1, hx2, y, c) y y + 1 hx1 hx1 + mx1 ex1 ex1 + ax1 Y N hx1 hx1 + 1 ex1 ex1 + bx1 Y N hx2 hx2 + 1 ex2 ex2 + bx2 hx2 hx2 + mx2 ex2 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 + mx1 ex1 ex1 + ax1 Y N hx1 hx1 + 1 ex1 ex1 + bx1 Y N hx2 hx2 + 1 ex2 ex2 + bx2 hx2 hx2 + mx2 ex2 ex2 + ax2 dy1 dy1 − 1 dy1 > 0 Y ex1 < 0= ex2 < 0= 6 3 31 1 5 5 ) ( N END 55
  56. 56. • • • • 56
  57. 57. McCool,M. D., Wales,C., Moule,K., Incremental and Hierarchical HilbertOrder Edge Equation Polygon Rasterization,Proceedings ofthe ACM SIGGRAPH/EUROGRAPHICS workshop on Graphics hardware,ACM,pp. 65-72, 2001 57
  58. 58. 58
  59. 59. • • • • • • • • 59
  60. 60. 60
  61. 61. • • • • • • • • • • 61
  62. 62. • • • • • • • • • • • • 62
  63. 63. 63
  64. 64. 64
  65. 65. • • • • • • • • • • (FBO) • • 65
  66. 66. • • • • • • • • • 66
  67. 67. Z • • • • • • • • 67
  68. 68. GeForce 256 68
  69. 69. http://www.hc.t.u-tokyo.ac.jp/~kaki/paper/VSJ/VisFrontier/OpenGLarchiAnswers.pdf 69
  70. 70. GeForce 256 • • • Hardware T & L (Transform and Lighting) • • • GPU (Graphics Processing Unit) • CPU 72
  71. 71. GeForce 256 • • • • • • • • • • 73
  72. 72. • 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

×