SlideShare a Scribd company logo
1 of 54
Download to read offline
Ogre3D 基礎
            2013年 1月
Ogre3Dとは
       Entity
    SceneNode
   SceneManager
     Viewport
シーンの完全なクリア、解放
     ジオメトリ
  2Dイメージの表示
  日本語フォント表示
Ogre3Dとは
Ogre3D
レンダリングに特化し、シーン
グラフに基づくシーン指向なエ
ンジン
Direct3D/OpenGLを抽象化し
たクラスライブラリでC++等各
種プログラミング言語に対応
カスタムシェーダ
LOD
スケルタルアニメーション
MITライセンス
シーンの最小構成
SceneManager
SceneNode
Camera
Entity


               SceneManager
                                   Node   カメラ
                        RootNode
                                   Node   Entity
シーンの描画
Camera
Window(レンダーターゲット)
Viewport



                カメラ   Viewport   Window
Entity
Entity
シーン内に存在する移動可能な      //Entity作成
                    Ogre::Entity* ent = NULL;
オブジェクト(麻雀牌、点棒)
Entityにメッシュとマテリアル   ent = mSceneMgr->createEntity(
を割当てる                   "msh:PaiBody:0"
Entityインスタンスを通して    );
                    ent->setMaterialName(
Entityを複製可能
                        "mtr:Pai:1"
                    );
                    ent->setCastShadows( true );
Entity
解放       // Entity解放
         mSceneMgr->destroyEntity(
             "msh:PaiBody:0"
         );



         // SceneNode, Entitie,
         // Lightなど解放
         mSceneMgr->clearScene();
SceneNode
SceneNode
SceneNodeはシーングラフ階   //SceneNode作成
                    Ogre::SceneNode* node = NULL;
層のノード
作成したノードにEntityやカメ   node = mSceneMgr->
ラといった要素を登録すること         getRootSceneNode()->
でシーンを構築                createChildSceneNode(
                           “node:1”
                       );


                    node->attachObject( ent );
SceneNode
解放          // SceneNode解放
            mSceneMgr->getRootSceneNode()->
                removeAndDestroyChild(
                   “node:1”
                );


            // SceneNode, Entitie,
            // Lightなど解放
            mSceneMgr->clearScene();
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
                     );
オーバーレイ用SceneNode
Overlay用の3D空間は別   //SceneNodeを作成
ルートノードを自前で作成      Ogre::SceneNode* node_ov =
                     new Ogre::SceneNode(
                         mSceneMgr, name
                     );



                  // SceneNodeを解放
                  delete node_ov;


                  node_ov = NULL;
SceneManager
SceneManager
シーングラフを管理                       //SceneManager作成
                                mSceneMgr =
レンダリング方式の選定※1
                                   gm->GM_getOgreRoot()->
SceneManagerインスタンス                    createSceneManager(
を作成するとルートノードがひ                            Ogre::ST_GENERIC
とつ作られる                                );

ルートノードを基点に、各種オ
ブジェクト(Entity、カメラ、
パーティクル、Skyboxなど)
を登録


※1 Octree、BSP、Portal、Pagingなど
SceneManager
                              Node MainCamera
麻雀ゲームの例                       Node SubCamera
          SceneManager
                              Node    Light
                              Node   Shadow
                   RootNode
                              Node   麻雀牌
                              Node     卓
                              Node    点棒



                   RootNode   Node   前面の牌
                              Node   パネル
            Overlay用          Node    文字
                              Node   スコア
SceneManager
解放             // SceneManager解放
               Ogre::SceneManager* scene = NULL


               scene = Client->getSceneMgr();


               if( scene ){
                    // SceneManager解放
                    gm->GM_getOgreRoot()->
                        destroySceneManager(scene);
               }
SceneManager
複数のSceneManagerインス
タンスを持てる
デフォルトのレンダリング方式
では空間分割は行われない
Viewport
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
                           );
Viewport
麻雀ゲームの例


            カメラ
                    Window
            カメラ

            カメラ
                  Texture
Viewport
解放         // Viewport解放
           Ogre::RenderWindow* window =
               gm->GM_getOgreWindow();


           if( window ){


               window->removeViewport(
                  zorder
               );
           }
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 );
                     }
シーンの完全なクリア、解放
手順
以下の順に削除/解放をおこなう

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
例
// 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" );
例
// 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"              }
       );
}
例
// 8) Viewport                       // 9) Camera
Ogre::RenderWindow* window =         mSceneMgr->destroyAllCameras();
   gm->GM_getOgreWindow();


if( window ){
     window->removeAllViewports();
}
例
// 10) SceneNode, Entitie, Lightなど   // 11) SceneManager
mSceneMgr->clearScene();             gm->GM_getOgreRoot()->
                                        destroySceneManager(
                                           mSceneMgr
                                        );
忘れがちなこと
ManualObjectから
convertToMeshしたらメッ
シュが作られるのでこれも解放
対象
ジオメトリ
プリミティブ・ジオメトリ
Rectangle2D        //Rectangle2D作成
  シンプルな平面型の四角形※例   rect =
                       new Ogre::Rectangle2D( true );
WireBoundingBox
  ワイヤーフレーム型のボックス   Ogre::SceneNode*node =
                      mSceneMgr->
                      getRootSceneNode()->
                      createChildSceneNode(
                          "node:2"
                      );


                   node->attachObject( rect );
                   rect->setMaterial( "mtr:Floor:0" );
プリミティブ・ジオメトリ
Rectangle2D解放           //Rectangle2D解放
                        delete rect;
  Rectangle2Dインスタンスを先
  に解放。関連するマテリアルや        Ogre::MaterialManager::
  テクスチャはその後削除              getSingleton().
                           remove( "mtr:Floor:0" );
カスタム・ジオメトリ
ManualObjectを使用
2種類の表示の仕方
  SceneNodeに直接登録
  convertToMeshメソッドでメッシュ
  化したあとEntity登録※コード例
カスタム・ジオメトリ
//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して表示
スタティック・ジオメトリ
複数のEntityを単一オブジェ
クト化
GPUへの転送命令を減らして
性能向上
スタティック・ジオメトリは
分割できない
すべて表示されるか、すべて
表示されないか(カリングに
問題を持つ)
プリミティブ・メッシュ
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
                            );
2Dイメージの表示
Ogre3Dでの2D表示方法
A) Overlay APIを使う
B) Manaual Objectを使う
C) Ogre内部APIを使って描画
D) 外部ライブラリを使う



  それぞれ長所短所あり
A)Overlay APIを使う
表示/非表示の切替が可能             3Dオーバーレイではマウスカー
Overlay::rotateで回        ソル位置を拾えない(Rayを使
転、Overlay::setScaleで拡縮   用できない)
ダイナミック・テクスチャによ           Entity::getWorldBoundingB
り各種ブレンディング処理が可           oxもしくは、スクリーン座標か
能                        らマウスカーソルを判定
B)Manual Objectを使う
回転、拡縮が可能
各種ブレンディング処理が可能
リアルタイムに制御するにはマ
テリアルの操作が必要
視点に左右され、dot by dotな
表示に難点
C)Ogre内部APIを使って描画
各種ブレンディング処理が可能
回転、拡縮はOgre内部コードを
拡張する必要
簡易2Dスプライトマネージャ
  http://www.ogre3d.org/tikiw
  iki/SpriteManager2d&struct
  ure=Cookbook
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
Overlayの使用方法
プログラムからOverlayを作
成してみます※コード例
テクスチャ画像を読み込んで
Ovelayとして表示するサン
プル




                   function_panel.png
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 );
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”         //画面表示完了
        )
   );
日本語フォント表示
日本語フォント表示
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
像ファイルを指定             }
日本語フォント表示
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
                    }
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 );
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”             //画面表示完了
        )
   );
その他
必要なcode pointのみを指   Ogreでの日本語表示につい
定する。多くを指定するとテ       ては下記URLを参考にさせて
クスチャが消費             いただきました。
フォントのライセンス           < CreoSproutソフトウェア研
 再配布可能な日本語フォント       究部 >
                     http://ahirujigen.blog97.fc2.
 その他、改変/商用可否など       com/blog-entry-279.html
Ogre3d 基礎

More Related Content

What's hot

UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
historia_Inc
 
C++のビルド高速化について
C++のビルド高速化についてC++のビルド高速化について
C++のビルド高速化について
AimingStudy
 

What's hot (20)

先進的なルックデベロップメント
先進的なルックデベロップメント先進的なルックデベロップメント
先進的なルックデベロップメント
 
海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D
 
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
 
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow) UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
UE4ディープラーニングってやつでなんとかして!環境構築編(Python3+TensorFlow)
 
async/await のしくみ
async/await のしくみasync/await のしくみ
async/await のしくみ
 
Mayaカメラデータunityインストール
MayaカメラデータunityインストールMayaカメラデータunityインストール
Mayaカメラデータunityインストール
 
UnityとROSの連携について
UnityとROSの連携についてUnityとROSの連携について
UnityとROSの連携について
 
Unityでロボットの教師データは作れる!
Unityでロボットの教師データは作れる!Unityでロボットの教師データは作れる!
Unityでロボットの教師データは作れる!
 
UE4アセットリダクション手法紹介
UE4アセットリダクション手法紹介UE4アセットリダクション手法紹介
UE4アセットリダクション手法紹介
 
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
 
UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
 
NPRキャラクターレンダリング総結集!今こそ更なる高みを目指して | UNREAL FEST EXTREME 2020 WINTER
NPRキャラクターレンダリング総結集!今こそ更なる高みを目指して | UNREAL FEST EXTREME 2020 WINTERNPRキャラクターレンダリング総結集!今こそ更なる高みを目指して | UNREAL FEST EXTREME 2020 WINTER
NPRキャラクターレンダリング総結集!今こそ更なる高みを目指して | UNREAL FEST EXTREME 2020 WINTER
 
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
ARグラスの自作と6DoF化
ARグラスの自作と6DoF化ARグラスの自作と6DoF化
ARグラスの自作と6DoF化
 
遅延の少ないLivePreview方法
遅延の少ないLivePreview方法遅延の少ないLivePreview方法
遅延の少ないLivePreview方法
 
C++のビルド高速化について
C++のビルド高速化についてC++のビルド高速化について
C++のビルド高速化について
 
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
 

Viewers also liked

マルチプラットフォーム開発導入
マルチプラットフォーム開発導入マルチプラットフォーム開発導入
マルチプラットフォーム開発導入
Daisuke Nikura
 
[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ
Shota Homma
 
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
tecopark
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Genya Murakami
 

Viewers also liked (15)

マルチプラットフォーム開発導入
マルチプラットフォーム開発導入マルチプラットフォーム開発導入
マルチプラットフォーム開発導入
 
Glfw3,OpenGL,GUI
Glfw3,OpenGL,GUI Glfw3,OpenGL,GUI
Glfw3,OpenGL,GUI
 
[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ
 
C++11とゲーム製作
C++11とゲーム製作C++11とゲーム製作
C++11とゲーム製作
 
Cucumber
CucumberCucumber
Cucumber
 
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
 
Visual C++で使えるC++11
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11
 
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミングエクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
 
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
 
大人の分散レンダリング
大人の分散レンダリング大人の分散レンダリング
大人の分散レンダリング
 
Pythonではじめる OpenAI Gymトレーニング
Pythonではじめる OpenAI GymトレーニングPythonではじめる OpenAI Gymトレーニング
Pythonではじめる OpenAI Gymトレーニング
 
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
 
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
 

Similar to Ogre3d 基礎

Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLMedia Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Atsushi Tadokoro
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
AdvancedTechNight
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
Hiroshi Oyamada
 
PF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsolaPF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsola
android sola
 
Cocos2d x-sprite3d
Cocos2d x-sprite3dCocos2d x-sprite3d
Cocos2d x-sprite3d
aktsk
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDと
sters
 
Away3D 4.1 パーティクル入門
Away3D 4.1 パーティクル入門Away3D 4.1 パーティクル入門
Away3D 4.1 パーティクル入門
Yasunobu Ikeda
 

Similar to Ogre3d 基礎 (20)

Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGLMedia Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
 
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門
 
Flashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3DFlashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3D
 
Windows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMIWindows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMI
 
Sencha study
Sencha studySencha study
Sencha study
 
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3DFlashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3D
 
Android gameprogramming
Android gameprogrammingAndroid gameprogramming
Android gameprogramming
 
シェーダーしよっ☆ Let's play shaders!
シェーダーしよっ☆ Let's play shaders!シェーダーしよっ☆ Let's play shaders!
シェーダーしよっ☆ Let's play shaders!
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 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」Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
 
PF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsolaPF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsola
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
 
Cocos2d-xハンズオン#1 in 大阪
Cocos2d-xハンズオン#1 in 大阪Cocos2d-xハンズオン#1 in 大阪
Cocos2d-xハンズオン#1 in 大阪
 
Gingerbread
GingerbreadGingerbread
Gingerbread
 
Cocos2d x-sprite3d
Cocos2d x-sprite3dCocos2d x-sprite3d
Cocos2d x-sprite3d
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDと
 
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
第5回 HTML5minutes! LT 「ねこでもできるWebGL」第5回 HTML5minutes! LT 「ねこでもできるWebGL」
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
 
Away3D 4.1 パーティクル入門
Away3D 4.1 パーティクル入門Away3D 4.1 パーティクル入門
Away3D 4.1 パーティクル入門
 
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
 

Ogre3d 基礎