반응형
그래픽 API (Application Programming Interface)
- 함수를 사용하여 프로그램을 작성하는데 직접 활용할 수 있도록 한 것 (라이브러리 함수)
고수준 API (High-Level API) |
그림을 그리기 위한 실제적인 세부 과정을 명시하는 대신, 물체를 정의하고 물체 사이의 관계를 묘사하는 장면묘사 언어 Open Inventor, VRML, Java3D 등이 해당 =>직접적으로 장면 묘사 |
저수준 API (Low-Level API) |
물체를 구성하는 기본요소의 정의부터 시작해서 실제 그림을 그리는 세부적인 과정을 일일이 명시 해야 한다. (하드웨어와 직접 연관, OpenGL, Direct3D 등이 해당) =>직접적으로 장면 묘사를 하지 않고, 구체적 프러시저를 호출 |
VRML (버멜 : Virtual Reality Modeling Language)
- HTML : 웹 브라우저에서 하이퍼텍스트 기능을 가진 2차원 그래픽을 위한 언어
↓
- XTML : 웹 환경에서 어플리케이션에 데이터 교환이 가능하도록 하는 새 표준 언어
↓
- VRML : 인터넷에서 3차원 장면을 묘사하는 명령어를 인터넷을 통해 주고 받기 위한 것
엄밀한 의미로 라이브러리 함수 호출. 즉, API다
경우에 따라 함수도 프로그램 언어의 일종으로 간주할 수 있고 따라서 함수를 명령어 라고도 함.
OpenGL 이란?
OpenGL 자체는 프로그래밍 언어가 아니라 API 이며, OpenGL 라이브러리를 사용하기 위해서는 라이브러리를 다운 받아서 IDE에 추가한 뒤 보통 C/CPP에서 헤더파일처럼 간단히 include 하고 하용하면 된다.
OpenGL은 cross platform을 지향하고 어떤 프로그래밍 언어든지 사용해도 무방하다. 참고로 OpenGL 자체는 C 기반으로 제작된 그래픽 API 라이브러리이다.
OpenGL의 설계 원리
범용성 | - 워크스테이션, 수퍼 컴퓨터, 개인용 컴퓨터, 운영체제에 무관 |
효율성 | - 그래픽 하드웨어의 가속 기능을 최대한 발휘 - 회사마다 서로 다른 기능, 공통적인 부분을 찾아내어 그 성능을 극대화 - 공통 부분이 아닌 것에 대해서는 활성화 또는 비활성화 등 기능 모드를 제공 |
독립성 | - 기능간의 독립성을 최대한 보장, 기능끼리 서로 얽혀 발생하는 오류를 방지 |
완전성 | - 특정 하드웨어 기능에 대해서는 ARB 확장 형태로 명령어를 제공 - 다수의 하드웨어가 확장 기능을 지원하면 표준 기능으로 변경 - 소프트웨어적으로라도 실행할 수 있도록 배려 |
상호작업성 | - 그래픽 명령은 A 컴퓨터에서 내리되 실행은 B 컴퓨터에서 할 수 있도록 제공 - 클라이언트-서버 모델 (client-server model) 지원 - 성능이 낮은 클라이언트 컴퓨터가 고성능 서버를 이용 |
반응형
'Windows > OpenGL' 카테고리의 다른 글
06. OpenGL Programming - GLUT의 기능 (0) | 2014.10.12 |
---|---|
05. OpenGL Programming - 함수 구조와 데이터 타입 (0) | 2014.10.12 |
04. OpenGL 설치 및 테스트 (2) | 2014.10.11 |
02. OpenGL 학습을 위한 기본 지식 - 표준과 기본요소 (0) | 2014.10.11 |
01. OpenGL 학습을 위한 기본 지식 - 그래픽스 (0) | 2014.10.11 |