2013-02-20 2 views
1

JOGL 임에서 GL_QUADS (즉, 전체 개체의 다른 구성 요소)를 사용하여 몇 가지 3D 모양을 만들려고 시도했지만 지금까지는이 작업을 수행해도 괜찮 았지만 모양을 변환하는 방법을 알 수 없었습니다. GL_QUADS에 익숙하지 않은이 일을 할 수있는 방법이되어야합니다. gl.glVertex3f을 편집하면 모양이 편집 할 수있는 유일한 크기 인 모양이됩니다. GL_QUAD에 변수 이름을 지정할 수 있습니까?JOGL - translate GL_QUADS

답변

2

당신은 glTranslatef 기능을 사용할 수 있습니다

// render the shape 
gl.glTranslatef(5.0f, 0.0f, 0.0f); // translate along x, y, z 
// render the shape - you will now have two shapes next to each other
+0

덕분에, 내가 요청하기 전에이 작업을 시도했지만 아무것도 결코하지 않았다? 내가'public void display (GLAutoDrawable drawable) {'와'glBegin'을 꽤 많이 가지고 있기 때문입니까? – thrash

+1

'glBegin' ...'glEnd' 안에 넣으면 명령이 효과가 없습니다. 'glBegin' 전에 호출되어야합니다. 'glBegin' ...'glEnd' 내에서 몇개의 JOGL/OpenGL 커맨드 만 유효합니다 : http://www.glprogramming.com/red/chapter02.html 이것이 도움이되지 않는다면, 당신이 할 수 있다면 가장 좋을 것입니다 소스 코드를 게시하십시오. – gcvt

+0

'glBegin' 전에 감사드립니다. – thrash

1

효과적으로부터 그리는 무엇이든 다음에 x 축에 1 개 단위를 함께 나타납니다 즉, 스택에서 현재 행렬에 적용됩니다 gl.glTranslatef(1.0f, 0.0f, 0.0f); 호출을 어떤에서 행렬은 이전에있었습니다 (아마도 귀하의 경우에는 원점이었습니다).

난 당신이 다음 을 번역하여 모양을 그릴 할 것, (이미 그려져있어, 할 수없는)이 오히려 이동 한 후 모양 을 만드는 대신 혼란을 보일 수 있습니다 이유를 볼 수 있습니다. 예를 들어

: 답장을

gl.glPushMatrix(); 
    gl.glTranslatef(1.0f, 0.0f, 0.0f); 
    gl.glBegin(GL2.GL_QUADS); 
     // draw some vertices here 
    gl.glEnd(); 
gl.glPopMatrix();