簡體   English   中英

在OpenGL中計算相機的法線?

[英]Calculating a camera's normal in OpenGL?

我正在使用OpenGL開發第一人稱射擊游戲,並且嘗試抵消物理剛體的創建(使用Bullet庫),以便始終在相機所看的位置而不是始終在鏡頭的位置創建剛體。攝像機前面的設定點。

顯然,一種方法是通過從視圖矩陣創建3x3旋轉矩陣或quat,然后將其乘以正向矢量來獲得指向相機所處位置的法線。

但是,我不確定如何獲取這些值(視圖矩陣中的quat,正向向量是什么,是否必須對乘法結果進行歸一化等)。 我嘗試過看教程,但是我仍然不確定要獲得這些值。

您實際上距離很近, cameraPos應該正確。 假定您具有反視圖矩陣,則相機的法線/方向僅位於相機位置之前的列。

以下是一些類似GLSL的偽代碼:

mat4 inv = inverse(view);

vec3 pos = vec3(inv[3]);
vec3 dir = -vec3(inv[2]);

其中view是攝像機的視圖矩陣( mat4 )。

暫無
暫無

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

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