comment faire de la caméra de suivre un objet en 3d en opengl?
je suis en train de faire une course de voiture pour la première fois en utilisant opengl,le premier problème que j'ai le visage est de savoir comment la caméra pour suivre la voiture à distance constante..voici le code de fonction du clavier.V est la vitesse de la voiture.
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;
}
}
Pouvez-vous fournir plus de détails: comment la voiture, la position est définie, ce comportement de caméra que vous voulez? Généralement, vous avez besoin de prendre la voiture de la poste et probablement "look" de la direction, puis de calculer la position de la caméra.
Le code de rendu serait plus utile d'offrir une réponse significative. Aussi, pourriez-vous décrire ce qui se passe actuellement? La caméra est fixe, alors que la voiture roule à l'écart? Ou n'avez-vous pas obtenu ce que de loin?
mon code se compose de fonction d'affichage qui contiennent des transformations de la fonction ,la fonction de mise à jour et le rendu d'une scène d'une fonction qui dessine m2d voiture et suivre..j'ai utilisé le code vers le bas avant et après le rendu, il ne fonctionne pas aussi .... à propos de la position de la voiture j'ai un vecteur dans lequel je peux changer dans onSpecialkey fonction.avec mon code de la voiture d'accélérer au premier abord, la voiture est plus lent que l'appareil photo et la caméra devient plus lente et la voiture s'évanouit.j'ai besoin de la caméra en permanence la distance avec la voiture. Toutes les suggestions ?
Le code de rendu serait plus utile d'offrir une réponse significative. Aussi, pourriez-vous décrire ce qui se passe actuellement? La caméra est fixe, alors que la voiture roule à l'écart? Ou n'avez-vous pas obtenu ce que de loin?
mon code se compose de fonction d'affichage qui contiennent des transformations de la fonction ,la fonction de mise à jour et le rendu d'une scène d'une fonction qui dessine m2d voiture et suivre..j'ai utilisé le code vers le bas avant et après le rendu, il ne fonctionne pas aussi .... à propos de la position de la voiture j'ai un vecteur dans lequel je peux changer dans onSpecialkey fonction.avec mon code de la voiture d'accélérer au premier abord, la voiture est plus lent que l'appareil photo et la caméra devient plus lente et la voiture s'évanouit.j'ai besoin de la caméra en permanence la distance avec la voiture. Toutes les suggestions ?
OriginalL'auteur memo | 2011-05-29
Vous devez vous connecter pour publier un commentaire.
Quelque chose comme ça peut-être ?
Vous n'êtes pas à l'aide de l'ancien et obsolète openGL API (glBegin & trucs) que vous aurez à faire quelque chose comme
OriginalL'auteur Calvin1602
La réponse est simple. Vous avez contrôlé par le joueur de l'objet (voiture) si vous avez sa position et son orientation par ModelViewMatrix dans l'espace (en général a souligné le centre du modèle 3D)
Pour le transformer pour le bon suivi ProjectionMatrix vous devez:
pour plus de choses que vous devez regarder ma réponse ici: https://stackoverflow.com/a/18041433/2521214
OriginalL'auteur Spektre