这是我在转换(网格)时不理解的东西。请先看看我的代码(在 Render() 函数中):
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 在它们之间切换)。“移动”是我在键盘上选择每个箭头后更改的向量(因此我可以移动活动对象)。
但它没有按我的意愿工作。...如果我更改了我的一个对象的位置...然后在切换到另一个(更改 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
那我的问题是什么?有任何想法吗:)?啊哈...问题与该正在更改的MeshColor 功能无关...我检查了。