Suche senden
Hochladen
OpenGLと行列
•
Als PPTX, PDF herunterladen
•
9 gefällt mir
•
5,804 views
M
miyosuda
Folgen
OpenGL
Weniger lesen
Mehr lesen
Melden
Teilen
Melden
Teilen
1 von 28
Jetzt herunterladen
Empfohlen
OpenGLと行列
OpenGLと行列
miyosuda
CG2013 02
CG2013 02
shiozawa_h
CG2013 07
CG2013 07
shiozawa_h
CG2013 03
CG2013 03
shiozawa_h
CG2013 01
CG2013 01
shiozawa_h
CG2013 05
CG2013 05
shiozawa_h
CG2013 06
CG2013 06
shiozawa_h
CG2013 11
CG2013 11
shiozawa_h
Empfohlen
OpenGLと行列
OpenGLと行列
miyosuda
CG2013 02
CG2013 02
shiozawa_h
CG2013 07
CG2013 07
shiozawa_h
CG2013 03
CG2013 03
shiozawa_h
CG2013 01
CG2013 01
shiozawa_h
CG2013 05
CG2013 05
shiozawa_h
CG2013 06
CG2013 06
shiozawa_h
CG2013 11
CG2013 11
shiozawa_h
glossはおもろい
glossはおもろい
karky7
Rの初歩: 6. グラフィックス
Rの初歩: 6. グラフィックス
Teiko Suzuki
The boolean operation for Cubic Bezier
The boolean operation for Cubic Bezier
mikanplus
【Unity道場】ゲーム制作に使う数学を学習しよう
【Unity道場】ゲーム制作に使う数学を学習しよう
Unity Technologies Japan K.K.
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
HCPC: 北海道大学競技プログラミングサークル
kagamicomput201709
kagamicomput201709
swkagami
kagamicomput201708
kagamicomput201708
swkagami
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
数列で学ぶ初めての CommonLisp #fibonacci
数列で学ぶ初めての CommonLisp #fibonacci
pgf2alpha
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
x86x64 SSE4.2 POPCNT
x86x64 SSE4.2 POPCNT
takesako
CG2013 08
CG2013 08
shiozawa_h
pre: 数列で学ぶ初めての CommonLisp #fibonacci
pre: 数列で学ぶ初めての CommonLisp #fibonacci
pgf2alpha
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
Unity Technologies Japan K.K.
CG2013 09
CG2013 09
shiozawa_h
PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」
PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」
reona396
論理指向とプログラミング2010年度秋学期第9回
論理指向とプログラミング2010年度秋学期第9回
Noritada Shimizu
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
nitoyon
Popcntによるハミング距離計算
Popcntによるハミング距離計算
Norishige Fukushima
日曜数学会 Ofdm
日曜数学会 Ofdm
和人 桐ケ谷
OpenGL 3DCG
OpenGL 3DCG
Takenori Nakagawa
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
tecopark
Weitere ähnliche Inhalte
Was ist angesagt?
glossはおもろい
glossはおもろい
karky7
Rの初歩: 6. グラフィックス
Rの初歩: 6. グラフィックス
Teiko Suzuki
The boolean operation for Cubic Bezier
The boolean operation for Cubic Bezier
mikanplus
【Unity道場】ゲーム制作に使う数学を学習しよう
【Unity道場】ゲーム制作に使う数学を学習しよう
Unity Technologies Japan K.K.
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
HCPC: 北海道大学競技プログラミングサークル
kagamicomput201709
kagamicomput201709
swkagami
kagamicomput201708
kagamicomput201708
swkagami
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
数列で学ぶ初めての CommonLisp #fibonacci
数列で学ぶ初めての CommonLisp #fibonacci
pgf2alpha
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
x86x64 SSE4.2 POPCNT
x86x64 SSE4.2 POPCNT
takesako
CG2013 08
CG2013 08
shiozawa_h
pre: 数列で学ぶ初めての CommonLisp #fibonacci
pre: 数列で学ぶ初めての CommonLisp #fibonacci
pgf2alpha
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
Unity Technologies Japan K.K.
CG2013 09
CG2013 09
shiozawa_h
PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」
PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」
reona396
論理指向とプログラミング2010年度秋学期第9回
論理指向とプログラミング2010年度秋学期第9回
Noritada Shimizu
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
nitoyon
Popcntによるハミング距離計算
Popcntによるハミング距離計算
Norishige Fukushima
日曜数学会 Ofdm
日曜数学会 Ofdm
和人 桐ケ谷
Was ist angesagt?
(20)
glossはおもろい
glossはおもろい
Rの初歩: 6. グラフィックス
Rの初歩: 6. グラフィックス
The boolean operation for Cubic Bezier
The boolean operation for Cubic Bezier
【Unity道場】ゲーム制作に使う数学を学習しよう
【Unity道場】ゲーム制作に使う数学を学習しよう
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
kagamicomput201709
kagamicomput201709
kagamicomput201708
kagamicomput201708
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
数列で学ぶ初めての CommonLisp #fibonacci
数列で学ぶ初めての CommonLisp #fibonacci
動的計画法を極める!
動的計画法を極める!
x86x64 SSE4.2 POPCNT
x86x64 SSE4.2 POPCNT
CG2013 08
CG2013 08
pre: 数列で学ぶ初めての CommonLisp #fibonacci
pre: 数列で学ぶ初めての CommonLisp #fibonacci
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
CG2013 09
CG2013 09
PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」
PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」
論理指向とプログラミング2010年度秋学期第9回
論理指向とプログラミング2010年度秋学期第9回
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
Popcntによるハミング距離計算
Popcntによるハミング距離計算
日曜数学会 Ofdm
日曜数学会 Ofdm
Andere mochten auch
OpenGL 3DCG
OpenGL 3DCG
Takenori Nakagawa
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
tecopark
CS 354 Object Viewing and Representation
CS 354 Object Viewing and Representation
Mark Kilgard
Rでの対称行列の固有値・固有ベクトルの最適な求め方
Rでの対称行列の固有値・固有ベクトルの最適な求め方
wada, kazumi
The Introduction to Vector Graphics
The Introduction to Vector Graphics
emaame
今Cinderが熱い! #cinder
今Cinderが熱い! #cinder
KatsuyaENDOH
Math1 Vector
Math1 Vector
Keisuke Hata
ネイティブ原理主義
ネイティブ原理主義
Kentarou Mukunasi
OpenGL L02-Transformations
OpenGL L02-Transformations
Mohammad Shaker
OpenGL ES2.0 一問一答
OpenGL ES2.0 一問一答
Takashi Komada
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
Hiro H.
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
Hiro H.
ピーFIの研究開発現場
ピーFIの研究開発現場
Yuya Unno
Dbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortex
Koji Shinkubo
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
Shuyo Nakatani
深層リカレントニューラルネットワークを用いた日本語述語項構造解析
深層リカレントニューラルネットワークを用いた日本語述語項構造解析
Hiroki Ouchi
Excel方眼紙を支えるJava技術 2015
Excel方眼紙を支えるJava技術 2015
takezoe
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
ディープラーニング最新動向と技術情報
ディープラーニング最新動向と技術情報
NVIDIA Japan
3D描画基礎知識
3D描画基礎知識
AimingStudy
Andere mochten auch
(20)
OpenGL 3DCG
OpenGL 3DCG
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
CS 354 Object Viewing and Representation
CS 354 Object Viewing and Representation
Rでの対称行列の固有値・固有ベクトルの最適な求め方
Rでの対称行列の固有値・固有ベクトルの最適な求め方
The Introduction to Vector Graphics
The Introduction to Vector Graphics
今Cinderが熱い! #cinder
今Cinderが熱い! #cinder
Math1 Vector
Math1 Vector
ネイティブ原理主義
ネイティブ原理主義
OpenGL L02-Transformations
OpenGL L02-Transformations
OpenGL ES2.0 一問一答
OpenGL ES2.0 一問一答
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
STLの型の使い分け(ダイジェスト版) @ Sapporo.cpp 第7回勉強会 (2014.10.18)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
ピーFIの研究開発現場
ピーFIの研究開発現場
Dbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortex
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
深層リカレントニューラルネットワークを用いた日本語述語項構造解析
深層リカレントニューラルネットワークを用いた日本語述語項構造解析
Excel方眼紙を支えるJava技術 2015
Excel方眼紙を支えるJava技術 2015
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
ディープラーニング最新動向と技術情報
ディープラーニング最新動向と技術情報
3D描画基礎知識
3D描画基礎知識
Ähnlich wie OpenGLと行列
プログラミング技法特論第4回
プログラミング技法特論第4回
Noritada Shimizu
Processing授業テキスト
Processing授業テキスト
Suzuki Junko
Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法
Nagi Teramo
Android OpenGL HandsOn
Android OpenGL HandsOn
Ikuo Tansho
シェーダー伝道師 第二回
シェーダー伝道師 第二回
hixi365
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門
SatoYu1ro
ディジタル信号処理 課題解説(その3) 2014年度版
ディジタル信号処理 課題解説(その3) 2014年度版
dsp_kyoto_2014
Processing
Processing
Akifumi Nambu
プログラミング技法特論第8回
プログラミング技法特論第8回
Noritada Shimizu
p5.js 授業テキスト
p5.js 授業テキスト
Suzuki Junko
STC-OC2019_1st201906
STC-OC2019_1st201906
Yoshihiko Yamamoto
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Atsushi Tadokoro
動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)
kakira9618
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
Unity Technologies Japan K.K.
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
Unity Technologies Japan K.K.
Clojure programming-chapter-2
Clojure programming-chapter-2
Masao Kato
20150725 オープンキャンパス資料
20150725 オープンキャンパス資料
Takeo Kunishima
明日機械学習に役立つかもしれない数学
明日機械学習に役立つかもしれない数学
Yu(u)ki IWABUCHI
Metaprogramming in JuliaLang
Metaprogramming in JuliaLang
Yuichi Motoyama
RでGISハンズオンセッション
RでGISハンズオンセッション
arctic_tern265
Ähnlich wie OpenGLと行列
(20)
プログラミング技法特論第4回
プログラミング技法特論第4回
Processing授業テキスト
Processing授業テキスト
Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法
Android OpenGL HandsOn
Android OpenGL HandsOn
シェーダー伝道師 第二回
シェーダー伝道師 第二回
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門
ディジタル信号処理 課題解説(その3) 2014年度版
ディジタル信号処理 課題解説(その3) 2014年度版
Processing
Processing
プログラミング技法特論第8回
プログラミング技法特論第8回
p5.js 授業テキスト
p5.js 授業テキスト
STC-OC2019_1st201906
STC-OC2019_1st201906
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
Clojure programming-chapter-2
Clojure programming-chapter-2
20150725 オープンキャンパス資料
20150725 オープンキャンパス資料
明日機械学習に役立つかもしれない数学
明日機械学習に役立つかもしれない数学
Metaprogramming in JuliaLang
Metaprogramming in JuliaLang
RでGISハンズオンセッション
RでGISハンズオンセッション
OpenGLと行列
1.
OpenGLと行列について narrative nights
株式会社 三好康祐
2.
今回の目標 OpenGLがどうやって表示を行っているかのフローについて理解する 行列のイメージをつかむ
Zバッファについて理解する
3.
OpenGLは何をしてくれる? 3次元の座標値をいっぱい与えると しかるべき変換作業を行って
座標変換したり テクスチャ張ったり ライトを当てたり etc… 端末の画面に表示をしてくれる (=ピクセルを1個ずつプチプチ打ってくれる)
4.
行列 glPushMatrix(), glPopMatrix(),
glMatrixMode() etc.. PROJECTION_MODE, MODELVIEW_MODEって何だろう? 良く出てくるMatrix(=行列)って一体何だろう? 行列ってそもそも何の為に必要なんだろう?
5.
算数での簡単な例 {13, 4,
15, 6, 12, 1, ….., 23} といった様に、適当な数字が10個ある これら1個1個に対して、5倍して3を足した値 それぞれ求めなさい
6.
Javaで書くと int numbers[]
= {13, 4, 15, 6, 12, 1,..., 23}; for(int i=0; i<10; ++i) { int num = numbers[i]; int num2 = num * 5 + 3; System.out.println(num2); }
7.
もう少し難しくした例 {13,4, 15,
6, 12, 1….. 23} という10個の数字があって これら1個1個に対して、 ・5倍して3を足し、 ・その結果を、2倍して、1を引き ・その結果にさらに、4倍して、6を足した結果は?
8.
Javaで書くと int numbers[]
= {13, 4, 15, 6, 12, 1,..., 23}; for(int i=0; i<10; ++i) { int num = numbers[i]; int num2 = num * 5 + 3; int num3 = num2 * 2 - 1; int num4 = num3 * 4 + 6; System.out.println(num4); }
9.
10.
2倍して、1を引き
11.
4倍して、6を足すa’ =
4 × (2 ×(5 × a + 3) -1) + 6 ↓ a’ = 4 × ((10× a + 6) -1) + 6 ↓ a’ = 40× a + 24 - 4 + 6 ↓ a’ = 40× a + 26
12.
for(int i=0; i<10;
++i) { int num = numbers[i]; int num2 = num * 5 + 3; int num3 = num2 * 2 - 1; int num4 = num3 * 4 + 6; } for(int i=0; i<10; ++i) { int num = numbers[i]; int num2 = num * 40 + 26; } 1回にまとまる!
13.
3Dでの例 8頂点分の座標があったとして float
vertex[] = { -1.0f, -1.0f, 1.0f, // x,y,z 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f };
14.
それらの8頂点に対して、 (-1,0,0)だけ移動して x,y,z成分をそれぞれ2倍して
X軸を中心に、45度回転させて 回転した状態から(0,5,0)だけ移動したら それぞれの座標値はどこになる?
15.
移動、回転、拡縮といった変換は、それぞれ行列によって表現できる 例) x、y、zをそれぞれ2.0倍する変換
x y Z 1 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 1 2x 2y 2Z 1 ×
16.
(-1,0,0) 移動 X軸45度回転
(0,5,0)移動 2倍 x y z × × × × x y z × 1個にまとめられる! 現在の複雑な状態が1個の行列で表現できる
17.
OpenGL内の行列 OpenGLは内部に、二つ行列を1個ずつ持っている PROJECTION行列
MODEL_VIEW行列 それぞれ何をする為の行列なんだろう?
18.
gl.glMatrixMode(GL10.GL_PROJECTION); //↑これから呼び出すMatrix用命令は、PROJECTION 行列に対して行う
gl.glLoadIdentity();// 行列を初期化 gl.glFrustumf(-1,1, -1.5, 1.5, 1, 10); gl.glMatrixMode(GL10.GL_MODELVIEW); //↑これから呼び出すMatrix用命令は、MODELVIEW 行列に対して行う gl.glLoadIdentity(); // 行列を初期化 gl.glTranslatef(0, 0, -3.0f); gl.glScalef(0.5f, 0.5f, 0.5f); gl.glRotatef(45, 0, 1, 0); 同じglLoadIdentity()の呼び出しでも意味が違ってくる
19.
PROJECTION行列 Projection =
投影 投影= 3次元上の点を2次元の平面上の点に写す
20.
パース付きPROJECTION行列 glFrustumf()にて行列を生成 パース
= 奥行き感 奥行き感 = 遠くの物ほど小さく見せる どれくらい小さく見せるか、で遠近感を調整
21.
glFrustumf(-1.5f,1.5f, -1.0f, 1.0f,
1.0f, 10.0f); 広角レンズ glFrustumf(-0.75f,0.75f, -0.5f,0.5f, 1.0f, 30.0f); 望遠レンズ 画角が大きい=遠くになるとすぐ小さくなる 画角が小さい=遠く離れてもあまり小さくならない
22.
パース無しPROJECTION行列 glOrthof()で行列を生成 パースが無い
= 奥行き感が無い 奥行き感が無い = 遠くに行っても大きさ同じ
23.
パースが無い状態で、真正面から見たら? 2DのUI表示はこの方式で表示している
24.
MODELVIEW行列 モノの位置やカメラの位置を表現する為の行列 gl.glTranslatef(0,
0, -3.0f);// 移動して gl.glScalef(2.0f, 2.0f, 2.0f); // 拡大して gl.glRotatef(45, 0, 1, 0); // 回転
25.
glScalef() glTranslatef() glRotatef()
x y z × × × x y z × OpenGL内では1個の行列(=MODELVIEW行列) にまとめられている
26.
glPushMatrix()glPopMatrix() 現在のMODELVIEW 行列
(=現在まで掛け合わされた行列の結果)を、 glPushMatrix()で保存 glPopMatrix()で復元
27.
画面に表示されるまで PROJECTION行列 MODELVIEW行列
VIEWPORT変換行列 x’ y’ z’ x y z 画面上の 座標値 × × × ※-1.0~1.0 といった座標系から0~320と いった実際のピクセル単位での座標系に 変換する為の行列
28.
Zバッファ 画面上の各ピクセルの座標値 x’
y’ z’ さっき使わなかった奥行き値=zデプス値だけを全ピクセル分記録している場所がある = Zバッファ(depthバッファ)
29.
30.
Jetzt herunterladen