gpt4 book ai didi

c++ - 如何让相机跟随 opengl 中的 3d 对象?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:12 24 4
gpt4 key购买 nike

我是第一次使用 opengl 进行赛车,我面临的第一个问题是如何让相机以恒定的距离跟随汽车。这是键盘功能的代码。V 是速度汽车。

void OnSpecial(int key, int x, int y) 
{
float step = 5;

switch(key) {

case GLUT_KEY_LEFTa:
carAngle = step;
V.z = carAngle ;
camera.Strafe(-step/2);
break;

case GLUT_KEY_RIGHT:
carAngle = -step;
V.z = carAngle ;
camera.Strafe(step/2);
break;

case GLUT_KEY_UP:
V.x += (-step);
camera.Walk(step/2);

break;
case GLUT_KEY_DOWN:
if(V.x<0)
{
V.x += step;
camera.Walk(-step/2);
}
break;
}
}

最佳答案

也许是这样的?

vec3 cameraPosition = carPosition + vec3(20*cos(carAngle), 10,20*sin(carAngle));
vec3 cameraTarget = carPosition;
vec3 cameraUp = vec3(0,1,0);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity()
gluLookAt(cameraPosition, cameraTarget, cameraUp);
glTranslate(carPosition);
drawCar();

如果您没有使用旧的和已弃用的 openGL API(glBegin 等),您将不得不做类似的事情

mat4 ViewMatrix = LookAt(cameraPosition, cameraTarget, cameraUp); // adapt depending on what math library you use

关于c++ - 如何让相机跟随 opengl 中的 3d 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6171092/

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