要了解模擬中需要哪些代碼,應首先查看隨 MSRS 提供的模擬教程。MSRS 安 裝程序的\samples\simulation教程目錄下提供的示例對應於 MSRS 安裝的菜單中 的模擬。例如,基本模擬環境與 SimulationTutorial1 項目相同。
如果使用 Visual Studio 2005 打開 SimulationTutorial1 項目,就可以查 看用於創建基本模擬環境的代碼。首先要注意的就是 Start 方法,啟動服務後將 自動調用此方法:
protected override void Start()
{
base.Start();
// Orient sim camera vIEw point
SetupCamera();
// Add objects (entitIEs) in our simulated world
PopulateWorld();
}
您可以在 Start 方法中添加代碼來定義模擬環境。對於 SimulationTutorial1 項目,這包括設置攝影機和使用實體對象填充模擬場 景。
除了主攝影機外,基本模擬環境中還包含用於代表天空、地面、箱形物體和地 球儀的實體。用於插入地球儀(或帶有紋理的球體)的代碼已在圖 6 中列出。
圖 6 插入地球儀
void AddTexturedSphere(Vector3 position)
{
SingleShapeEntity entity = new SingleShapeEntity(
new SphereShape(
new SphereShapePropertIEs(10, // mass in kg
new Pose(), // pose of shape within entity
1)), //default radius
position);
entity.State.Assets.Mesh = "earth.obj";
entity.SphereShape.SphereState.Material =
new MaterialPropertIEs("sphereMaterial", 0.5f, 0.4f, 0.5f);
// Name the entity
entity.State.Name = "detailed sphere";
// Insert entity in simulation.
SimulationEngine.GlobalInstancePort.Insert(entity);
}
AddTexturedSphere 方法中的第一行代碼用於創建 SingleShapeEntity 的一個實例。此類型代表具有單一幾何形狀的實體(例如球形),當需要添加具 有非常簡單的物理幾何體的實體時,它將非常有用。這樣,我就可以創建重 10 千克或大約 4.5 鎊的實體。
分配到此實體的網格是一個擴展名為 .obj 的對象文件。此對象文件使用 3D 圖形編輯工具創建,並以別名對象格式導出。MSRS 要求網格對象文件采用此格式 。您需要在 AddTexturedSphere 方法中實現的最後一項操作是向模擬環境插入球 體實體。