728x90
ISO표준
- 컴퓨터 그래픽스 - 하드웨어와 소프트웨어를 사용하여 물체와 물체영상을 생성, 변형, 디스플레이, 저장하는 것
- 주전산기 독립성 - 동일한 프로그램을 가지고서 다양한 모든 하드웨어에서 사용할 수 있어야 한다.
- 장비 독립성 - 입출력 장비의 종류가 달라도 동일 기능을 수행하기 위한 프로그램 명령은 동일해야 한다.
- 프로그램 언어 독립성 - 프로그램 작성에 어떠한 프로그램언어를 사용해도 된다.
- 운영자 이식성 - 새로운 프로그램 사용법을 누구라도 쉽게 터득할 수 있어야 한다.
그래픽스 표준에 의한 분류
- 응용 프로그램 레벨 - 응용 프로그램이 지켜야 할 표준을 추상적인 수준에서 서술하는 것
- 가상 레벨 - 출력되어야 할 내용을 기본요소를 사용하여 서술하는 것
- 논리적 레벨 - 주어진 장비에서 해당 기본요소를 그리기 위해 필요한 과정을 서술
- 물리적 레벨 - 개별 입출력 장비에 관한 내용 서술
ISO 그래픽 표준의 흐름
- GKS(Grahical Kernel System) - 2차원 위주, 전역 좌표계, 정규화 장치 좌표계, 장치 좌표계
- PHIGS(Programmer’s Hierarchical Interactive Graphics System) - 3차원 모델링, 가시화, 전역 촤표계, 정규화 장치 좌표계, 시점, 가시부피
그래픽 파일
- 비트맵 파일 - 단순히 화면 화소값을 저장
- GKS 메타파일 - 그림을 만들어 낼 때 사용한 순차적 명령어들 저장
- PHIGS 메타파일 - GKS 메타파일의 내용을 포함 + 응용 프로그램 레벨에서 기본 요소 사이의 관계까지 저장
그래픽 API
- API - 함수를 이용하여 프로그램을 작성하는데 직접 활용할 수 있도록 한 라이브러리 함수
- 직접 하드웨어를 제어하는 명령 대신 그보다 상위 개념인 라이브러리 함수를 호출함으로써 손쉽게 응용 프로그램 작성 가능
- 응용 프로그램이 라이브러리 함수 호출 → 드라이버 소프트웨어에의해 해당 하드웨어를 제어하는 어셈블리 명령어로 바뀜
High-Level 그래픽 API
- 그림을 그리기 위한 실제적인 세부 과정을 명시하는 대신, 물체를 정의하고 물체 사이의 관계를 묘사함으로써 프로그램 작성 완료
Low-Level 그래픽 API
- 물체를 구성하는 기본요소의 정의부터 시작해서 실제 그림을 그리는 세부적인 과정을 일일히 명시
- 그래픽 메모리, 그래픽 가속 칩 등 하드웨어와 밀접함 : 하드웨어 성능을 최대한 발휘 가능
API 레벨
API 발전과정
GL 설계원리
- 범용성
- 대부분의 하드웨어에서 실행가능
- 소프트웨어 면에서 운영체제 무관하게 설계
- 효율성
- 그래픽 프로세서 칩이나 프레임 버퍼 등 그래픽 하드웨어의 가속 기능을 최대한 발휘하기 위해 호환성 지님
- 독립성
- 기능간의 독립성이 보장됨
- 완전성
- 하드웨어 기능을 대부분 수용한다.
- 공통된 기능이 아닌 특정 하드웨어 기능에 대해서는 ARB확장 형태로 명령어 제공
- 상호 작업성
파이프라인과 상태변수
- 파이프라인
- 그래픽 처리 작업을 기능별로 세분하여 이를 순차적으로 배치한 것
- GPU의 처리속도를 획기적으로 개선한 것
- 파이프라인 구조를 활용하면 모든 서브 프로세서가 동시에 가동되기 때문에 전체 처리속도가 빨라진다(서브 프로세싱은 하드웨어로 구현된다)
- 상태변수
- 상태변수(=그래픽 컨텍스트) - 물체가 어떻게 그려져야 할지를 표현
- GL은 단짖 서브 프로세서에 파라미터를 전달하는 일을 함
- 시스템 테이블
- GL 프로그램이 상태변수 값을 설정하면 그 값이 상태 테이블에 기록되고, 개별 파이프라인 프로세서는 필요한 상태변수 값을 이 테이블로부터 읽어서 프로세스를 실행한다.
- 모드(Modes)
- 상태변수보다 포괄적인 개념
- 조명, 텍스처 등과 같은 종류의 상태변수
- 조명 모드를 비활성화하면 조명에 관련된 모든 상태변수가 자동으로 비활성됨
- 명령어
- GL은 처리속도를 높이기 위해 객체지향을 채택하지 않음
- 프로그램 구성요소
- 지엘 라이브러리(GL : OpenGL Core Library)
- 렌더링 기능을 제공하는 함수 라이브러리
- 지엘 유틸리티 라이브러리(GLU : OpenGL Utility Library)
- 지엘 라이브러리의 도우미
- 다각형 분할(Tessellation), Projection, Quadric Surface, NURBS(Non-Uniform Rational B-Spline) 등 고급기능을 제공하는 함수로서 GL 함수로 작성되어있음
- 지엘 유틸리티 툴 킷(GLUT : OpenGL Utility Toolkit)
- 사용자 입력을 받아들이거나 화면 윈도우를 제어하기 위한 함수로서 윈도우 운영체제가 실행하는 기능들
- GL 프로그램과 그 프로그램이 돌아가는 윈도우 운영체제 사이의 인터페이스
- GL의 일부가 아닌 Freeware
- GLUT와 윈도우 운영체제
- 운영체제 역할
- 프로그램 실행 시 프로그램을 제어
- GL 프로그램 실행의 시작 명령을 내리는 것도 운영체제
- GL 요청에 다라 새로운 위도우 만들기
- GL의 렌더링 작업이 끝났을 떄 윈도우 안에 그 결과를 보이는함수를 호출
- 마우스 클릭시 상호작용에 필요한 함수 호출
- 운영체제 역할
728x90
'Computer > 그래픽스' 카테고리의 다른 글
투상변환과 뷰포트변환 (0) | 2023.01.17 |
---|---|
모델 변환과 시점 변환 (0) | 2023.01.17 |
그래픽 프로세서 (0) | 2023.01.13 |
그래픽스 구성요소 (0) | 2023.01.13 |
컴퓨터 그래픽스란? (0) | 2023.01.13 |