我需要幫助定位3D中的矩陣!使用XNA在3D中定位矩陣
大家好!我對編程並不陌生,但我是3D編程的新手。
在我的代碼中,我有一個視圖矩陣。視圖的目標始終是(0,0,0)。我也有一個臨時矩陣,它控制着攝像機(我把它放在了視圖矩陣的CreateLookAt方法中)。
這個理論有效,但並不如我預期的那樣。我可以成功地在立方體周圍(左側和右側)旋轉相機,甚至可以俯仰(上下)工作。但是,當我想要向左或向右旋轉,而相機被投射(正在看對象的頂部)或向下(從下面看對象)時,會出現我的問題。它「滾動」物體。如果照相機的行爲就像目標物體沒有頂部或底部一樣,我希望它。如果我將攝像機向上推,然後向右推,攝像機應圍繞我的物體旋轉,而不是在其上滾動。這很難解釋,因爲我的本地人不是英語。無論如何,如果你瞭解這些:D然後請回復。感謝名單。
tempcam *= Matrix.CreateTranslation(tempcam.Forward * 20);
tempcam = Matrix.CreateFromYawPitchRoll(MathHelper.ToRadians((float)yangle),MathHelper.ToRadians((float)zangle), 0);
tempcam *= Matrix.CreateTranslation(tempcam.Backward * 20);
cameraposition = new Vector3(tempcam.M41, tempcam.M42, tempcam.M43);
view = Matrix.CreateLookAt(cameraposition, new Vector3(0, 0, 0), new Vector3(0, 1, 0));
嘗試使用本相機:http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Arcball它將像Blender的相機一樣工作 –
Blender的相機正是我想要避免的!您可以看到,無論您如何在攪拌機中旋轉相機,它總是會像您正在創建的模型具有頂部和底部一樣。 –