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

画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
ORB-SLAMの手法解説
ORB-SLAMの手法解説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"【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 の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Yusuke Fujimoto
 
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)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【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fieldscvpaper. challenge
 
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習Hori Tasuku
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)なおき きしだ
 
Amazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみたAmazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみたmganeko
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門Yosuke Onoue
 
Trend of 3D object detections
Trend of 3D object detectionsTrend of 3D object detections
Trend of 3D object detectionsEiji Sekiya
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)Yuki Tamura
 
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得Masayuki Tanaka
 

What's hot (20)

画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
ORB-SLAMの手法解説
ORB-SLAMの手法解説ORB-SLAMの手法解説
ORB-SLAMの手法解説
 
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
 
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
 
ピンホールカメラモデル
ピンホールカメラモデルピンホールカメラモデル
ピンホールカメラモデル
 
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields
 
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
カスタムSIで使ってみよう ~ OpenAI Gym を使った強化学習
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)GPUをJavaで使う話(Java Casual Talks #1)
GPUをJavaで使う話(Java Casual Talks #1)
 
Amazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみたAmazon Kinesis Video Streams WebRTC 使ってみた
Amazon Kinesis Video Streams WebRTC 使ってみた
 
Global Illumination
Global IlluminationGlobal Illumination
Global Illumination
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
 
Trend of 3D object detections
Trend of 3D object detectionsTrend of 3D object detections
Trend of 3D object detections
 
C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)C++の話(本当にあった怖い話)
C++の話(本当にあった怖い話)
 
CG2013 09
CG2013 09CG2013 09
CG2013 09
 
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
遠赤外線カメラと可視カメラを利用した悪条件下における画像取得
 

Viewers also liked

海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3DKazuhisa Minato
 
マルチプラットフォーム開発導入
マルチプラットフォーム開発導入マルチプラットフォーム開発導入
マルチプラットフォーム開発導入Daisuke Nikura
 
C++のビルド高速化について
C++のビルド高速化についてC++のビルド高速化について
C++のビルド高速化についてAimingStudy
 
[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリ[学内勉強会]C++11とdirectxライブラリ
[学内勉強会]C++11とdirectxライブラリShota Homma
 
C++11とゲーム製作
C++11とゲーム製作C++11とゲーム製作
C++11とゲーム製作uchan_nos
 
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
 Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjp
Pythonによる4足歩行ロボットの制御と強化学習による歩行動作獲得の実例 #pyconjpHideyuki TAKEI
 
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーションakio19937
 
Visual C++で使えるC++11
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11nekko1119
 
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミングエクストリームC++11/14プログラミング
エクストリームC++11/14プログラミングegtra
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14Ryo Suzuki
 
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例tecopark
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami
 
大人の分散レンダリング
大人の分散レンダリング大人の分散レンダリング
大人の分散レンダリングMonta Yashi
 
Pythonではじめる OpenAI Gymトレーニング
Pythonではじめる OpenAI GymトレーニングPythonではじめる OpenAI Gymトレーニング
Pythonではじめる OpenAI GymトレーニングTakahiro Kubo
 
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門Yoshimura Soichiro
 
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)Toshihiko Yamakami
 

Viewers also liked (18)

海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D海外ゲーム技術勉強会#1 OGRE3D
海外ゲーム技術勉強会#1 OGRE3D
 
マルチプラットフォーム開発導入
マルチプラットフォーム開発導入マルチプラットフォーム開発導入
マルチプラットフォーム開発導入
 
C++のビルド高速化について
C++のビルド高速化についてC++のビルド高速化について
C++のビルド高速化について
 
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プログラミング
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++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グラフィクス、OpenGLAtsushi Tadokoro
 
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めようAdvancedTechNight
 
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Masahiko Mizuta
 
Flashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3DFlashup 12 Basic Training of Away3D
Flashup 12 Basic Training of Away3DKatsushi Suzuki
 
Windows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMIWindows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMIjunichi anno
 
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3DFlashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3DKatsushi Suzuki
 
シェーダーしよっ☆ Let's play shaders!
シェーダーしよっ☆ Let's play shaders!シェーダーしよっ☆ Let's play shaders!
シェーダーしよっ☆ Let's play shaders!Yuichi Higuchi
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2dHiroshi Oyamada
 
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」Tomoaki Shimizu
 
PF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsolaPF部2011年12月勉強会.androidsola
PF部2011年12月勉強会.androidsolaandroid sola
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングKohsuke Yuasa
 
Cocos2d-xハンズオン#1 in 大阪
Cocos2d-xハンズオン#1 in 大阪Cocos2d-xハンズオン#1 in 大阪
Cocos2d-xハンズオン#1 in 大阪Shingo Yamano
 
Cocos2d x-sprite3d
Cocos2d x-sprite3dCocos2d x-sprite3d
Cocos2d x-sprite3daktsk
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDとsters
 
第5回 HTML5minutes! LT 「ねこでもできるWebGL」
第5回 HTML5minutes! LT 「ねこでもできるWebGL」第5回 HTML5minutes! LT 「ねこでもできるWebGL」
第5回 HTML5minutes! LT 「ねこでもできるWebGL」Shinnosuke Morimoto
 
Away3D 4.1 パーティクル入門
Away3D 4.1 パーティクル入門Away3D 4.1 パーティクル入門
Away3D 4.1 パーティクル入門Yasunobu Ikeda
 
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackkimukou_26 Kimukou
 

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
 

Recently uploaded

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。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論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        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論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 

Recently uploaded (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。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論文紹介: 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...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介: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の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

Ogre3d 基礎