c++ - 使用相机旋转使四边形始终出现在相机前面(c++/opengl)

标签 c++ math opengl

我试图让四边形始终出现在相机前面,我试图首先将它与 x-z 平面上的相机对齐,并确保它始终面向相机。我使用了这段代码...

float ry = cameraRY+PI_2;
float dis = 12;
float sz = 4;

float x = cameraX-dis*cosf(ry);
float y = cameraY;
float z = cameraZ-dis*sinf(ry)+cosf(ry)*sz;

float x2 = x + sinf(ry)*sz;
float y2 = y + sz;
float z2 = z - cosf(ry)*sz;

glVertex3f(x,y,z);
glVertex3f(x2,y,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x,y2,z);

但它看起来不太对劲,似乎四边形绕着一个不可见的点旋转,而这个点绕着相机正确旋转。我真的不知道如何更改它或如何着手这样做,感谢任何帮助!

编辑:忘了说, cameraX,cameraY,cameraZ是相机的x,y,z位置

cameraRX 和 cameraRY 是相机的 x 和 y 旋转(Z 旋转始终为零)

最佳答案

看看这个 old tutorial在 Lighthouse3D 上。它描述了几种“广告牌”技术,我相信这是你想要的。

关于c++ - 使用相机旋转使四边形始终出现在相机前面(c++/opengl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6497070/

相关文章:

c++ - 防止调用模板化复制构造函数

C++ 元模板 : A Good or Bad Design Choice?

c# - 使用 Atan2 时改变角度

c++ - OpenGl/Glew/GLSL 中的 Vec3 未定义

c++ - 无法在 Linux 上使用屏幕外 OpenGL 上下文生成 mipmap

c++ - 不处理指针时调用子类(虚拟)函数(后期绑定(bind))

c++ - 需要一个库来获取Win CE下的性能计数器数据,c++代码

math - 如何在 MediaWiki 中嵌入数学

java - 接受用户输入的方法

c++ - WebGL 和 OpenGL 的性能