opengl 예제

OpenGL에는 모든 하드웨어에서 기능을 사용할 수 없기 때문에 swap_the_buffers() 명령이 없으며, 어떤 경우든 창 시스템에 크게 의존합니다. 예를 들어 X 윈도우 시스템을 사용하고 직접 액세스하는 경우 다음 GLX 루틴을 사용할 수 있습니다. 예를 들어 GLX를 호출하는 경우 이 가이드의 나머지 부분(실제 코드 예제 제외)에서 코드에 이러한 줄을 추가해야 할 수 있으며 OpenGL 명령은 기본 이름으로만 참조되며 별표가 포함되어 쉼표에 더 많은 것이 있을 수 있음을 나타냅니다. ND 이름. 예를 들어 glColor*()는 현재 색상을 설정하는 데 사용하는 명령의 모든 변형을 의미합니다. 특정 명령의 한 버전에 대해 특정 지점을 지정하려면 해당 버전을 정의하는 데 필요한 접미사를 포함합니다. 예를 들어 glVertex*v()는 정점을 지정하는 데 사용하는 명령의 모든 벡터 버전을 나타냅니다. 이것은 실제로 창을 표시하고 “위대한 나는 그것을 할 수 있습니다”라고 말하는 기본 코드입니다. C 구현으로 보이는 이러한 기본 사항입니다 (실제로이 예제에서는 클래스가 없습니다). 이러한 시스템에서 자주 발생하는 것은 프레임이 너무 복잡하여 1/60초 내에 그리는 것이 너무 복잡하여 각 프레임이 두 번 이상 표시됩니다. 예를 들어 프레임을 그리는 데 1/45초가 걸리면 30fps를 얻게 되고 그래픽은 프레임당 1/30-1/45=1/90초 또는 시간의 3분의 1동안 유휴 상태입니다. 정점 데이터의 경우 다음 단계는 정점을 기본으로 변환하는 “정점별 작업” 단계입니다. 일부 정점 데이터(예: 공간 좌표)는 4 x 4 부동 점 행렬로 변환됩니다.

공간 좌표는 3D 세계의 위치에서 화면의 위치로 투영됩니다. 변환 행렬에 대한 자세한 내용은 3장을 참조하십시오. 프로그램에 사용되는 다음 OpenGL 명령인 glOrtho()는 최종 이미지를 그릴 때 OpenGL이 가정하는 좌표계와 이미지가 화면에 매핑되는 방식을 지정합니다. glBegin() 및 glEnd()에 의해 괄호로 묶인 다음 호출은 그려질 오브젝트를 정의합니다.이 예제에서는 네 개의 정점이 있는 다각형을 정의합니다. 다각형의 “모서리”는 glVertex3f() 명령에 의해 정의됩니다. (x, y, z) 좌표인 인수에서 추측할 수 있듯이 다각형은 z=0 평면의 사각형입니다.