繁体   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