Colors Jogl推送/弹出矩阵和颜色
我使用的是2-3周前下载的2014年10月10日版Jogl。我无法轻松找到实际版本号,因此我希望这足以指导回答 我的问题是我似乎找不到一种方法来推动和弹出一种颜色。一个小代码来指导这个问题 我有一个画正方形的小方法Colors Jogl推送/弹出矩阵和颜色,colors,jogl,Colors,Jogl,我使用的是2-3周前下载的2014年10月10日版Jogl。我无法轻松找到实际版本号,因此我希望这足以指导回答 我的问题是我似乎找不到一种方法来推动和弹出一种颜色。一个小代码来指导这个问题 我有一个画正方形的小方法 protected void linear (GL2 gl ,double ax,double ay,double az
protected void linear (GL2 gl
,double ax,double ay,double az
,double bx,double by,double bz
)
{
gl.glBegin(GL.GL_LINES);
gl.glVertex3d(ax,ay,az);
gl.glVertex3d(bx,by,bz);
gl.glEnd();
}
这是从这样的渲染方法调用的
protected void render(GL2 gl)
{
/*
* glPushMatrix not for color
* glPushattrib(GL2.GL_COLOR) not for color
* gl.glPushAttrib(GL2.GL_COLOR_BUFFER_BIT) not for color
*/
// gl.glPushMatrix();
// gl.glPushAttrib(GL2.GL_COLOR_BUFFER_BIT);
// gl.glPushAttrib(GL2.GL_COLOR);
gl.glColor3d(0.0,0.0,1.0);
linear(gl,0,0,0, 1, 1,0);
// gl.glPopAttrib();
// gl.glPopMatrix();
// force reset of color because either it is not part of the matrix or the matrix is buggy
gl.glColor3d(1.0,1.0,1.0);
linear(gl,0,0,0, 1,-1,0);
}
最后,从“正常显示”方法调用此渲染方法
public void display(GLAutoDrawable drawable)
{
GL2 gl = drawable.getGL().getGL2();
// Clear screen.
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
// Make sure the correct matrix is loaded prior to rendering
// gl.glMatrixMode(GL2.GL_MODELVIEW);
gl.glLoadIdentity();
render(gl);
// ensure all gl command are executed and the display updated nothing left in the pipeline
gl.glFlush();
}
问题是,在尝试推送和弹出颜色的三种备选方案中,它们都不起作用。如果在pop操作(矩阵或属性)后未手动重置颜色,则颜色将保持与上次使用的颜色相同
推送/弹出适用于变换,因此我认为我正确地使用了它们,但颜色不正确。我已经尝试过任何其他属性,这是我在学习Jogl时的第一次尝试。迄今为止,地雷比散兵坑多得多
我复制了许多代码片段,并试图使用那些具有相同效果的代码片段。所以现在我被难住了
线索、提示或友好的笑声值得欣赏。将GL2ES1.GL\u CURRENT\u颜色与glGetFloat一起使用,将GL\u CURRENT\u位与glPushAttrib一起使用。在这里询问有关OpenGL的任何问题之前,请阅读手册:
嗨,杰夫,你应该避免使用传统的OpenGL