うんむ。仕事でちょっとテンパってて更新出来なかった…orz
今回は3D。基本の立方体表示で。
Seleneは3D用のライブラリなんで、3Dやらんと始まらないわけで。
…といっても、やることはほとんどない。
自動でやってくれる部分が多くて、説明もコメントで事足りる感じ。
76 : IModel *pModel = NULL; // モデル用
77 : ISceneManager *pSceneMgr = NULL; // シーン管理用インターフェイス
78 : ISceneCamera *pCamera = NULL; // シーンカメラ操作用インターフェイス
80 : CStyle Style; // 姿勢制御クラス
まあ、そのまんま。シーン管理が一番の親分で、その中にモデルとカメラがある感じ。
Styleは回転とかで使う便利な関数群みたいなもの。
202 : pSceneMgr = pRender->CreateSceneManager( 128, SCENE_MODE_MANAGED );
203 : pSceneMgr->SetRenderTargetSize( CPoint2D<Uint32>( SCREEN_WIDTH,SCREEN_HEIGHT ) );
CreateSceneManagerでレンダラーからシーンインターフェースを取得する。
3Dに関してはすべてシーンインターフェースを通さなければならない。
SetRenderTargetSizeでレンダリングターゲットのサイズを渡している。
ウィンドウのサイズをCPoint2D型で渡す。
212 : pCamera = pSceneMgr->GetSceneCamera();
217 : pCamera->UpdateProjection( 1.0f, 100.0f, DEG_TO_ANGLE(45),SCREEN_WIDTH,SCREEN_HEIGHT );
GetSceneCameraでカメラのインターフェースを取得。
1つのシーンに、カメラは1つ。
次に、プロジェクションの設定。3Dの基本。
226 : pModel = pRender->CreateModelFromFile( "Cube.smf" );
3Dオブジェクトを読み込む。
smfは同梱のツールで作れるselene用3Dモデル。
ステートはあんま気ににしなくてもいい。お好きなものを。
268 : pSceneMgr->SetClearColor( CColor(128,128,192) );
269 : pSceneMgr->Rendering();
画面を指定色で初期化し、レンダリング。
あとは、カメラ・ライト・モデルを更新しているだけ。
このサンプルではモデリング以外は動かしてないが。
うーん、一回DirectXをやった後だと理解しやすいかも。
SDKなんかについてくるドキュメントを参考書として活用しましょう。
今回のサンプル
gamdev.org/up/img/9649.zip
PR