Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Kazuhisa Minato
6,198 views
海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1で使用したOGRE 3Dに関する発表のスライドです。
Technology
◦
Read more
24
Save
Share
Embed
Embed presentation
Download
Downloaded 59 times
1
/ 52
2
/ 52
3
/ 52
4
/ 52
5
/ 52
6
/ 52
7
/ 52
8
/ 52
9
/ 52
10
/ 52
11
/ 52
12
/ 52
13
/ 52
14
/ 52
15
/ 52
16
/ 52
17
/ 52
18
/ 52
19
/ 52
20
/ 52
21
/ 52
22
/ 52
23
/ 52
24
/ 52
25
/ 52
26
/ 52
27
/ 52
28
/ 52
29
/ 52
30
/ 52
31
/ 52
32
/ 52
33
/ 52
34
/ 52
35
/ 52
36
/ 52
37
/ 52
38
/ 52
39
/ 52
40
/ 52
41
/ 52
42
/ 52
43
/ 52
44
/ 52
45
/ 52
46
/ 52
47
/ 52
48
/ 52
49
/ 52
50
/ 52
51
/ 52
52
/ 52
More Related Content
PDF
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
by
Drecom Co., Ltd.
PDF
低レイヤー入門
by
demuyan
PDF
先進的なルックデベロップメント
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Unityではじめるオープンワールド制作 エンジニア編
by
Unity Technologies Japan K.K.
PDF
Mask Material only in Early Z-passの効果と仕組み
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
by
historia_Inc
PDF
攻略リニアカラー改訂版
by
小林 信行
PDF
CEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライド
by
Toshiyasu Miyabe
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
by
Drecom Co., Ltd.
低レイヤー入門
by
demuyan
先進的なルックデベロップメント
by
エピック・ゲームズ・ジャパン Epic Games Japan
Unityではじめるオープンワールド制作 エンジニア編
by
Unity Technologies Japan K.K.
Mask Material only in Early Z-passの効果と仕組み
by
エピック・ゲームズ・ジャパン Epic Games Japan
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
by
historia_Inc
攻略リニアカラー改訂版
by
小林 信行
CEDEC2015「加算合成コストが0になる!?すぐに使えるP-MAPブレンドテクニック」発表スライド
by
Toshiyasu Miyabe
What's hot
PDF
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...
by
KLab Inc. / Tech
PDF
UE4におけるエフェクトの基本戦略事例 後半
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UE4におけるエフェクトの基本戦略事例 前半
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
【Unity道場】新しいPrefabワークフロー入門
by
Unity Technologies Japan K.K.
PPTX
比較サイトの検索改善(SPA から SSR に変換)
by
gree_tech
PDF
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
by
Unity Technologies Japan K.K.
PDF
Unity開発で使える設計の話+Zenjectの紹介
by
torisoup
PPTX
ゲームエンジンの中の話
by
Masayoshi Kamai
PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
by
京大 マイコンクラブ
PDF
UE4を使った映像制作 (UE4 Character Art Dive Online)
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
UnityのクラッシュをBacktraceでデバッグしよう!
by
Unity Technologies Japan K.K.
PDF
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
by
UnityTechnologiesJapan002
PPTX
なぜなにリアルタイムレンダリング
by
Satoshi Kodaira
PPTX
UE4を用いたTPS制作事例 EDF:IR パラメータ管理実装実例
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
RPGにおけるイベント駆動型の設計と実装
by
Koji Morikawa
PPTX
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 前編
by
UnityTechnologiesJapan002
DOCX
UE4でPerforceと連携するための手順
by
エピック・ゲームズ・ジャパン Epic Games Japan
PPTX
C#で速度を極めるいろは
by
Core Concept Technologies
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク...
by
KLab Inc. / Tech
UE4におけるエフェクトの基本戦略事例 後半
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるエフェクトの基本戦略事例 前半
by
エピック・ゲームズ・ジャパン Epic Games Japan
【Unity道場】新しいPrefabワークフロー入門
by
Unity Technologies Japan K.K.
比較サイトの検索改善(SPA から SSR に変換)
by
gree_tech
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
by
Unity Technologies Japan K.K.
Unity開発で使える設計の話+Zenjectの紹介
by
torisoup
ゲームエンジンの中の話
by
Masayoshi Kamai
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
by
京大 マイコンクラブ
UE4を使った映像制作 (UE4 Character Art Dive Online)
by
エピック・ゲームズ・ジャパン Epic Games Japan
ロボット好き集まれ!こいつ、動くぞ。星と翼のパラドクス開発事例
by
エピック・ゲームズ・ジャパン Epic Games Japan
UnityのクラッシュをBacktraceでデバッグしよう!
by
Unity Technologies Japan K.K.
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
by
UnityTechnologiesJapan002
なぜなにリアルタイムレンダリング
by
Satoshi Kodaira
UE4を用いたTPS制作事例 EDF:IR パラメータ管理実装実例
by
エピック・ゲームズ・ジャパン Epic Games Japan
RPGにおけるイベント駆動型の設計と実装
by
Koji Morikawa
【Unity道場Houdini編】UnityとHoudiniで作るRealtimeVFX実践解説 前編
by
UnityTechnologiesJapan002
UE4でPerforceと連携するための手順
by
エピック・ゲームズ・ジャパン Epic Games Japan
C#で速度を極めるいろは
by
Core Concept Technologies
Similar to 海外ゲーム技術勉強会#1 OGRE3D
PDF
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
by
Takahito Tejima
PDF
UE4.17で入る新機能を一気に紹介・解説!
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
Ogre3d 基礎
by
kw
PDF
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
by
Atsushi Tadokoro
PDF
Flashup13 Basic Training of Flare3D
by
Katsushi Suzuki
PDF
IbisPaintのOpenGLES2.0
by
Eiji Kamiya
PDF
WebGL and Three.js
by
yomotsu
PDF
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
by
AdvancedTechNight
PPTX
Delphi で超高速 OpenGL 2D/3D 描画
by
LUXOPHIA institute
PPT
Heliumエンジンの設計と実装
by
DADA246
PDF
Three.jsで3D気分
by
Toshio Ehara
PPTX
OpenGLプログラミング
by
幸雄 村上
PDF
CEDEC 2015 Houdini for Game VFX
by
Ken Taki
PDF
FiltersでGLSLを楽しく学んじゃおう!
by
Kazuya Hiruma
PDF
WebGL (Three.js) Code Lab - Intro. [ GTUG Girls 10th]
by
Yukio Andoh
PDF
Web GLの話
by
Norihito YAMAKAWA
PDF
1. モデリング 3 dcg制作の流れ _ 基礎知識 _ blender入門(2
by
Sasaki Minoru
PDF
Gcm#3 vr project making of サラと毒蛇の王冠
by
GREE/Art
PDF
Glfw3,OpenGL,GUI
by
hira_kuni_45
PDF
UnrealEngine の VR 事情
by
Masaaki Suga
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
by
Takahito Tejima
UE4.17で入る新機能を一気に紹介・解説!
by
エピック・ゲームズ・ジャパン Epic Games Japan
Ogre3d 基礎
by
kw
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
by
Atsushi Tadokoro
Flashup13 Basic Training of Flare3D
by
Katsushi Suzuki
IbisPaintのOpenGLES2.0
by
Eiji Kamiya
WebGL and Three.js
by
yomotsu
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
by
AdvancedTechNight
Delphi で超高速 OpenGL 2D/3D 描画
by
LUXOPHIA institute
Heliumエンジンの設計と実装
by
DADA246
Three.jsで3D気分
by
Toshio Ehara
OpenGLプログラミング
by
幸雄 村上
CEDEC 2015 Houdini for Game VFX
by
Ken Taki
FiltersでGLSLを楽しく学んじゃおう!
by
Kazuya Hiruma
WebGL (Three.js) Code Lab - Intro. [ GTUG Girls 10th]
by
Yukio Andoh
Web GLの話
by
Norihito YAMAKAWA
1. モデリング 3 dcg制作の流れ _ 基礎知識 _ blender入門(2
by
Sasaki Minoru
Gcm#3 vr project making of サラと毒蛇の王冠
by
GREE/Art
Glfw3,OpenGL,GUI
by
hira_kuni_45
UnrealEngine の VR 事情
by
Masaaki Suga
海外ゲーム技術勉強会#1 OGRE3D
1.
OGRE 3D 海外ゲーム技術勉強会#1 資料
@minahito
2.
本日のお話 OGREを使う OGREの拡張性 OGREのレンダリング Plugin アーキテクチャ/Reference App
Layer
3.
OGRE 3D Object-oriented Graphics Rendering
Engine シーングラフベースの描画システム 抽象化によりDirectX/OpenGLに両 対応 MITライセンス ちょっとだけ紹介してます↑
4.
OGRE 3D 2001-2002年頃開発開始、2005年リリース 当時まだそれほどジャスティスではなかった STL を多用、主要なジャンプはほぼvtable経由、なにこ れ重い!(2001年)→PCの発展で超余裕に 個人ではなくチームでメンバーを刷新しながら開 発、コミュニティも充実
5.
OGRE 3D 2001-2002年頃開発開始、2005年リリース 当時まだそれほどジャスティスではなかった STL を多用、主要なジャンプはほぼvtable経由、なにこ れ重い!(2001年)→PCの発展で超余裕に 個人ではなくチームでメンバーを刷新しながら開
最近のバージョンでは、毎フレーム解放再確保 発、コミュニティも充実 するようなコンテナは自前の効率の良いアロ ケータを使うようになっている
6.
OGRE 3D オープンソースプロジェクトなので特定タイトル向 けの設計傾向を極力排除できる 設計>速度(製品作ってご飯食べるわけじゃない から) Game Engine
Architecture などでも紹介
7.
お話ししたいこと オブジェクト指向でエンジンを提供すると、なにが できて、コード面はどうなっちゃうのか OGRE はOOの利点をゲームタイトルにおける部分 的改造と追加、そしてそのre-useに利用 タイトル非特化フレームワークやエンジンの開発ミッ ションを背負ってる方の参考情報のひとつに
8.
お話ししたいこと オブジェクト指向でエンジンを提供すると、なにが できて、コード面はどうなっちゃうのか OGRE はOOの利点をゲームタイトルにおける部分 的改造と追加、そしてそのre-useに利用 タイトル非特化フレームワークやエンジンの開発ミッ ションを背負ってる方の参考情報のひとつに 描画エンジン的観点では見るべき点は少ないです!
9.
お話ししたいこと オブジェクト指向でエンジンを提供すると、なにが できて、コード面はどうなっちゃうのか OGRE はOOの利点をゲームタイトルにおける部分
的改造と追加、そしてそのre-useに利用 得られるものもありますが、今の時期を考える と、 OGRE をじっくり見るより、まずなにより タイトル非特化フレームワークやエンジンの開発ミッ DX11 を触っておくべき時期だと思います! ションを背負ってる方の参考情報のひとつに 描画エンジン的観点では見るべき点は少ないです!
10.
OGREを使う 本題じゃないのでさらっと
11.
ExampleApplication ExampleApplication は即 OGREアプリを作るための 簡易フレームワーク 下位ライブラリと明確に分 けられている 使わなくても良い
12.
ExampleApplication ExampleApplication は即 OGREアプリを作るための 簡易フレームワーク 下位ライブラリと明確に分 けられている
導入開始時のMAINが短いのは 使わなくても良い 使う側にはありがたい
13.
シーングラフの構築
14.
シーングラフの構築
UnityのTransformコンポーネントみたいなもの
15.
MovableObject エンティティ、ライト、カメラ等はシーンノードの継承 クラスではない→ノードにアタッチして使う アタッチ可能IF : MovableObject
を継承 シーングラフノードとMovableObjectを別系統で拡張可 能
16.
MovableObject エンティティ、ライト、カメラ等はシーンノードの継承 クラスではない→ノードにアタッチして使う
ゲームオブジェクトは自前で定義することにな る。これら MovableObject を継承拡張して アタッチ可能IF : MovableObject を継承 ゲームオブジェクトを定義するというより、コ ンポーネント扱いして、コンポジットして作る シーングラフノードとMovableObjectを別系統で拡張可 能 のが一般的。
17.
フレーム前後の処理 FrameEvent の中に⊿時間なども入っている
18.
フレーム前後の処理
OGREはかなり多くのクラスが専用のリスナー を備えており、前後処理のフックや特定イベン トの通知を受け取れる。 クラスを書き換えなくて済むし、インスタンス 単位で別の処理ができるし、拡張されたクラス に対しても共通のリスナーを食わせられる。 FrameEvent の中に⊿時間なども入っている
19.
OGREの拡張性
20.
OGREの拡張性 既存のクラスを継承拡張する →RenderSystem →SceneManagerでよくやる OGREが持っていない機能を単に追加 特定役割のオブジェクトを差し替える(後述)
21.
OGREの拡張性 既存のクラスを継承拡張する →RenderSystem →SceneManagerでよくやる OGREが持っていない機能を単に追加 特定役割のオブジェクトを差し替える(後述)
22.
RenderSystem
Ogre::Root + getSceneManager(name) + getRenderSystem() + getRenderManager() + getMeshManager() Ogre::RenderSystem Ogre::RenderSystem_GL Ogre::RenderSystem_Direct3D9 起動時に環境にあわせてひとつ選択する
23.
OGREの拡張性 既存のクラスを継承拡張する →RenderSystem →SceneManagerでよくやる OGREが持っていない機能を単に追加 特定役割のオブジェクトを差し替える(後述)
24.
ディアブロタイプ
フライトゲーム ゲームによって空間管理やカリングが異なる 標準、BSP、ページベース、四分木、八分木などの シーンマネージャを入手可能
25.
SceneManager
Ogre::Root + getSceneManager(name) + getRenderSystem() + getRenderManager() + getMeshManager() Ogre::SceneManager Ogre::OctreeSceneManager Ogre::BSPSceneManager レベルに合わせて変更するためにスイッチ可能
26.
Observer/Visitor 再び OGRE全般に行き渡っているポリシー 例) 標準シーンマネージャとOctTreeシーンマネー ジャでは、異なる型のシーンノードを生成する
SceneNode::Listener を使えばどちらのノードに もフックできる Visitorも同様の貢献をする(詳しくは後述)
27.
OGREの拡張性 既存のクラスを継承拡張する →RenderSystem →SceneManagerでよくやる OGREが持っていない機能を単に追加 特定役割のオブジェクトを差し替える(後述)
28.
OGREの拡張性 既存のクラスを継承拡張する →RenderSystem →SceneManagerでよくやる OGREが持っていない機能を単に追加 特定役割のオブジェクトを差し替える(後述)
モジュール的に追加するならプラグインがよい
29.
plugin.cfg この情報に従ってDLLをロー ドする 起動したサブシステムは Ogre::Root からアクセス可能
30.
pluginとRefAppLayer pluginはOgre::Rootからアプローチ可能なシステム を追加する共通の段取り Reference Application Layer
... OGREと3rd Libを 強烈に関係させる例(物理エンジンなど) 本日は割愛!(超重要) すみませんすみません...
31.
換装できないものもある ResourceManager はそれ単体の拡張性はあるが、 MyResourceManager 等と取り替えることは不可
TextureManager、MeshManagerなども同様 ただしOGRE内部で依存性の低いサブシステムは 「標準のものは使わずに追加したプラグインのも のを使う」ことができる
32.
OGREのレンダリング
33.
抽象化の下でのレンダリング シーングラフ中の MovableObject から
Renderable を収集して描画する MovableObject ≠ Renderable ... ボリューム、音 源、ライト、カメラ、etc... MovableObject、Renderableはタイトル側で拡張 されていることが多いが、インターフェイスを通 じて Renderable を集めることができる
34.
抽象化の下でのレンダリング シーングラフ中の MovableObject から
Renderable を収集して描画する MovableObject ≠ Renderable ... ボリューム、音 源、ライト、カメラ、etc... MovableObject は複数の Renderable を持つこ MovableObject、Renderableはタイトル側で拡張 とができる(そして持つことになる)。キュー されていることが多いが、インターフェイスを通 の受け入れは1回だが、受け入れ時に複数積む じて Renderable を集めることができる ことができる。ソートはお任せ。
35.
Ogre::Root
+ renderOneFrame() Root::renderOneFrame() がキックされて描画開始
36.
Ogre::Root
+ renderOneFrame() 1...* Ogre::RenderTarget + update() Rootは1つ以上のプライオリティ付け済みのレン ダーターゲットを抱えてる。 順番に更新
37.
1...*
Ogre::RenderTarget + update() 1...* Ogre::Viewport +update() レンダーターゲット更新にあたり、ビューポート を1つ以上持ってるので、すべて更新する
38.
1...*
Ogre::RenderTarget + update() 1...* Ogre::Viewport +update() レンダーターゲット更新にあたり、ビューポート このレンダーターゲットとビューポートのアプ を1つ以上持ってるので、すべて更新する ローチだけを見ても、DX11の特性を生かした 対応はこのままでは難しいでしょう。
39.
1...*
Ogre::Viewport +update() Ogre::Camera ? + renderScene(Viewport*) ビューポートにはカメラが割り振られているの で、レンダリングを依頼
40.
1...*
Ogre::Viewport +update() Ogre::Camera ? + renderScene(Viewport*) ビューポートにはカメラが割り振られているの で、レンダリングを依頼 このカメラはシーンマネージャによって型が異 なる可能性がある。
41.
Ogre::Camera ?
+ renderScene(Viewport*) Ogre::SceneManager ? + renderScene(Camera*, Viewp カメラは自身のクリエイターであるシーンマネー ジャと協働でレンダリングを開始する
42.
RenderQueue シーングラフ中の MovableObject から、 SceneManager
のポリシーでカメラから見えてい る Renderable を収集 空の RenderQueue が、 Renderable をエンキュー してもらう旅に旅立つ(始発駅: ルートノード) カスタム RenderQueue を作って差し替え可
43.
RenderQueue シーングラフ中の MovableObject から、 SceneManager
のポリシーでカメラから見えてい る Renderable を収集 空の RenderQueue が、 Renderable をエンキュー してもらう旅に旅立つ(始発駅: ルートノード) カスタム RenderQueue を作って差し替え可 RENDERQUEUEはエンキュー時にソートを行う
44.
RenderQueue この話です シーングラフ中の MovableObject
から、 SceneManager のポリシーでカメラから見えてい る Renderable を収集 空の RenderQueue が、 Renderable をエンキュー してもらう旅に旅立つ(始発駅: ルートノード) カスタム RenderQueue を作って差し替え可 RENDERQUEUEはエンキュー時にソートを行う
45.
QueueへのVisitor(おまけ)
Ogre::RenderQueue Ogre::QueuedRenderableVisitor 系 ? Ogre::QueuedRenderableCollection ? xxxVisitor + acceptVisitor() ↑ やっぱこれも差し替え可能 VisitorにRenderableが渡された先からカメラが割 り振られているので、レンダリングを依頼
46.
最後に
47.
まとめ ExampleApplication のようなフレームワークは任意 導入なのであると嬉しい Observer と
Visitor で各クラスの責任範囲をシンプ ルにしたまま、その方向性で拡張できる DX11の威力発揮が難しい設計とはいえ、描画シー ケンスは基底クラスに手出しすることなく、短い コードで深いカスタマイズができる
48.
今日やらなかった重要話 Reference Application Layer アニメーションシステム 描画上の”レイヤー”とその制御方法 リソースマネージャ
ゲームエンジンアーキテクチャにちょい情報有
49.
今日やらなかった重要話 Reference Application Layer アニメーションシステム 描画上の”レイヤー”とその制御方法 リソースマネージャ
ゲームエンジンアーキテクチャにちょい情報有 また機会があれば!
50.
問題点 抽象化のベースモデルが Direct X8
の時代からさし て進んでない メニーコアや GPU オフロード 描画トリック 例) Deferred + Forward, ベロシティマップ, etc...
51.
おまけ話 DX11 への(効果的な)対応策を打ってくると信じ ており、設計を楽しみにしています Ogreはアプリ側やプラグイン側でも計算コードが 畳み込まれるようにインライン関数が非常に多く なっています のけぞらないように……
52.
ご静聴ありがとうございました
Twitter: @minahito
Download