2012-02-13 3 views
2

glVertex2f()를 사용하여 배열의 일부 점을 그리는 중입니다. 역순으로 뒤집을 필요가 있습니다. glViewport()에서 그리기 때문에 크기를 조정하고 이동할 수 있습니다. 그러나 나는 그것을 뒤집을 방법을 모른다.glVertex2f()로 그린 그림을 뒤집으시겠습니까?

gluOrth2d()를 사용해야합니까? gluOrth2d()와 glViewport() 사이의 차이점과 어느 것을 사용해야하는지 완전히 이해하지 못합니다.

답변

1

glViewport()은 뷰포트를 설정합니다. 즉, 전체 지오메트리가 그려지는 윈도우의 부분을 설정합니다. 렌더링이 발생할 화면의 부분과 정확하게 일치해야하기 때문에 부동 소수점 숫자가 아닌 정수 (!!)를 사용할 수 있습니다.

gluOrtho, gluPerspective, glFrustrum e.t.c. 같은 투영 모 델을 설정하는 데 사용됩니다.

프로그램에서 gluOrtho2D()를 사용하지 않을 수도 있지만 항상 자신이 설정 한 투시 투영법이 있어야하므로 사용 중이어야합니다.

편집 : 당신이이

glScalef(1,-1,1); 

번식 할 할 수있는 2D 가정하고, 전체 장면을 반전하기 위해

(코멘트에 주어진 포인터를 준수하기 위해 수정) 스케일링 행렬이있는 현재 모델 뷰 행렬. 효과적으로 장면을 거꾸로 뒤집습니다.

Explains without lots of math

Explains with a bit more math

+2

'gluOrtho'는 ** perspective ** 투영을 설정하지 않습니다. 단순히 투영을 설정합니다. 구체적으로,'gluOrtho'는 정사영 * 투영 행렬을 만들어 그것을 현재 행렬에 곱합니다. 그것은 투시 투영이 아니라 정의에 의한 투영입니다. –

+0

가로 및 세로로 회전 반전되지 않습니까? –

+0

젠장, 나와 영어. 네, 니콜이라고 말하고 싶습니다. – Lefteris

2

당신은 당신의 장면을 수직으로 반전됩니다

당신은 내가 도움이 될 희망이 두 링크를 제공 할 OpenGL을 행렬의 사용을 이해하는 도움을 필요로하는 것 때문에 (뒤집힌) :

glScalef(1, -1, 1); 

또는 가로로 뒤집기 :

glScalef(-1, 1, 1); 
관련 문제