Advertisement
TalesM

ZBuffer não funciona

Jan 4th, 2012
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1. //Header
  2. #include "GameSteps.h"
  3.  
  4. class MainGameSteps : public GameSteps
  5. {
  6.     public:
  7.         explicit MainGameSteps();
  8.  
  9.         virtual void setup();
  10.  
  11.         virtual void processEvents(const SDL_Event& event);
  12.         virtual void processLogics();
  13.         virtual void draw() const;
  14.  
  15.         virtual bool ended();
  16.  
  17.         virtual void teardown();
  18.     private:
  19.         float degreesToRotateX;
  20.         float degreesToRotateY;
  21.         float degreesToRotateZ;
  22.  
  23.         float camX, camY, camZ;
  24.         bool exit;
  25. };
  26.  
  27. //Source
  28.  
  29. //setup. Eu até checo se o zbuffer tá habilitado e ele sempre passa daqui
  30. void MainGameSteps::setup()
  31. {
  32.     degreesToRotateX = degreesToRotateY = degreesToRotateZ = 0;
  33.     camX = camY = 0;
  34.     camZ = 5;
  35.     glEnable(GL_BLEND);
  36.     glEnable(GL_CULL_FACE);
  37.     glEnable(GL_DEPTH_TEST);
  38.     glEnable(GL_POLYGON_SMOOTH);
  39. //  glDepthFunc(GL_LESS);
  40.     glDepthRange(100,-100);
  41.     glCullFace(GL_BACK);
  42.     if(!glIsEnabled(GL_DEPTH_TEST))
  43.         std::exit(-1);
  44. }
  45.  
  46. //draw
  47. void MainGameSteps::draw() const
  48. {
  49.     glMatrixMode(GL_PROJECTION);
  50.        glLoadIdentity();  //Resetamos a projeção atual
  51.        gluPerspective(60, GAMEWINDOW.getRatio(), 1, 15000);
  52.     glMatrixMode(GL_MODELVIEW);
  53.     glPushMatrix();
  54.         //Limpa a tela
  55.         gluLookAt(camX, camY, camZ, 0, 0, 0, 0, 1, 0);
  56.         glClearColor(0.0, 0.0, 0.0, 0.0);
  57. //        glClearDepth(1.0); // Tentei com valor de 1, de 0 e sem essa função
  58.         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  59.  
  60.         //Sun
  61.         glColor3f(1, 1, .8f);
  62.         drawCube();
  63.         glPushMatrix();
  64.             //Planet
  65. //          glRotatef(degreesToRotateY, 0,1,0); // Achei q era aqui mas mesmo desabilitando ela ainda ainda mostra errado
  66.             glColor3f(0, .2, .8f);
  67.             glTranslatef(0, 0, -2);// Tentei tbm com z positivo, Sem sucesso
  68.             glScalef(.4f, .4f, .4f);
  69.             glRotatef(degreesToRotateY*2, 0,1,0);
  70.             drawCube();
  71.         glPopMatrix();
  72.     glPopMatrix();
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement