簡體   English   中英

使用XNA在3D中定向矩陣

[英]Orienting a matrix in 3d with 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));

怎么樣:

view = Matrix.CreateRotationY(yangle) *
       Matrix.CreateRotationX(xangle) *
       Matrix.CreateTranslation(Vector3.Backward * 20.0f);

好吧,經過數小時的挫折,我放棄了使用“攪拌器”型相機。 效果很好。 我離開了XNA,並嘗試了新的統一引擎。 有了團結,我實現了比XNA更加出色的成就。 無論如何,感謝大家的答復,我感謝他們,他們的幫助很大。 我會給一個UP標志,但是我沒有足夠的代表。 如果有人可以關閉此線程,請這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM