2-3 주 전에 다운로드 한 Jogl의 1010 년 10 월 버전을 사용 중입니다. 실제 버전 번호를 쉽게 찾을 수 없으므로 답변을 안내하기에 충분합니다.Jogl 푸시/팝 매트릭스 및 색상
내 문제는 내가 푸시하고 팝하는 방법을 찾을 수없는 것 같습니다. 질문을 안내하는 약간의 코드.
나는 작은 사각형을 그리는 방법을 가지고 있습니다.
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();
}
문제는 세 가지 대안 중 푸시 및 팝 컬러를 시도하는 데 사용 된 것이므로 아무 것도 작동하지 않습니다. 팝 작업 (Matrix 또는 Attrib) 후에 색상을 수동으로 재설정하지 않으면 색상은 마지막으로 사용한 색상과 동일하게 유지됩니다.
푸시/팝이 변환에 사용되므로 올바르게 사용하고 있지만 색상은 그렇지 않습니다. 나는 다른 어떤 특성도 시도해 보았습니다. Jogl을 배우는 동안 이것이 나의 첫 번째 시도입니다. 여우보다 훨씬 광산.
많은 코드 조각을 복사하고 동일한 효과를 가진 코드 조각을 사용하려고했습니다. 그래서 나는 지금 당황하다.
단서, 힌트 또는 동반 웃음을 높이 평가합니다.
안녕 제프, 당신은 기존의 OpenGL을 피해야한다 – elect