Submit Search
Upload
Ogre3d 基礎
•
12 likes
•
17,392 views
K
kw
Follow
実際のコードに基づいたOgre3D資料です。これから始めようという方に。
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 54
Download now
Download to read offline
Recommended
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
Mr. Vengineer
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
[DL輪読会]YOLOv4: Optimal Speed and Accuracy of Object Detection
[DL輪読会]YOLOv4: Optimal Speed and Accuracy of Object Detection
Deep Learning JP
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向
Kensho Hara
Bloom filter
Bloom filter
Kumazaki Hiroki
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
Deep Learning JP
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
Kinuko Yasuda
3次元計測とフィルタリング
3次元計測とフィルタリング
Norishige Fukushima
Recommended
TensorFlow XLAは、 中で何をやっているのか?
TensorFlow XLAは、 中で何をやっているのか?
Mr. Vengineer
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
[DL輪読会]YOLOv4: Optimal Speed and Accuracy of Object Detection
[DL輪読会]YOLOv4: Optimal Speed and Accuracy of Object Detection
Deep Learning JP
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向
Kensho Hara
Bloom filter
Bloom filter
Kumazaki Hiroki
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
【DL輪読会】Perceiver io a general architecture for structured inputs & outputs
Deep Learning JP
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
Kinuko Yasuda
3次元計測とフィルタリング
3次元計測とフィルタリング
Norishige Fukushima
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
ORB-SLAMの手法解説
ORB-SLAMの手法解説
Masaya Kaneko
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
Deep Learning JP
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
Yusuke Fujimoto
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Masaya Kaneko
ピンホールカメラモデル
ピンホールカメラモデル
Shohei Mori
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会
nonane
モデル高速化百選
モデル高速化百選
Yusuke Uchida
【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields
cvpaper. challenge
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
Hori Tasuku
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)
なおき きしだ
Amazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみた
mganeko
Global Illumination
Global Illumination
Masafumi Noda
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
Trend of 3D object detections
Trend of 3D object detections
Eiji Sekiya
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
Yuki Tamura
CG2013 09
CG2013 09
shiozawa_h
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
Masayuki Tanaka
海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D
Kazuhisa Minato
マルチプラットフォーム開発導入
マルチプラットフォーム開発導入
Daisuke Nikura
More Related Content
What's hot
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
ORB-SLAMの手法解説
ORB-SLAMの手法解説
Masaya Kaneko
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
Deep Learning JP
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
Yusuke Fujimoto
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Masaya Kaneko
ピンホールカメラモデル
ピンホールカメラモデル
Shohei Mori
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会
nonane
モデル高速化百選
モデル高速化百選
Yusuke Uchida
【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields
cvpaper. challenge
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
Hori Tasuku
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)
なおき きしだ
Amazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみた
mganeko
Global Illumination
Global Illumination
Masafumi Noda
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Yosuke Onoue
Trend of 3D object detections
Trend of 3D object detections
Eiji Sekiya
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
Yuki Tamura
CG2013 09
CG2013 09
shiozawa_h
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
Masayuki Tanaka
What's hot
(20)
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
ORB-SLAMの手法解説
ORB-SLAMの手法解説
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
ピンホールカメラモデル
ピンホールカメラモデル
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会
モデル高速化百選
モデル高速化百選
【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
DockerコンテナでGitを使う
DockerコンテナでGitを使う
GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)
Amazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみた
Global Illumination
Global Illumination
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
Trend of 3D object detections
Trend of 3D object detections
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
CG2013 09
CG2013 09
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
Viewers also liked
海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D
Kazuhisa Minato
マルチプラットフォーム開発導入
マルチプラットフォーム開発導入
Daisuke Nikura
C++のビルド高速化について
C++のビルド高速化について
AimingStudy
Glfw3,OpenGL,GUI
Glfw3,OpenGL,GUI
hira_kuni_45
[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ
Shota Homma
C++11とゲーム製作
C++11とゲーム製作
uchan_nos
Cucumber
Cucumber
openfinanceDev
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Hideyuki TAKEI
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
akio19937
Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
tecopark
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Genya Murakami
大人の分散レンダリング
大人の分散レンダリング
Monta Yashi
Pythonではじめる OpenAI Gymトレーニング
Pythonではじめる OpenAI Gymトレーニング
Takahiro Kubo
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Yoshimura Soichiro
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
Toshihiko Yamakami
Viewers also liked
(18)
海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D
マルチプラットフォーム開発導入
マルチプラットフォーム開発導入
C++のビルド高速化について
C++のビルド高速化について
Glfw3,OpenGL,GUI
Glfw3,OpenGL,GUI
[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ
C++11とゲーム製作
C++11とゲーム製作
Cucumber
Cucumber
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
Visual C++で使えるC++11
Visual C++で使えるC++11
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
大人の分散レンダリング
大人の分散レンダリング
Pythonではじめる OpenAI Gymトレーニング
Pythonではじめる OpenAI Gymトレーニング
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
Similar to Ogre3d 基礎
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Atsushi Tadokoro
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
AdvancedTechNight
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門
Masahiko Mizuta
Flashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3D
Katsushi Suzuki
Windows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMI
junichi anno
Sencha study
Sencha study
Shinsuke Sugita
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3D
Katsushi Suzuki
Android gameprogramming
Android gameprogramming
Masahiro Hidaka
シェーダーしよっ☆ Let's play shaders!
シェーダーしよっ☆ Let's play shaders!
Yuichi Higuchi
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
Hiroshi Oyamada
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Tomoaki Shimizu
PF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsola
android sola
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
Kohsuke Yuasa
Cocos2d-xハンズオン#1 in 大阪
Cocos2d-xハンズオン#1 in 大阪
Shingo Yamano
Gingerbread
Gingerbread
android sola
Cocos2d x-sprite3d
Cocos2d x-sprite3d
aktsk
UnityとnodeとMMDと
UnityとnodeとMMDと
sters
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
Shinnosuke Morimoto
Away3D 4.1 パーティクル入門
Away3D 4.1 パーティクル入門
Yasunobu Ikeda
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
kimukou_26 Kimukou
Similar to Ogre3d 基礎
(20)
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門
Flashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3D
Windows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMI
Sencha study
Sencha study
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3D
Android gameprogramming
Android gameprogramming
シェーダーしよっ☆ Let's play shaders!
シェーダーしよっ☆ Let's play shaders!
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
PF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsola
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
Cocos2d-xハンズオン#1 in 大阪
Cocos2d-xハンズオン#1 in 大阪
Gingerbread
Gingerbread
Cocos2d x-sprite3d
Cocos2d x-sprite3d
UnityとnodeとMMDと
UnityとnodeとMMDと
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
Away3D 4.1 パーティクル入門
Away3D 4.1 パーティクル入門
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
Recently uploaded
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
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
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
Recently uploaded
(10)
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...
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Ogre3d 基礎
1.
Ogre3D 基礎
2013年 1月
2.
Ogre3Dとは
Entity SceneNode SceneManager Viewport シーンの完全なクリア、解放 ジオメトリ 2Dイメージの表示 日本語フォント表示
3.
Ogre3Dとは
4.
Ogre3D レンダリングに特化し、シーン グラフに基づくシーン指向なエ ンジン Direct3D/OpenGLを抽象化し たクラスライブラリでC++等各 種プログラミング言語に対応 カスタムシェーダ LOD スケルタルアニメーション MITライセンス
5.
シーンの最小構成 SceneManager SceneNode Camera Entity
SceneManager Node カメラ RootNode Node Entity
6.
シーンの描画 Camera Window(レンダーターゲット) Viewport
カメラ Viewport Window
7.
Entity
8.
Entity シーン内に存在する移動可能な
//Entity作成 Ogre::Entity* ent = NULL; オブジェクト(麻雀牌、点棒) Entityにメッシュとマテリアル ent = mSceneMgr->createEntity( を割当てる "msh:PaiBody:0" Entityインスタンスを通して ); ent->setMaterialName( Entityを複製可能 "mtr:Pai:1" ); ent->setCastShadows( true );
9.
Entity 解放
// Entity解放 mSceneMgr->destroyEntity( "msh:PaiBody:0" ); // SceneNode, Entitie, // Lightなど解放 mSceneMgr->clearScene();
10.
SceneNode
11.
SceneNode SceneNodeはシーングラフ階
//SceneNode作成 Ogre::SceneNode* node = NULL; 層のノード 作成したノードにEntityやカメ node = mSceneMgr-> ラといった要素を登録すること getRootSceneNode()-> でシーンを構築 createChildSceneNode( “node:1” ); node->attachObject( ent );
12.
SceneNode 解放
// SceneNode解放 mSceneMgr->getRootSceneNode()-> removeAndDestroyChild( “node:1” ); // SceneNode, Entitie, // Lightなど解放 mSceneMgr->clearScene();
13.
SceneNode操作 SceneNodeを介して 移動/拡
//SceneNodeにEntityを登録 大/回転などをおこなう node->attachObject( ent ); 一つの子ノードに複数のEntity を登録可能。同一ノードに属す // グローバル移動 るオブジェクトに同一操作が適 node->setPosition(RX, RY, RZ); 用できる。 // スケール node->setScale(1.00, 1.00, 1.00); // 回転 node->yaw( Ogre::Radian(1.57), Ogre::Node::TS_WORLD );
14.
オーバーレイ用SceneNode Overlay用の3D空間は別
//SceneNodeを作成 ルートノードを自前で作成 Ogre::SceneNode* node_ov = new Ogre::SceneNode( mSceneMgr, name ); // SceneNodeを解放 delete node_ov; node_ov = NULL;
15.
SceneManager
16.
SceneManager シーングラフを管理
//SceneManager作成 mSceneMgr = レンダリング方式の選定※1 gm->GM_getOgreRoot()-> SceneManagerインスタンス createSceneManager( を作成するとルートノードがひ Ogre::ST_GENERIC とつ作られる ); ルートノードを基点に、各種オ ブジェクト(Entity、カメラ、 パーティクル、Skyboxなど) を登録 ※1 Octree、BSP、Portal、Pagingなど
17.
SceneManager
Node MainCamera 麻雀ゲームの例 Node SubCamera SceneManager Node Light Node Shadow RootNode Node 麻雀牌 Node 卓 Node 点棒 RootNode Node 前面の牌 Node パネル Overlay用 Node 文字 Node スコア
18.
SceneManager 解放
// SceneManager解放 Ogre::SceneManager* scene = NULL scene = Client->getSceneMgr(); if( scene ){ // SceneManager解放 gm->GM_getOgreRoot()-> destroySceneManager(scene); }
19.
SceneManager 複数のSceneManagerインス タンスを持てる デフォルトのレンダリング方式 では空間分割は行われない
20.
Viewport
21.
Viewport レンダーターゲット上の描画領
// Viewport作成 unsigned short zorder = 100; 域とカメラを結びつける Direct3D9/OpenGLの Ogre::Viewport* vp = Viewportと同じ gm->GM_getOgreWindow()-> カメラ毎にViewportは1個ま addViewport ( mCamera, で割当て zorder, レンダーターゲット毎に複数の 0.0f, 0.0f, //left, top Viewportを追加できる 1.0f, 1.0f //width, height );
22.
Viewport 麻雀ゲームの例
カメラ Window カメラ カメラ Texture
23.
Viewport 解放
// Viewport解放 Ogre::RenderWindow* window = gm->GM_getOgreWindow(); if( window ){ window->removeViewport( zorder ); }
24.
Viewport Viewport毎にオーバーレイの
// Viewportを隠す Ogre::Viewport* vp = 表示/非表示の切替可能 camera->getViewport(); Viewportを最小化して隠すテ クニック(Viewportの再作成が if( vp ){ 面倒な場合) //幅を0に vp->setDimensions( 0.0f, 0.0f, 0.0f, 0.0f ); //フレーム更新をおこなわない vp->setAutoUpdated( false ); }
25.
シーンの完全なクリア、解放
26.
手順 以下の順に削除/解放をおこなう 1)Mesh、ManualObject、Stat
6) Compositor icGeometry 7) CompositorChain 2) Material 8) Viewport 3) Texture 9) Camera 4) OverlayElement 10) SceneNode 5) Overlay 11) SceneManager
27.
例 // 1) Mesh
// 4) OverlayElement Ogre::MeshManager::getSingleton(). Ogre::MaterialManager::getSingleton(). remove( "msh:Floor:0" ); remove( "p:ScoreBoard:0" ); // 2) Material Ogre::MaterialManager::getSingleton(). Ogre::OverlayManager::getSingleton(). remove( "mtr:Floor:0" ); destroyOverlayElement( // 3) Texture "p:ScoreBoard:0" Ogre::TextureManager::getSingleton(). ); remove( "RTT_Texture" ); // 5) Overlay Ogre::OverlayManager::getSingleton(). destroy( "OnSceneOverlay" );
28.
例 // 6) Compositor
// 7) CompositorChain Ogre::Viewport* vp = Ogre::Viewport* vp = camera->getViewport(); camera->getViewport(); if( vp ) if( vp ) { { Ogre::CompositorManager:: Ogre::CompositorManager:: getSingleton(). getSingleton(). removeCompositor( vp, removeCompositorChain( vp ); "Bloom" } ); }
29.
例 // 8) Viewport
// 9) Camera Ogre::RenderWindow* window = mSceneMgr->destroyAllCameras(); gm->GM_getOgreWindow(); if( window ){ window->removeAllViewports(); }
30.
例 // 10) SceneNode,
Entitie, Lightなど // 11) SceneManager mSceneMgr->clearScene(); gm->GM_getOgreRoot()-> destroySceneManager( mSceneMgr );
31.
忘れがちなこと ManualObjectから convertToMeshしたらメッ シュが作られるのでこれも解放 対象
32.
ジオメトリ
33.
プリミティブ・ジオメトリ Rectangle2D
//Rectangle2D作成 シンプルな平面型の四角形※例 rect = new Ogre::Rectangle2D( true ); WireBoundingBox ワイヤーフレーム型のボックス Ogre::SceneNode*node = mSceneMgr-> getRootSceneNode()-> createChildSceneNode( "node:2" ); node->attachObject( rect ); rect->setMaterial( "mtr:Floor:0" );
34.
プリミティブ・ジオメトリ Rectangle2D解放
//Rectangle2D解放 delete rect; Rectangle2Dインスタンスを先 に解放。関連するマテリアルや Ogre::MaterialManager:: テクスチャはその後削除 getSingleton(). remove( "mtr:Floor:0" );
35.
カスタム・ジオメトリ ManualObjectを使用 2種類の表示の仕方 SceneNodeに直接登録
convertToMeshメソッドでメッシュ 化したあとEntity登録※コード例
36.
カスタム・ジオメトリ //ManualObject作成
mo->triangle(0,2,1); Ogre::ManualObject* mo = NULL; mo->triangle(2,0,3); mo = mSceneMgr-> mo->end(); createManualObject(“NakiMark”); //ManualObjectをメッシュ化 mo->position(cmW,cpH,0); mo->convertToMesh( mo->textureCoord( 0,0f, 1.0f ); “msh:NakiMark:0” mo->position(cpW,cpH,0); ); mo->textureCoord( 1.0f, 1.0f ); //Entity作成 mo->position(cpW,cmH,0); Ogre::Entity* ent = mSceneMgr-> mo->textureCoord( 1.0f, 0.0f ); createEntity("msh:NakiMark:0"); mo->position(cmW,cmH,0); mo->textureCoord( 0.0f, 0.0f ); //この後 nodeにattachして表示
37.
スタティック・ジオメトリ 複数のEntityを単一オブジェ クト化 GPUへの転送命令を減らして 性能向上 スタティック・ジオメトリは 分割できない すべて表示されるか、すべて 表示されないか(カリングに 問題を持つ)
38.
プリミティブ・メッシュ CreatePlane
//CreatePlane作成 シンプルな平面※コード例 Ogre::MeshManager:: getSingleton().createPlane( CreateCurvedIllusionPlane "msh:Floor:0", 平面上に曲率を再現 Ogre::ResourceGroupManager:: CreateCurvedPlane DEFAULT_RESOURCE_GROUP_NAME, CreateBezierPatch *plane, //MovablePlane ベジェ曲面 50, 50, 1, 1, true, 1, 1.0f, 1.0f, Ogre::Vector3::UNIT_Z );
39.
2Dイメージの表示
40.
Ogre3Dでの2D表示方法 A) Overlay APIを使う B)
Manaual Objectを使う C) Ogre内部APIを使って描画 D) 外部ライブラリを使う それぞれ長所短所あり
41.
A)Overlay APIを使う 表示/非表示の切替が可能
3Dオーバーレイではマウスカー Overlay::rotateで回 ソル位置を拾えない(Rayを使 転、Overlay::setScaleで拡縮 用できない) ダイナミック・テクスチャによ Entity::getWorldBoundingB り各種ブレンディング処理が可 oxもしくは、スクリーン座標か 能 らマウスカーソルを判定
42.
B)Manual Objectを使う 回転、拡縮が可能 各種ブレンディング処理が可能 リアルタイムに制御するにはマ テリアルの操作が必要 視点に左右され、dot by
dotな 表示に難点
43.
C)Ogre内部APIを使って描画 各種ブレンディング処理が可能 回転、拡縮はOgre内部コードを 拡張する必要 簡易2Dスプライトマネージャ http://www.ogre3d.org/tikiw
iki/SpriteManager2d&struct ure=Cookbook
44.
D)外部ライブラリを使う CEGUI、Gorilla、OgreMagic など モジュールサイズが大きくなる CEGUI http://www.cegui.org.uk/wi
ki/index.php/Main_Page Gorilla※シンプルでお勧め http://www.ogre3d.org/tikiw iki/Gorilla OgreMagic http://www.freewebs.com/o gremagic/index.htm
45.
Overlayの使用方法 プログラムからOverlayを作 成してみます※コード例 テクスチャ画像を読み込んで Ovelayとして表示するサン プル
function_panel.png
46.
Overlayの使用方法 //Overlay作成
//PanelOverlayElement作成 Ogre::Overlay* ov = Ogre::OverlayContainer*oct = Ogre::OverlayManager:: cm->CM_createPanelOverlayElement getSingleton(). ( create( "OnSceneOverlay" ); "p:MesgPanel:0", "function_panel.png", ov->setZOrder( 1 ); //650が最前面 0, 0, 70, 26, ov->show(); 1.0f ); //Overlayに登録 ov->add2D( oct );
47.
Overlayの使用方法 //PanelOverlayElement取得
//表示位置 Ogre::PanelOverlayElement* e = int vpW = 800; //スクリーン幅 static_cast int vpH = 600; <Ogre::PanelOverlayElement *> (Ogre::OverlayManager:: e->setPosition(400/vpW, 200/vpH); getSingleton(). e->show(); getOverlayElement( “p:MesgPanel:0” //画面表示完了 ) );
48.
日本語フォント表示
49.
日本語フォント表示 fontdefファイルに設定を記
MyFont { 述する type truetype typeセクションにtruetype source meiryo.ttc を指定した場合、sourceに size 32 resolution 96 フォントデータを指定 code_points 33-166 typeセクションにimageを 12272-12543 指定した場合、sourceに画 23383-23383 28450-28450 像ファイルを指定 }
50.
日本語フォント表示 fontdefファイルの
MyFont { code_pointセクションに type truetype コードポイント(符号点)を記 source meiryo.ttc 述 size 32 resolution 96 code_pointセクションには code_points 33-166 Unicodeを指定 12272-12543 23383-23383 28450-28450 }
51.
Overlayにテキストを表示 //Overlay作成
//PanelOverlayElement作成 Ogre::Overlay* ov = Ogre::OverlayContainer*oct = Ogre::OverlayManager:: cm->CM_createTextOverlayElement getSingleton(). ( create( "OnSceneOverlay" ); "t:DEBUG:0", TEXT("デバッグモードです。"), ov->setZOrder( 1 ); //650が最前面 MIDDLE_FONT, //サイズ ov->show(); COLOR_WHITE //色 ); //Overlayに登録 ov->add2D( oct );
52.
Overlayにテキストを表示 //PanelOverlayElement取得
//表示位置 Ogre::PanelOverlayElement* e = int vpW = 800; //スクリーン幅 static_cast int vpH = 600; <Ogre::PanelOverlayElement *> (Ogre::OverlayManager:: e->setPosition(100/vpW, 100/vpH); getSingleton(). e->show(); getOverlayElement( ”t:DEBUG:0” //画面表示完了 ) );
53.
その他 必要なcode pointのみを指
Ogreでの日本語表示につい 定する。多くを指定するとテ ては下記URLを参考にさせて クスチャが消費 いただきました。 フォントのライセンス < CreoSproutソフトウェア研 再配布可能な日本語フォント 究部 > http://ahirujigen.blog97.fc2. その他、改変/商用可否など com/blog-entry-279.html
Download now