infiniti

导航

对不同物体进行模型变换glPushMatrix不能嵌套

   意思是,假如对三个物体要进行同样的平移操作,我本来的思路是给加一次变换就行~~如下代码:

glPushMatrix();   
    glTranslatef(3200,-2500,0);
    glRotatef(90,1.0,0.0,0.0);
    glRotatef(-175,0.0,1.0,0.0);

    glPushMatrix();
      DrawObject1();
    glPopMatrix();
    glPushMatrix();
      DrawObject2();
    glPopMatrix();
    glPushMatrix();
      DrawObject3();
    glPopMatrix();        
glPopMatrix();

结果是只有第一个物体进行了模型变换,第二个和第三个都木有。so,只能这样了:

 glPushMatrix();
     glTranslatef(3200,-2500,0);
     glRotatef(90,1.0,0.0,0.0);
     glRotatef(-175,0.0,1.0,0.0);
     DrawObject1();
    glPopMatrix();


    glPushMatrix();
     glTranslatef(3200,-2500,0);
     glRotatef(90,1.0,0.0,0.0);
     glRotatef(-175,0.0,1.0,0.0);
     DrawObject2();
    glPopMatrix();

    glPushMatrix();
     glTranslatef(3200,-2500,0);
     glRotatef(90,1.0,0.0,0.0);
     glRotatef(-175,0.0,1.0,0.0);
     DrawObject3();
    glPopMatrix();        

小问题,记录下来~~

 

posted on 2013-01-29 16:28  infiniti  阅读(413)  评论(0编辑  收藏  举报