Open GL ES with Obj-C
∼Open GLを使って、!
!

!

!

三角形を書こう∼!
!

Presented by @daiki63rpc
1
Open GL ESとは?
•
•

OpenGL for Embedded Systems!
主に携帯電話などの組み込みシス
テムで使用されている3Dコン
ピューターグラフィックス用 API
である。(wikipedia)!

•

iOS,...
どうすれば使える?
•

次のFrameworkを追加する!
•
•

OpenGLES.framework!
GLKit.framework

3
GLKViewController
•

今回は、複雑なデリゲートやクラ
ス拡張の手間を省くため、環境の
整ったGLKViewControllerを用いる

4
継承関係

5
GLKViewController
•

UIViewControllerを継承してるか
ら、今まで書いてたViewの設定も
そのまま書ける ← やったぁ!

6
GLKViewController
•

OpenGLを使った画面描画を行う
のに必要な基本的な機能をあらか
じめ備えているViewController!

•

面倒な処理の実装を省略できる。

7
さっそく実装しよう
•

New Project -> Single View App!
フレームワークを追加!

•

OpenGLES.framework!
• GLKit.framework!
GLKViewControllerを追加!
...
実装しよう(Cont.)
•

次のメソッドを追加!
•

•

-­‐	
  (void)viewDidAppear:

(BOOL)animated

Viewが読み込まれる前に処理をする	
  
-­‐	
  (void)glkView:...
実装しよう(Cont.)
•

細部は実際にコードを見せる

https://github.com/daiki63rpc/HelloOpenGL/blob/master/
HelloOpenGL/GLGLKViewController.m

1...
覚えてほしいこと
•

なぜこんな複雑な命令ばっかり?!

•

座標の取り方!

•

プリミティブの種類

11
なぜこんな複雑な命令ばっかり?
•

バッファとかGL~の型とか!

•

宣言することも多い!

•

GPUに対して命令を(間接的に)送
るコードを書いているから!

•

OpenGLはその橋渡し!

•

だから高速化が期待できる
12
座標の取り方
・-1.0 ~ 1.0のスケール

 で指定する!
・奥行きがZ軸

13
プリミティブの種類

14
これからの実装
•

タップした座標を検出して、図形
を描画したい

→- (void)touchesBeganで検出

 - (void)updateで再描画!

•

次に示す、参考文献にいろいろ載っ
てるので調べてみてね
15
作ってみよう
・頂点の編集!
・色の変更!
・早さの調整

16
参考文献
•

詳解iOS5プログラミング

http://www.amazon.co.jp/gp/product/4798032034	
  

•

iOS用OpenGL	
  ESプログラミングガイド

https://developer...
Upcoming SlideShare
Loading in...5
×

OpenGL ES Introduction

464

Published on

個人勉強会用

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
464
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

OpenGL ES Introduction

  1. 1. Open GL ES with Obj-C ∼Open GLを使って、! ! ! ! 三角形を書こう∼! ! Presented by @daiki63rpc 1
  2. 2. Open GL ESとは? • • OpenGL for Embedded Systems! 主に携帯電話などの組み込みシス テムで使用されている3Dコン ピューターグラフィックス用 API である。(wikipedia)! • iOS, Android, PS3(一部)で使用 2
  3. 3. どうすれば使える? • 次のFrameworkを追加する! • • OpenGLES.framework! GLKit.framework 3
  4. 4. GLKViewController • 今回は、複雑なデリゲートやクラ ス拡張の手間を省くため、環境の 整ったGLKViewControllerを用いる 4
  5. 5. 継承関係 5
  6. 6. GLKViewController • UIViewControllerを継承してるか ら、今まで書いてたViewの設定も そのまま書ける ← やったぁ! 6
  7. 7. GLKViewController • OpenGLを使った画面描画を行う のに必要な基本的な機能をあらか じめ備えているViewController! • 面倒な処理の実装を省略できる。 7
  8. 8. さっそく実装しよう • New Project -> Single View App! フレームワークを追加! • OpenGLES.framework! • GLKit.framework! GLKViewControllerを追加! • デフォルトのViewControllerを削除 • • 8
  9. 9. 実装しよう(Cont.) • 次のメソッドを追加! • • -­‐  (void)viewDidAppear:
 (BOOL)animated
 Viewが読み込まれる前に処理をする   -­‐  (void)glkView:(GLKView*)view
 drawInRect:(CGRect)rect
 Viewに関する情報を設定 9
  10. 10. 実装しよう(Cont.) • 細部は実際にコードを見せる
 https://github.com/daiki63rpc/HelloOpenGL/blob/master/ HelloOpenGL/GLGLKViewController.m 10
  11. 11. 覚えてほしいこと • なぜこんな複雑な命令ばっかり?! • 座標の取り方! • プリミティブの種類 11
  12. 12. なぜこんな複雑な命令ばっかり? • バッファとかGL~の型とか! • 宣言することも多い! • GPUに対して命令を(間接的に)送 るコードを書いているから! • OpenGLはその橋渡し! • だから高速化が期待できる 12
  13. 13. 座標の取り方 ・-1.0 ~ 1.0のスケール
  で指定する! ・奥行きがZ軸 13
  14. 14. プリミティブの種類 14
  15. 15. これからの実装 • タップした座標を検出して、図形 を描画したい
 →- (void)touchesBeganで検出
  - (void)updateで再描画! • 次に示す、参考文献にいろいろ載っ てるので調べてみてね 15
  16. 16. 作ってみよう ・頂点の編集! ・色の変更! ・早さの調整 16
  17. 17. 参考文献 • 詳解iOS5プログラミング
 http://www.amazon.co.jp/gp/product/4798032034   • iOS用OpenGL  ESプログラミングガイド
 https://developer.apple.com/jp/devcenter/ios/library/ documentation/OpenGLES_ProgrammingGuide.pdf   • Qiita:iOSでとりあえずOpenGLで三角 形を描くには
 http://qiita.com/weed/items/3992814597432fef3c95 17
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×