Enviar pesquisa
Carregar
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
•
34 gostaram
•
41,840 visualizações
Atsushi Tadokoro
Seguir
Tecnologia
Arte e fotografia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 53
Baixar agora
Baixar para ler offline
Recomendados
Media Art II 2013 第4回:openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム
Media Art II 2013 第4回:openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム
Atsushi Tadokoro
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
Atsushi Tadokoro
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
Atsushi Tadokoro
openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習B
Atsushi Tadokoro
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
Atsushi Tadokoro
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
Atsushi Tadokoro
FOBOS
FOBOS
Hidekazu Oiwa
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
Toshihiro Kamishima
Recomendados
Media Art II 2013 第4回:openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム
Media Art II 2013 第4回:openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム
Atsushi Tadokoro
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
Atsushi Tadokoro
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
Atsushi Tadokoro
openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 動きを生みだす、アニメーション入門 - 芸大グラフィックスプログラミング演習B
Atsushi Tadokoro
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
Atsushi Tadokoro
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
Atsushi Tadokoro
FOBOS
FOBOS
Hidekazu Oiwa
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
Toshihiro Kamishima
カルマンフィルタ講義資料
カルマンフィルタ講義資料
Nobutaka Shimada
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについて
t-sin
メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門
Atsushi Tadokoro
Unity遊戲程式設計(05) 2D移動與碰撞處理II
Unity遊戲程式設計(05) 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
Scala 初心者が米田の補題を Scala で考えてみた
Scala 初心者が米田の補題を Scala で考えてみた
Kazuyuki TAKASE
[DL輪読会]Deep Reinforcement Learning that Matters
[DL輪読会]Deep Reinforcement Learning that Matters
Deep Learning JP
Format string Attack
Format string Attack
icchy
3次元の凸包を求める
3次元の凸包を求める
abc3141
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
DeepLearningTutorial
DeepLearningTutorial
Takayoshi Yamashita
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
Kazuyuki TAKASE
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
moto2g
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Atsushi Tadokoro
Pixel Shuffer
Pixel Shuffer
Deep Learning JP
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
祐司 伊藤
【DL輪読会】Segment Anything
【DL輪読会】Segment Anything
Deep Learning JP
Constexpr 中3女子テクニック
Constexpr 中3女子テクニック
Genya Murakami
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
Toru Tamaki
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
「機械学習:技術的負債の高利子クレジットカード」のまとめ
「機械学習:技術的負債の高利子クレジットカード」のまとめ
Recruit Technologies
マウスでタッチ操作
マウスでタッチ操作
Shinichi Hirauchi
Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用する
Atsushi Tadokoro
Mais conteúdo relacionado
Mais procurados
カルマンフィルタ講義資料
カルマンフィルタ講義資料
Nobutaka Shimada
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについて
t-sin
メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門
Atsushi Tadokoro
Unity遊戲程式設計(05) 2D移動與碰撞處理II
Unity遊戲程式設計(05) 2D移動與碰撞處理II
吳錫修 (ShyiShiou Wu)
Scala 初心者が米田の補題を Scala で考えてみた
Scala 初心者が米田の補題を Scala で考えてみた
Kazuyuki TAKASE
[DL輪読会]Deep Reinforcement Learning that Matters
[DL輪読会]Deep Reinforcement Learning that Matters
Deep Learning JP
Format string Attack
Format string Attack
icchy
3次元の凸包を求める
3次元の凸包を求める
abc3141
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
DeepLearningTutorial
DeepLearningTutorial
Takayoshi Yamashita
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
Kazuyuki TAKASE
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
moto2g
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Atsushi Tadokoro
Pixel Shuffer
Pixel Shuffer
Deep Learning JP
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
祐司 伊藤
【DL輪読会】Segment Anything
【DL輪読会】Segment Anything
Deep Learning JP
Constexpr 中3女子テクニック
Constexpr 中3女子テクニック
Genya Murakami
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
Toru Tamaki
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
「機械学習:技術的負債の高利子クレジットカード」のまとめ
「機械学習:技術的負債の高利子クレジットカード」のまとめ
Recruit Technologies
Mais procurados
(20)
カルマンフィルタ講義資料
カルマンフィルタ講義資料
SECDマシン 実装と動きとその他もろもろについて
SECDマシン 実装と動きとその他もろもろについて
メディア・アート II 第1回: ガイダンス openFrameworks入門
メディア・アート II 第1回: ガイダンス openFrameworks入門
Unity遊戲程式設計(05) 2D移動與碰撞處理II
Unity遊戲程式設計(05) 2D移動與碰撞處理II
Scala 初心者が米田の補題を Scala で考えてみた
Scala 初心者が米田の補題を Scala で考えてみた
[DL輪読会]Deep Reinforcement Learning that Matters
[DL輪読会]Deep Reinforcement Learning that Matters
Format string Attack
Format string Attack
3次元の凸包を求める
3次元の凸包を求める
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
DeepLearningTutorial
DeepLearningTutorial
関数型プログラミングのデザインパターンひとめぐり
関数型プログラミングのデザインパターンひとめぐり
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
YOLO V3で独自データセットを学習させて物体検出 / Yolo V3 with your own dataset
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Pixel Shuffer
Pixel Shuffer
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
【DL輪読会】Segment Anything
【DL輪読会】Segment Anything
Constexpr 中3女子テクニック
Constexpr 中3女子テクニック
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
「機械学習:技術的負債の高利子クレジットカード」のまとめ
「機械学習:技術的負債の高利子クレジットカード」のまとめ
Destaque
マウスでタッチ操作
マウスでタッチ操作
Shinichi Hirauchi
Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用する
Atsushi Tadokoro
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
Atsushi Tadokoro
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Atsushi Tadokoro
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
Atsushi Tadokoro
青年海外協力隊・フィールド調査団の最終報告書
青年海外協力隊・フィールド調査団の最終報告書
Daisuke Miyazaki
コンテンツをディレクションするということ
コンテンツをディレクションするということ
Yoshihiro Kanematsu
インターネット広告代理店の「制作ディレクション」というお仕事
インターネット広告代理店の「制作ディレクション」というお仕事
Koki Kaku
色で失敗しない為に 〜理論に基づく配色フロー〜
色で失敗しない為に 〜理論に基づく配色フロー〜
Yuudai Tachibana
Wo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティング
Wo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティング
thinkjam.Inc.
カヤックコピー部のコピー講座
カヤックコピー部のコピー講座
コピーライターはせがわ てつじ
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
schoowebcampus
コンテンツ作りの三原則
コンテンツ作りの三原則
INFOBAHN.inc(株式会社インフォバーン)
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
tsukasa obara
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
MOCKS | Yuta Morishige
しょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedee
「MakeLeaps」請求書の作成、管理、郵送
色彩センスのいらない配色講座
色彩センスのいらない配色講座
Mariko Yamaguchi
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
MOCKS | Yuta Morishige
Destaque
(18)
マウスでタッチ操作
マウスでタッチ操作
Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用する
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
青年海外協力隊・フィールド調査団の最終報告書
青年海外協力隊・フィールド調査団の最終報告書
コンテンツをディレクションするということ
コンテンツをディレクションするということ
インターネット広告代理店の「制作ディレクション」というお仕事
インターネット広告代理店の「制作ディレクション」というお仕事
色で失敗しない為に 〜理論に基づく配色フロー〜
色で失敗しない為に 〜理論に基づく配色フロー〜
Wo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティング
Wo! vol.23 米Coca-Colaサイトにみるコンテンツ・マーケティング
カヤックコピー部のコピー講座
カヤックコピー部のコピー講座
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
コンテンツ作りの三原則
コンテンツ作りの三原則
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
しょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedee
色彩センスのいらない配色講座
色彩センスのいらない配色講座
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
Semelhante a Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Android OpenGL HandsOn
Android OpenGL HandsOn
Ikuo Tansho
Flashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3D
Katsushi Suzuki
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門
Masahiko Mizuta
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
Takashi Yoshinaga
Arctic.js
Arctic.js
chikathreesix
Ogre3d 基礎
Ogre3d 基礎
kw
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3D
Katsushi Suzuki
iOSプログラマへ。HTML5 Canvasがおもしろい!
iOSプログラマへ。HTML5 Canvasがおもしろい!
cocopon
怪しいWindowsプログラミング
怪しいWindowsプログラミング
nagoya313
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
AdvancedTechNight
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
Hiroshi Oyamada
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Tomoaki Shimizu
Real timeimageprocessing
Real timeimageprocessing
ushiostarfish _
CG2013 12
CG2013 12
shiozawa_h
プログラミング技法特論第8回
プログラミング技法特論第8回
Noritada Shimizu
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
勝成 鈴江
はじめようRGB-Dセンシングと画像処理
はじめようRGB-Dセンシングと画像処理
Takashi Yoshinaga
Sencha study
Sencha study
Shinsuke Sugita
Gocon2013
Gocon2013
Moriyoshi Koizumi
Android gameprogramming
Android gameprogramming
Masahiro Hidaka
Semelhante a Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
(20)
Android OpenGL HandsOn
Android OpenGL HandsOn
Flashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3D
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
Arctic.js
Arctic.js
Ogre3d 基礎
Ogre3d 基礎
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3D
iOSプログラマへ。HTML5 Canvasがおもしろい!
iOSプログラマへ。HTML5 Canvasがおもしろい!
怪しいWindowsプログラミング
怪しいWindowsプログラミング
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Real timeimageprocessing
Real timeimageprocessing
CG2013 12
CG2013 12
プログラミング技法特論第8回
プログラミング技法特論第8回
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
はじめようRGB-Dセンシングと画像処理
はじめようRGB-Dセンシングと画像処理
Sencha study
Sencha study
Gocon2013
Gocon2013
Android gameprogramming
Android gameprogramming
Mais de Atsushi Tadokoro
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
Atsushi Tadokoro
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめよう
Atsushi Tadokoro
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2
Atsushi Tadokoro
coma Creators session vol.2
coma Creators session vol.2
Atsushi Tadokoro
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1
Atsushi Tadokoro
Interactive Music II Processingによるアニメーション
Interactive Music II Processingによるアニメーション
Atsushi Tadokoro
Interactive Music II Processing基本
Interactive Music II Processing基本
Atsushi Tadokoro
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Atsushi Tadokoro
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Atsushi Tadokoro
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
Atsushi Tadokoro
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
Atsushi Tadokoro
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
Atsushi Tadokoro
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Atsushi Tadokoro
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
Atsushi Tadokoro
Tamabi media131118
Tamabi media131118
Atsushi Tadokoro
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Atsushi Tadokoro
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Atsushi Tadokoro
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
Atsushi Tadokoro
Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替え
Atsushi Tadokoro
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Atsushi Tadokoro
Mais de Atsushi Tadokoro
(20)
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめよう
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2
coma Creators session vol.2
coma Creators session vol.2
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II Processingによるアニメーション
Interactive Music II Processingによるアニメーション
Interactive Music II Processing基本
Interactive Music II Processing基本
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
Tamabi media131118
Tamabi media131118
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替え
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Último
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Último
(10)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
1.
Media Art II
2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL 多摩美術大学情報デザイン学科メディア芸術コース 2013年10月28日 田所 淳
2.
今日の内容 ‣ openFrameworksの、3D機能、OpenGLの機能を中心に 取り上げます
3.
今日の内容 ‣ 3DやOpenGLに関する機能を概観します クラス名 機能 ofBox, ofSphere 3Dプリミティブオブジェクトの描画 ofEasyCam 簡単に利用可能なカメラ(視点)機能 ofLight ライティング効果 ofMesh 3D物体の全ての頂点情報を持ったデータ ofVBO 3Dシーンの物体の情報(位置・色)の保存 ofShader プログラマブルシェーダ
4.
3Dプリミティブ図形の描画 ofBox、ofSphere
5.
3Dプリミティブ図形の描画 ofBox、ofSphere ‣ openFrameworks v080から、3Dの基本図形の描き方が 変化 ! ‣ 球体:
ofSphere → ofSpherePrimtive ‣ 立方体: ofBox → ofBoxPrimitive ! ‣ ofRectやofCircleのように、testApp::draw() 関数内に記 述して座標とサイズを指定するだけで簡単に利用可能
6.
3Dプリミティブ図形の描画 ofBox、ofSphere ‣ testApp.h #pragma once ! #include
"ofMain.h" ! class testApp : public ofBaseApp{ public: void setup(); void update(); void draw(); void void void void void void void void void keyPressed(int key); keyReleased(int key); mouseMoved(int x, int y); mouseDragged(int x, int y, int button); mousePressed(int x, int y, int button); mouseReleased(int x, int y, int button); windowResized(int w, int h); dragEvent(ofDragInfo dragInfo); gotMessage(ofMessage msg); ofBoxPrimitive box; // 立方体プリミティブ ofSpherePrimitive sphere; // 球プリミティブ };
7.
3Dプリミティブ図形の描画 ofBox、ofSphere ‣ testApp.cpp #include "testApp.h" ! void
testApp::setup(){ ofBackground(0); } ! void testApp::update(){ } ! void testApp::draw(){ ofTranslate(ofGetWidth()/2, ofGetHeight()/2); ofSetColor(255); // 立方体 box.set(200); // サイズ設定 box.setPosition(-150, 0, 0); // 位置 box.drawWireframe(); // ワイヤーフレームを描画 // 球 sphere.set(100, 16); // 半径と面の細かさ sphere.setPosition(150, 0, 0); // 位置 sphere.drawWireframe(); // ワイヤーフレームを描画 }
8.
3Dプリミティブ図形の描画 ofBox、ofSphere ‣ 完成!!
9.
視点をインタラクティブに移動 ofEasyCam
10.
視点をインタラクティブに移動 - ofEasyCam ‣ 次に、この図形を様々な角度から眺められるようにする ‣ 物体を動かすのではなく、視点(カメラ)を移動して、物体 を注視する角度を変更してみる ‣ 視点を指定するofEasyCamというクラスがあり、とても 簡単に視点の移動が可能 ‣ より詳細な視点や画角などの指定には、ofCameraという クラスもある
11.
視点をインタラクティブに移動 - ofEasyCam ‣ testApp.h #pragma
once ! #include "ofMain.h" ! class testApp : public ofBaseApp{ public: void setup(); void update(); void draw(); void void void void void void void void void keyPressed(int key); keyReleased(int key); mouseMoved(int x, int y); mouseDragged(int x, int y, int button); mousePressed(int x, int y, int button); mouseReleased(int x, int y, int button); windowResized(int w, int h); dragEvent(ofDragInfo dragInfo); gotMessage(ofMessage msg); ofBoxPrimitive box; // 立方体プリミティブ ofSpherePrimitive sphere; // 球プリミティブ ofEasyCam cam; // カメラ };
12.
視点をインタラクティブに移動 - ofEasyCam ‣ testApp.cpp …
(前略) … ! void testApp::draw(){ cam.begin(); // カメラ開始 ofSetColor(255); // 立方体 box.set(200); // サイズ設定 box.setPosition(-150, 0, 0); // 位置 box.drawWireframe(); // ワイヤーフレームを描画 // 球 sphere.set(100, 16); // 半径と面の細かさ sphere.setPosition(150, 0, 0); // 位置 sphere.drawWireframe(); // ワイヤーフレームを描画 cam.end(); // カメラ終了 }
13.
視点をインタラクティブに移動 - ofEasyCam ‣ testApp.cpp …
(前略) … ! void testApp::draw(){ cam.begin(); // カメラ開始 ofSetColor(255); // 立方体 camera.begin( )と box.set(200); // サイズ設定 camera.end( )で囲まれた範囲 box.setPosition(-150, 0, 0); // 位置 が、マウスのドラッグで視点変 更可能となる box.drawWireframe(); // ワイヤーフレームを描画 // 球 sphere.set(100, 16); // 半径と面の細かさ sphere.setPosition(150, 0, 0); // 位置 sphere.drawWireframe(); // ワイヤーフレームを描画 cam.end(); // カメラ終了 }
14.
視点をインタラクティブに移動 - ofEasyCam ‣ マウスをドラッグすると物体を回転できる
15.
ライティング ofLight
16.
ライティング - ofLight ‣ プリミティブを描画する命令 ‣ ‣ ‣ プリミティブ.drawWireframe()
→ ワイヤーフレーム プリミティブ.draw() → 塗り潰し 実際にやってみる
17.
ライティング - ofLight ‣ testApp.cpp void
testApp::draw(){ cam.begin(); // カメラ開始 ofSetColor(255); // 立方体 box.set(200); // サイズ設定 box.setPosition(-150, 0, 0); // 位置 box.draw(); // 塗りつぶしで描画 ←ココ // 球 sphere.set(100, 16); // 半径と面の細かさ sphere.setPosition(150, 0, 0); // 位置 sphere.draw(); // 塗りつぶしで描画 cam.end(); // カメラ終了 } ←ココ
18.
ライティング - ofLight ‣ 陰影も何もない、のっぺりとした図形になってしまう
19.
ライティング - ofLight ‣ なぜ、陰影のないのっぺりとした図形になってしまうのか? ‣ ライティングがされていないから ‣ 適切な照明を物体に照射することで、リアルな陰影が表現 される ‣ ofLightクラスを使用する
20.
ライティング - ofLight ‣ ofLightでは「Phongシェーディング」というアルゴリズ ムで、物体にリアルな陰影や反射を付加している ‣ 3Dグラフィックにおいて、モデリングされた面上の点に 影をつけるための照明と陰影モデル ‣ ユタ大学のBui
Tuong Phongによって開発 (1973)
21.
ライティング - ofLight ‣ Phongシェーディング ‣ 3つの光の反射の強度と色を指定する ‣ 鏡面反射
(Specular) ‣ 拡散反射 (Diffuse) ‣ 環境反射 (Ambient)
22.
ライティング - ofLight ‣ testApp.h #pragma
once ! #include "ofMain.h" ! class testApp : public ofBaseApp{ public: void setup(); void update(); void draw(); void void void void void void void void void keyPressed(int key); keyReleased(int key); mouseMoved(int x, int y); mouseDragged(int x, int y, int button); mousePressed(int x, int y, int button); mouseReleased(int x, int y, int button); windowResized(int w, int h); dragEvent(ofDragInfo dragInfo); gotMessage(ofMessage msg); ofBoxPrimitive box; // 立方体プリミティブ ofSpherePrimitive sphere; // 球プリミティブ ofEasyCam cam; // カメラ ofLight light; // ライト };
23.
ライティング - ofLight ‣ testApp.cpp …
(前略) … ! void testApp::setup(){ ofBackground(0); // ライティングを有効に light.enable(); // スポットライトを配置 light.setSpotlight(); // 照明の位置 light.setPosition(-100, 100, 100); // 環境反射光の色 light.setAmbientColor(ofFloatColor(0.5, 0.2, 0.2, 1.0)); // 拡散反射光の色 light.setDiffuseColor(ofFloatColor(0.5, 0.5, 1.0)); // 鏡面反射光の色 light.setSpecularColor(ofFloatColor(1.0, 1.0, 1.0)); } ! … (後略) …
24.
ライティング - ofLight ‣ 立体のの前後の重なりが、おかしい!?
25.
ライティング - ofLight ‣ openFrameworksでは、そのままの設定では後から実行 した命令がどんどん上のレイヤーに描かれる ‣ 3Dの立体の場合、有り得ない重なりになることも ‣ DEPTH
TEST (深度テスト) を有効にする必要があり ‣ ofEnableDepthTest() で有効になる
26.
ライティング - ofLight ‣ testApp.cpp
を修正 … (前略) … ! void testApp::setup(){ ofBackground(0); ofEnableDepthTest(); // 深度テストを有効に ofEnableSmoothing(); // 表示をスムースに ←ココ // ライティングを有効に light.enable(); // スポットライトを配置 light.setSpotlight(); // 照明の位置 light.setPosition(-100, 100, 100); // 環境反射光の色 light.setAmbientColor(ofFloatColor(0.5, 0.2, 0.2, 1.0)); // 拡散反射光の色 light.setDiffuseColor(ofFloatColor(0.5, 0.5, 1.0)); // 鏡面反射光の色 light.setSpecularColor(ofFloatColor(1.0, 1.0, 1.0)); } ! … (後略) …
27.
ライティング - ofLight ‣ 正しい重なりに
28.
メッシュ (頂点情報の集合) ofMesh
29.
メッシュ (頂点情報の集合) -
ofMesh ‣ 立方体や球体などの単純な図形ではなく、より複雑な曲面 や多面体などの3Dの形状を描くにはどうすれば良いのか? ‣ ポリゴンメッシュ (Polygon Mesh) を使用する ‣ openFrameworksでは、ofMeshクラスで生成できる
30.
メッシュ (頂点情報の集合) -
ofMesh ‣ メッシュによって構成された複雑な形状の例
31.
メッシュ (頂点情報の集合) -
ofMesh ‣ メッシュ (ポリゴンメッシュ Polygon Mesh) ‣ 3Dグラフィックのモデリングの多面体オブジェクトの形 状を定義する頂点、辺、面の集合のこと ‣ 通常は三角形や四角形のポリゴン(面)によって構成される
32.
メッシュ (頂点情報の集合) -
ofMesh ‣ sin関数を利用して波を生成し、その3Dの形態をメッシュ で表現してみる ‣ まず、x, y軸方向に均等に並ぶグリッドを作成 ‣ グリッドの頂点をそれぞれ、x軸、y軸で異なる周波数のsin 関数で上下に振動させる ‣ 頂点の座標を描画する
33.
メッシュ (頂点情報の集合) -
ofMesh ‣ testApp.h #pragma once ! #include "ofMain.h" ! class testApp : public ofBaseApp{ public: void setup(); void update(); void draw(); void void void void void void void void void keyPressed(int key); keyReleased(int key); mouseMoved(int x, int y); mouseDragged(int x, int y, int button); mousePressed(int x, int y, int button); mouseReleased(int x, int y, int button); windowResized(int w, int h); dragEvent(ofDragInfo dragInfo); gotMessage(ofMessage msg); ofEasyCam cam; // カメラ ofMesh mesh; // 3Dメッシュ int w, h; // メッシュの幅と高さ };
34.
メッシュ (頂点情報の集合) -
ofMesh ‣ testApp.cpp #include "testApp.h" ! void testApp::setup(){ // 画面の設定 ofBackground(0); ofEnableDepthTest(); cam.setDistance(100); // メッシュの幅と高さ w = 200; h = 200; // 頂点の色を初期化 for (int i = 0; i < w; i++) { for (int j = 0; j < h; j++) { mesh.addColor(ofFloatColor(0.5, 0.8, 1.0)); } } }
35.
メッシュ (頂点情報の集合) -
ofMesh ‣ testApp.cpp void testApp::update(){ // まず全ての頂点情報を削除 mesh.clearVertices(); // 全ての頂点の位置を更新して頂点情報として追加 for (int i = 0; i < w; i++) { for (int j = 0; j < h; j++) { float x = sin(i * 0.1 + ofGetElapsedTimef())*10.0; float y = sin(j*0.15 + ofGetElapsedTimef()) * 10.0; float z = x + y; mesh.addVertex(ofVec3f(i - w/2, j - h/2, z)); } } }
36.
メッシュ (頂点情報の集合) -
ofMesh ‣ testApp.cpp void testApp::draw(){ // メッシュの描画 ofSetHexColor(0xffffff); cam.begin(); // カメラ開始 // 頂点の位置をドットで表示 glPointSize(2.0); glEnable(GL_POINT_SMOOTH); mesh.drawVertices(); cam.end(); // カメラ終了 // ログの表示 string info; info = "Vertex num = " + ofToString(w * h, 0) + "n"; info += "FPS = " + ofToString(ofGetFrameRate(), 2); ofDrawBitmapString(info, 30, 30); }
37.
メッシュ (頂点情報の集合) -
ofMesh ‣ 完成!!
38.
VBO (頂点バッファオブジェクト) ofVBO
39.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ ポリゴンメッシュなどの複雑な3D形状 ‣ 大量の頂点の情報を高速に演算する必要がある ‣ CPUに高負荷な演算 ! ‣ VBO (頂点バッファオブジェクト) ‣ あらかじめ頂点データをOpenGL側に作成しておき、グラフィ クスカード側で演算を行う手法 ‣ CPUの負荷を減らし、高速な描画を実現する ! ‣ 先程ofMeshで作成した3Dの波を、ofVBOによる計算に変更し てみる
40.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ VBOのイメージ GPU 大量の頂点 座標情報 高速演算 大量の頂点 色情報 CPU
41.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ testApp.h #pragma once ! #include "ofMain.h" ! class testApp : public ofBaseApp{ public: void setup(); void update(); void draw(); … (中略) … // クラス定数 static const int WIDTH = 200; static const int HEIGHT = 200; static const int NUM_PARTICLES = WIDTH * HEIGHT; ofEasyCam cam; // カメラ ofVbo myVbo; // VBO ofVec3f myVerts[NUM_PARTICLES]; // 頂点の座標 ofFloatColor myColor[NUM_PARTICLES]; // 頂点の色情報 };
42.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ testApp.cpp #include "testApp.h" ! const int testApp::WIDTH; const int testApp::HEIGHT; const int testApp::NUM_PARTICLES; ! void testApp::setup(){ // 画面の設定 ofBackground(0); ofEnableDepthTest(); ofEnableBlendMode(OF_BLENDMODE_ADD); cam.setDistance(100); // 頂点情報を初期化 for (int i = 0; i < for (int j = 0; myVerts[j * myColor[j * } } WIDTH; i++) { j < HEIGHT; j++) { WIDTH + i].set(i - WIDTH/2, j - HEIGHT/2, 0); WIDTH + i].set(0.5, 0.8, 1.0, 1.0); // 頂点バッファに位置と色の情報を設定 myVbo.setVertexData(myVerts, NUM_PARTICLES, GL_DYNAMIC_DRAW); myVbo.setColorData(myColor, NUM_PARTICLES, GL_DYNAMIC_DRAW); }
43.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ testApp.cpp void testApp::update(){ // 頂点の座標を更新 for (int i = 0; i < WIDTH; i++) { for (int j = 0; j < HEIGHT; j++) { float x = sin(i * 0.1 + ofGetElapsedTimef()) * 10.0; float y = sin(j * 0.15 + ofGetElapsedTimef()) * 10.0; float z = x + y; myVerts[j * WIDTH + i] = ofVec3f(i - WIDTH/2, j - HEIGHT/2, z); } } // 頂点バッファの頂点の座標情報を更新 myVbo.updateVertexData(myVerts, NUM_PARTICLES); } ! void testApp::draw(){ // VBOの頂点を描画 cam.begin(); glPointSize(2); myVbo.draw(GL_POINTS, 0, NUM_PARTICLES); cam.end(); // ログの表示 string info; info = "Vertex num = " + ofToString(NUM_PARTICLES, 0) + "n"; info += "FPS = " + ofToString(ofGetFrameRate(), 2); ofDrawBitmapString(info, 30, 30); }
44.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ 完成!!
45.
VBO 応用 カメラの明度でメッシュを生成
46.
カメラの明度でメッシュを生成 ‣ VBO + Mesh、応用 ‣ カメラから映像を入力 ‣ 映像のそれぞれのピクセルの明さを頂点の高さに ‣ ビデオからの色を、頂点の色に
47.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ testApp.h #pragma once ! #include "ofMain.h" ! class testApp : public ofBaseApp{ public: void setup(); void update(); void draw(); … (中略) … // クラス定数 static const int WIDTH = 640; static const int HEIGHT = 480; static const int NUM_PARTICLES = WIDTH * HEIGHT; ofEasyCam cam; // カメラ ofLight light; // ライト ofVbo myVbo; // VBO ofVec3f myVerts[NUM_PARTICLES]; // 頂点の座標 ofFloatColor myColor[NUM_PARTICLES]; // 頂点の色情報 ofVideoGrabber myVideo; }; // ビデオキャプチャ
48.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ testApp.cpp #include "testApp.h" ! const int testApp::WIDTH; const int testApp::HEIGHT; const int testApp::NUM_PARTICLES; ! void testApp::setup(){ // 画面の設定 ofBackground(0); ofEnableDepthTest(); ofEnableBlendMode(OF_BLENDMODE_ADD); cam.setDistance(400); myVideo.initGrabber(640, 480); // カメラ映像をキャプチャ ! // 頂点情報を初期化 for (int i = 0; i < for (int j = 0; myVerts[j * myColor[j * } } WIDTH; i++) { j < HEIGHT; j++) { WIDTH + i].set(i - WIDTH/2, j - HEIGHT/2, 0); WIDTH + i].set(1.0, 1.0, 1.0, 1.0); // 頂点バッファに位置と色の情報を設定 myVbo.setVertexData(myVerts, NUM_PARTICLES, GL_DYNAMIC_DRAW); myVbo.setColorData(myColor, NUM_PARTICLES, GL_DYNAMIC_DRAW); }
49.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ testApp.cpp void testApp::update(){ // カメラからの映像を更新 myVideo.update(); // もしカメラのフレームが更新されていたら if (myVideo.isFrameNew()) { // カメラの映像のピクセル情報を抽出 unsigned char * pixels = myVideo.getPixels(); // ピクセルごとに処理 for (int i = 0; i < WIDTH; i++) { for (int j = 0; j < HEIGHT; j++) { // ピクセルノRGB値を取得 float r = (float)pixels[j * myVideo.width * 3 + i * 3] / 256.0; float g = (float)pixels[j * myVideo.width * 3 + i * 3 + 1] / 256.0; float b = (float)pixels[j * myVideo.width * 3 + i * 3 + 2] / 256.0; // RGBから明度を算出 float brightness = (r + g + b) / 3.0f; // 明度から頂点の位置を設定 myVerts[j * WIDTH + i] = ofVec3f(i - WIDTH/2, j - HEIGHT/2, brightness * 256.0); // 頂点の色はカメラのピクセルの値をそのまま使用 } myColor[j * WIDTH + i] = ofFloatColor(r, g, b, 0.8); } // VBOの座標と色の情報を更新 } } myVbo.updateVertexData(myVerts, NUM_PARTICLES); myVbo.updateColorData(myColor, NUM_PARTICLES);
50.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ testApp.cpp void testApp::draw(){ // VBOを描画 cam.begin(); ofScale(1, -1, 1); glPointSize(3); myVbo.draw(GL_POINTS, 0, NUM_PARTICLES); cam.end(); // ログの表示 string info; info = "Vertex num = " + ofToString(NUM_PARTICLES, 0) + "n"; info += "FPS = " + ofToString(ofGetFrameRate(), 2); ofDrawBitmapString(info, 30, 30); }
51.
カメラの明度でメッシュを生成 ‣ 完成!!
52.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ よりVBOのパワーを実感できるサンプル ‣ 大量のパーティクルをnoise関数で飛散させる ‣ それぞれのパーティクルにはテクスチャ画像を貼る ‣ 高速にアニメーションしてみる
53.
VBO (頂点バッファオブジェクト) -
ofVBO ‣ 大量のパーティクルを高速にアニメーション
Baixar agora