這是我在變換(網格)時不理解的東西。請首先採取(),這是在渲染(功能)看看我的代碼:在活動對象之間切換 - 瞭解變換/視圖
foreach (GeometricObject obj in this.objects)
{
if (obj != this.activeObject)
{
obj.Mesh = MeshUtils.ChangeMeshColor(obj.Mesh, Color.Yellow, device);
}
else
{
obj.Mesh = MeshUtils.ChangeMeshColor(obj.Mesh, Color.Green, device);
obj.GeometryMatrix.Translate(this.move);
}
device.Transform.World = obj.GeometryMatrix;
obj.Mesh.DrawSubset(0);
}
說明: 我已經得到了一些黃色gometriObjects(網格)和一個綠色的activeObject(我可以在它們之間切換鍵盤1-4)。 'move'是在鍵盤上選擇每個箭頭後更改的矢量(所以我可以移動活動對象)。
但它不工作,因爲我想。 ...如果我改變了其中一個對象的位置......然後在切換到另一個(改變activeObject)之後,我得到了屏幕上的另一個視圖(在所有開關......所有對象都在屏幕;/)。爲什麼這一直是不一樣的觀點?我認爲...它應該,因爲我有相同的觀點設置:
device.Transform.View = Matrix.LookAtLH(new Vector3(0.0f, 2.0f, -25.0f), // Camera position
new Vector3(0.0f, 0.0f, 0.0f), // Look-at point
new Vector3(0.0f, 1.0f, 0.0f)); // Up vector
那麼我的問題是什麼?有任何想法嗎:)? 啊哈...這個問題沒有與那個changingMeshColor函數連接...我檢查了。
我已經讀過幾次,我仍然不知道你的問題是什麼。 AFAICT事實上,你的視圖矩陣永遠不會改變,但你可以改變你的對象位置意味着相機可能沒有看着給定的對象。 – Goz 2010-03-08 23:04:06