OpenGL® 음영 언어 란 무엇입니까?
GLSL (OpenGL® shading language)은 OpenGL® 라이브러리를 사용하여 그래픽 카드의 그래픽 처리 장치 (GPU) 내에서 직접 렌더링 프로세스 중에 3D 그래픽을 조작하고 제어하기 위해 특별히 설계된 컴퓨터 프로그래밍 언어입니다. 본질적으로 OpenGL® 쉐이딩 언어는 프로그래머가 GPU 하드웨어와 인터페이스하기 위해 어셈블리 언어 루틴을 실제로 작성할 필요없이 가능한 가장 낮은 수준에서 3D 지오메트리 및 렌더링에 직접 액세스 할 수 있도록합니다. OpenGL® 쉐이딩 언어를 사용하여 절차 적으로 생성 된 텍스처 및 지오메트리와 같은 효과를 GPU 내에서 직접 구현하고 최적화하여 렌더링 프로세스 속도를 높일 수 있습니다. 또한 애니메이션이나 특수 효과와 같은보다 복잡한 기능을 높은 수준의 코드 오버 헤드없이 효율적으로 구현할 수 있습니다. 쉐이딩 언어는 GPU에 의해 실행 가능한 코드로 컴파일됩니다. 즉, 특정 구현 및 컴파일러를 개별 그래픽 카드 용으로 설계 할 수 있으므로 다른 셰이더를 사용하여 성능을 향상시킬 수 있습니다.
실용적인 모든 목적을 위해 OpenGL® 음영 언어는 포인터 유형 변수 및 일부 전 처리기 지시문을 제외하고 거의 모든 방식으로 C 프로그래밍 언어의 구문을 모방하는 완전히 구현 된 프로그래밍 언어입니다. 사용자 정의 함수, 변수 및 논리적 분기 및 루핑 문이 모두 지원되므로 셰이더 언어 만 사용하여 완전히 실현 된 프로그램을 작성할 수 있으며 다양한 운영 체제 및 하드웨어 구성에서 이식 가능한 추상화 수준을 제공 할 수 있습니다. 셰이더 프로그램이 완료되면 GPU로 전달되어 렌더링 프로세스 중에 필요에 따라 컴파일 및 실행됩니다.
OpenGL® 쉐이딩 언어로 작성된 프로그램은 궁극적으로 GPU로 전달되며 그래픽 카드 제조업체에서 생산 한 하드웨어 또는 드라이버로 컴파일 할 수 있습니다. 이는 언어 내에서 사용되는 특정 명령문이 특정 그래픽 카드의 특정 하드웨어 기능과 효율적으로 작동하도록 최적화 된 실제 컴파일 된 바이트 코드를 가질 수 있음을 의미합니다. 이는 실행 속도를 높이고 단일 그래픽 카드에 고유 한 특수 렌더링 옵션 및 효과를 포함하도록 기본 기능을 확장 할 수 있습니다.
OpenGL® 음영 언어를 사용하여 작성할 수있는 세 가지 유형의 셰이더가 있습니다. 첫 번째는 정점 셰이더라고하며 공간의 점을 변환, 크기 조정 또는 텍스처링하는 등 개별 정점에 대해 복잡한 작업을 수행하도록 설계되었습니다. 두 번째는 지오메트리 셰이더이며 다각형이 래스터 화되기 전에 다각형을 추가, 제거 또는 조작하는 데 사용할 수 있습니다. 픽셀 쉐이더라고도하는 조각 쉐이더는 조명 효과 나 왜곡과 같이 화면에 표시하기 위해 평면 2D (2D) 이미지로 변환 될 때 3D 장면의 포인트에서 작업을 수행하도록 작성 될 수 있습니다.