• 검색 결과가 없습니다.

GLSL

문서에서 15장. 그래픽스 응용 (페이지 69-78)

69

GLSL(GL Shading Language)

지엘• 파이프라인마다 고정된 알고리즘을 그래픽 처리의 속도를 향상

• 그래픽 카드가 지원하는 한 지엘 확장 기능(ARB Extension)을 사용가능. 지 엘의 설계목적인 프로그램의 이식성(Portability)을 저해

지엘 셰이딩 언어(GLSL: GL Shading Language)

• 사용자 프로그램에 의해 파이프라인 일부를 대체

• 호환성을 확보하기 위해 셰이딩 언어는 하드웨어에 무관한 고급언어

• 지엘 코드와 섞여서 동작

• 고정된 파이프라인을 사용치 않기 때문에 속도 면에 유의. 셰이딩 언어 또는 컴파 일러는 병렬처리를 최대한 활용

ARB-GL2 워크 그룹

• 2003년초 드래프트 오픈지엘 셰이딩 언어

• 새로운 컴파일러에 의해 "C" 언어와 유사한 고급언어로 코딩

71

파이프라인 프로세스의 대체

정점 셰이더(Vertex Shader)

프래그먼트 셰이더(Fragment Shader)

정점 셰이더와 프래그먼트 셰이더

정점 셰이더

• 입력: 정점의 위치, 색, 법선벡터 등

• 델뷰 행렬과 투상행렬을 사용하여 정점의 위치를 변환하거나 법선벡터를 변환하 고 재 정규화

• 지엘의 상태변수를 접근할 수 있기 때문에 텍스쳐와 조명에 활용

• 텍스쳐 영상을 직접 이용할 수 있음.

프래그먼트 셰이더

• 입력: 정점의 위치, 색, 법선벡터 등을 보간한 값

• 안개효과, 컬러 섬, 화소 확대, 텍스쳐 접근 등의 기능을 대신

• 시저 테스트, 알파 테스트, 깊이 테스트, 스텐실 테스트, 디더링 등 파이프라인 기능은 대체할 수 없음.

73

openGL ES

openGL ES

openGL ES의 특징

• 1) 기본요소 렌더링에 있어서 openGL에서 사용하는 glBegin...glEnd를 없 애는 대신 정점 배열(Vertex Array)를 사용하였다.

• 2) 대부분의 임베디드 프로세서가 부동소수 연산 기능이 없는 점을 감안하여 정 점의 좌표를 표현하는데 있어서 고정소수 타입(Fixed Point Type: 예를 들어 GL의 경우 0.05=0.5e-1, ES의 경우 0.05=0.05)을 사용하도록 하였다.

• 3) 경량 인터페이스를 제공하기 위해 쿼드(Quad)/폴리곤(Polygon) 기본요 소, 폴리곤 모드, 앤티에일리아스를 적용한 다각형 렌더링, 폴리곤 스티플

(Polygon Stipple), 프런트 버퍼 드로잉(Front Buffer Drawing), 이밸 류에이터(Evaluator), 비트맵, 3D 텍스쳐, A 버퍼, 화소 복사, 디스플레이 리스트(Display List), 사용자 정의 절단 다각형(User-defined Clipping Plane), 컬러 인덱스 모드 등 많은 기능을 제거하였다.

• 4) GLshort, GLbyte, GLubyte, 함수 접미어를 사용하지 않으며 float, short, byte 자료형만 사용이 가능하다.

75

openGL ES

OpenGL ES 1.1

• 1) 멀티 텍스쳐링(Multitexturing)

• 2) 자동 밉맵 생성(Automatic MipMap Generation)

• 3) 고정소수 연산 및 부동소수 연산(Fixed Point and Floating Point Profiles)

• 4) 사용자 정의 절단 다각형(User-defined Clipping Plane)

• 5) 점 렌더링 기능(Point Rendering)

현재로서 구글 운영체제인 안드로이드(Android 1.6)가 OpenGL ES 1.1을 지 원한다.

openGL ES

OpenGL ES 2.0

• 렌더링 파이프라인에 의한 대부분의 고정 렌더링 기능을 제거하는 대신 지엘의 셰이딩 언어에 해당하는 GLSL ES를 사용하여 이를 프로그램 할 수 있도록 한 것이다. 예를 들어 조명에 있어서 물체 정의 및 광원 파라미터 등을 정의하는 대 신 프로그래머가 작성한 셰이더가 작동하도록 한 것이다.

• 1) 정점/프래그먼트 셰이더(Vertex/Fragment Shader) 사용

• 2) 고급 언어(GLSL ES) 지원

• 3) 광원 속성(Light Attributes) 사용

• 4) 텍스쳐(Texture), 의존 텍스쳐(Dependent Texture), 큐브 맵(Cube Maps)

• 5) 프레임 버퍼 오브젝트(Frame Buffer Object) 사용

77

openGL ES

Fixed Function Pipeline

문서에서 15장. 그래픽스 응용 (페이지 69-78)

관련 문서