gpt4 book ai didi

c++ - 在 OpenGL 中变换相机位置

转载 作者:行者123 更新时间:2023-11-30 03:08:45 24 4
gpt4 key购买 nike

我用 OpenGL 绘制了一个球体,它将被 glRotate()、glScale()、glTranslate() 转换。如果不自己计算所有变换,我怎么能得到对象的绝对位置?

我需要将相机眼睛位置设置到这一点的坐标。

最佳答案

使用这些转换时,您正在操纵 modelviewmatrix

要获取当前可用的 (http://linux.die.net/man/3/glgetfloatv)

void glGetFloatv(
GLenum pname,
GLfloat * params
);

例如:

float modelview[16];

// save the current modelview matrix
glPushMatrix();

// get the current modelview matrix
glGetFloatv(GL_MODELVIEW_MATRIX , modelview);

应该为您提供当前矩阵,将起始 vector/顶点/坐标与该矩阵相乘将为您提供绝对世界坐标。

编辑:在制作应用程序时,您通常希望控制每个对象的绝对坐标,操纵它们,并使用 opengl 转换将它们绘制到定义的位置。

关于c++ - 在 OpenGL 中变换相机位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4652474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com