opengl 예제 프로그램

프로그래밍 플랫폼에 따라 OpenGL을 설정하려면 창의 가로 세로 비율에 따라 OpenGL 클리핑 영역을 조정하도록 프로그래밍할 수 있는 콜백 처리기 reshape()를 통해 창의 크기 조정을 처리할 수 있습니다. OpenGL은 강력하지만 원시적인 렌더링 명령 집합을 제공하며 모든 상위 수준 그리기는 이러한 명령의 관점에서 수행해야 합니다. 또한 OpenGL 프로그램은 창 시스템의 기본 메커니즘을 사용해야 합니다. 다음과 같은 프로그래밍 작업을 단순화할 수 있도록 여러 라이브러리가 존재합니다. 따라서 창을 열거나 키보드 나 마우스에서 이벤트를 읽는 명령이 없습니다. 불행하게도, 적어도 창을 열지 않고 완전한 그래픽 프로그램을 작성하는 것은 불가능하며, 가장 흥미로운 프로그램은 운영 체제 또는 창 시스템에서 사용자 입력 또는 기타 서비스의 비트를 필요로한다. 대부분의 경우 전체 프로그램이 가장 흥미로운 예제를 만들므로 이 책에서는 GLUT를 사용하여 창을 열고 입력을 감지하는 등의 작업을 간소화합니다. 시스템에 OpenGL 및 GLUT를 구현한 경우 이 책의 예제는 연결될 때 변경 없이 실행되어야 합니다. OpenGL 그래픽 시스템으로 많은 작업을 수행할 수 있기 때문에 OpenGL 프로그램이 복잡할 수 있습니다. 그러나 유용한 프로그램의 기본 구조는 간단할 수 있습니다: 해당 작업은 OpenGL 렌더링 방법을 제어하는 특정 상태를 초기화하고 렌더링할 오브젝트를 지정하는 것입니다.

함수 표시()를 콜백 이벤트 처리기로 합니다. 이벤트 처리기는 특정 이벤트(예: 키 누를, 마우스 클릭, 창 페인트)에 대한 응답을 제공합니다. 함수 표시()는 창 페인트 이벤트의 처리기입니다. OpenGL 그래픽 시스템은 창 페인트 요청에 대한 응답으로 다시 디스플레이()를 호출합니다(예: 창이 먼저 나타나고, 창이 최소화된 후 복원되고, 창의 크기가 조정됩니다). 콜백은 함수가 프로그램에서 호출하는 대신 시스템에 의해 호출된다는 것을 의미합니다. 시스템에서 화면을 지우고 일반적인 프레임을 그리는 데 걸리는 시간을 추가하면 이 프로그램은 지우고 그리는 데 걸리는 1/24초에 얼마나 가깝게 가는지에 따라 점점 더 불안한 결과를 제공합니다.