2009-12-23 3 views
0

Donc j'utilise Xcode 3.2.1 et j'essaie de faire un projet iPhone OpenGL ES1. Le modèle par défaut pour un projet opengl est correct, mais j'ai essayé de scinder le code afin que tout ne soit pas fait par image lors de l'appel drawView().Comment utiliser glFrustrum dans OpenGL ES1 sur iPhone

J'ai une méthode setupRC séparée qui règle l'éclairage, active le test de profondeur, active l'abattage et définit la couleur claire. Ceci est appelé à l'init de l'EAGLView et cela fonctionne très bien.

J'ai pris les appels glviewport() et glFrustrum() et les ai placés à la fin de la méthode resizeFromLayer() dans le fichier ES1Renderer.m. Ceci est atteint lorsque l'application démarre et lorsque l'application est redimensionnée comme elle le devrait.

Maintenant, le problème est que le frustrum est loin d'être foiré, car tous mes objets sont coupés/coupés. J'ai essayé d'ajuster la position et l'angle de la caméra et tous les objets sont coupés/coupés. J'ai augmenté le loin de 1000.0f à 30000.0f et toujours obtenir le même résultat. Ce qui est fou, c'est que si j'appelle à la fois les appels glviewport() et glFrustrum() dans le drawView() à chaque image, tout semble correct. Rien n'est coupé et ressemble à ce que je veux. De tout ce que j'ai lu, les appels frustrum et viewport ne doivent être appelés que lorsque la fenêtre/est créée et redimensionnée, mais si je ne l'appelle pas à chaque image de mon projet, cela ne fonctionne pas. Des idées?

Merci à l'avance

Répondre

0

Je me demande si vous pourriez faire une traduction supplémentaire quelque part avant de commencer à dessiner? Peut-être que vous pourriez vous assurer que vous faites un loadIdentity() avant de commencer à tout dessiner juste pour vous assurer que vous commencez à partir où vous pensez que vous êtes.

Questions connexes