描画処理はプログラムの描画ハンドラで行います.GLUTを使う場合はglutDisplayFuncで登録したコールバック関数がこれにあたり, またFrameworkモジュールのFWAppを使う場合はDisplay仮想関数がこれにあたります. 以下が典型的な描画処理です.
render->ClearBuffer(); // clear back buffer render->BeginScene(); // begin rendering grScene->Render(render); // render scene render->EndScene(); // end rendering render->SwapBuffers(); // swap buffers
ClearBufferは描画バッファを所定の色で塗りつぶします. 塗りつぶし色の取得/設定はGRRenderのGetClearColor,SetClearColorを使います.
render->SetClearColor(Vec4f(1.0f, 0.0f, 0.0f, 1.0f)); render->ClearBuffer(); // clear back buffer in red
BeginSceneとEndSceneはシーンの描画の前後で必ず呼び出します. SwapBuffersはフロントバッファとバックバッファを切り換えることで描画内容を画面上に表示します.
GRSceneのRender関数は,カメラ(GRCamera)のRenderとワールドフレーム(GRFrame)のRenderを 順次呼び出します.まずカメラの描画によって視点と投影変換が設定され, 次にワールドフレームの描画によってシーングラフが再帰的に描画されます.