正如你所知道的,當我們想在DirectX中繪製一個三維對象時,我們應該定義一個攝像頭 。現在我們有一個Device對象,它的名字是'device1'。它是我的問題: device1.View = Matrix.Look ...(New Vector3(),New Vector3(),New Vector3()); 參數#3是向上向量。它究竟做了什麼?Up Vector在DirectX中的確做了什麼?
2
A
回答
8
顧名思義,它定義了向上的方向。這是一件非常重要的事情。你需要知道相機的位置,你需要知道它面對的是哪個方向,但是你也需要知道它是如何轉向的 - 即上下左右都會看到什麼。
在我們的現實世界中,我們視野的「向上」矢量(通常)是由重力場暗示的,即它是由地球施加的重力矢量的反向(向上而不是向下)。
2
在相機矩陣中,您需要形成一個「正交」基矩陣來描述座標系。
如果您想到任何3D座標系,那麼您有3個座標軸。 X軸(或側面/側面向量),Y軸(向上向量)和Z軸(方向向量)。
向上矢量對定義該座標系非常重要。
甲行主基矩陣的定義如下:
xx, xy, xz, 0
yx, yy, yz, 0
zx, zy, zz, 0
px, py, pz, 1
XX,XY,XZ是定義x軸,YX 3矢量,YY,YZ y軸,ZX, zy,zz z軸和px,py,pz定義位置向量。
此外,如果你想到它,如果你指出向上的向量,那麼你會期望看到一切倒過來..對吧?此外,因爲您還沒有將向上的向量旋轉到向下的位置,您還會注意到向量的方向是錯誤的,所以您會看到一些出現在X軸上的鏡像以及正在顛倒的東西。
相關問題
- 1. 「+」在CSS中做了什麼?
- 2. %%在printf中做了什麼?
- 3. *在CSS中做了什麼?
- 4. vagrant up --no-color,它做什麼?
- 5. Migrator.net在Up()中放置表,在Down()中做什麼?
- 6. vector :: reserve是做什麼用的?
- 7. perl中的~~做了什麼?
- 8. 空的.forRoot()在angular2中的確做了什麼?
- 9. Java在C++中比使用std :: vector快8倍。我做錯了什麼?
- 10. solr.home的SetProperty在Solr中做了什麼?
- 11. scalaz中scalaz.syntax.std.OptionOps.cata做了什麼?
- 12. 我在做什麼錯了?
- 13. 「ModLoad」在Python代碼中做了什麼?
- 14. `tf.strided_slice()`做了什麼?
- 15. L做了什麼?
- 16. @synchronized()做了什麼?
- 17. logging.basicConfig做了什麼?
- 18. class_initialize()做了什麼?
- 19. select {}做了什麼?
- 20. 什麼做錯了?
- 21. 我在這個腳本中做了什麼不正確?
- 22. 「..」在Meteor Spacebars聲明中做了什麼?
- 23. 「navbar-header」類在Bootstrap中做了什麼?
- 24. apc.preload_path在APC設置中做了什麼?
- 25. 'el'在view.render()中做了什麼?el?
- 26. rootmodifers在famo.us中做了什麼?
- 27. --stdlayout在git svn clone中做了什麼?
- 28. 「authResponse」參數在FB.init()中做了什麼?
- 29. 在c#中^字符做了什麼?
- 30. 在jekyll中{%capture var%}做了什麼?