OpenGL® Sphere 란 무엇입니까?
가장 기본적인 수준 인 OpenGL® (Open Graphics Library®) 구는 정점이 모두 중심점에서 등거리 인 일련의 삼각형 또는 사변형으로 구성된 3D (3D) 객체입니다. 즉, OpenGL® 구면을 어떤 각도에서 볼 때도 윤곽선은 뷰어에게 완벽한 원으로 표시되지만 조명과 음영으로 볼륨이 더 공처럼 보이게 할 수 있습니다. OpenGL® 구를 만드는 데 사용되는 정점의 수는 실제 구의 근사치에서 12 부드러운 점으로 구를 고려할 수없는 대상을 만드는 대상체의 부드러움을 결정합니다. 구는 많은 그래픽 응용 프로그램 및 라이브러리에서 모양 기본으로 간주되지만 OpenGL®에는 구를 렌더링 할 수있는 고유 기능이 없으므로 OpenGL® 유틸리티 툴킷 (GLUT)과 같은 보조 툴킷을 사용하여 코드 작성을 피해야합니다. 모양을 수동으로 생성합니다.
OpenGL®에서 꼭짓점을 처리 할 때 어느 정도의 부드러움으로 구를 생성하는 데 사용할 수있는 가장 적은 점은 12 개이며 20 면체로 알려진 20 개의 삼각형면이있는 객체를 만듭니다. 추가 처리없이 이러한 방식으로 구성된 OpenGL® 구체는 가장자리 주위에 날카로운 모서리가 표시되어 일부 응용 분야에서 허용 될 수 있습니다. 보다 둥근 구를 달성하려면 각면을 더 세분화해야합니다.
정 이십 면체를 세분화하여 포함하는 정점의 수를 늘리고 더 부드러운 OpenGL® 구체를 형성하는 것은 기존의 각 삼각형의 각 가장자리의 중심에 새로운 정점을 만드는 것입니다. 즉, 각 삼각형면에 이제 4 개의 삼각형이 포함됩니다. 점을 기하 급수적으로 추가하면 렌더링 시간이 길고 번역하기가 어려워 질 수있는 객체를 신속하게 만들 수 있지만 세분화는 필요한만큼 계속할 수 있습니다.
정점 좌표에서 쉽게 계산할 수있는 표면 법선과 같은 OpenGL® 구체가 프로그래머에게 제공하는 수학적 편의성에도 불구하고 구체를 텍스처링하면 약간의 복잡성이 나타날 수 있습니다. 구에 투영 된 표준 2 차원 (2D) 텍스처를 사용한다는 것은 구의 극 근처에있는 삼각형의 모양이 스스로 압축되기 때문에 텍스처 이미지의 위쪽과 아래쪽 영역이 압축됨을 의미합니다. 이를 극복하기 위해 큐브 맵핑을 사용하거나 프로그래머가 오브젝트의 텍스처 좌표를 수동으로 생성 할 수 있습니다.
OpenGL® 구체를 생성하기 위해 유틸리티 라이브러리를 사용하는 것에 대한 한 가지 요소에 주목해야합니다. GLUT 또는 유사한 툴킷으로 생성 된 구는 OpenGL® 자체 내에서 수정, 최적화 및 관리하기 어려울 수 있습니다. 이러한 이유로 사용자 정의 코드를 사용하여 OpenGL® Sphere를 생성하여 프로그램 내에서 가능한 가장 효율적인 방식으로 작성하여 사용할 수있는 경우가 있습니다.