'라이브러리/OpenGL'에 해당되는 글 18건

OpenGL은 입력 기본요소인 정점에 일련의 변환이 가해진다. 변환 과정은 다음과 같다.

모델좌표 --> 전역좌표 --> 시점좌표 --> 절단좌표 --> 정규좌표 --> 화면좌표

모델 좌표계 : 모델링에 편하게 설정된 좌표계
전역 좌표계 : 개별 물체의 좌표계를 모아 하나로 만들수 있는 좌표계
시점 좌표계 : 몰체를 바라보는 시점을 기준으로 표현한 좌표계
절단 좌표계 : 시점으로부터 보이지 않는 물체를 잘내기 편하게 설정한 좌표계
정규 좌표계 : 상,하,좌,우 로 1의 범위를 가진 2차원 좌표계
화면 좌표계 : 장치 좌표계 또는 윈도우 좌표계라 하며 화소 단위로 좌표를 표시한다. 좌상단이 기준으로 Y축은 아래쪽이 +이다.

뷰포트
윈도우 내부에 설정한 작은 창으로 윈도우의 일부만 그리거나 화면을 분활 하여 그릴 때 사용한다.
만약 별도로 지정하지 않으면 윈도우 창 자체가 하나의 뷰포트가 된다. 이럴경우 왜곡이 일어나기도 한다.
왜곡이 일어나지 않기 하기 위해서는 종횡비가 유지 되도록 해주면 왜곡이 일어나지 않는다.

glViewport(GLint x, GLint y, GLsizei width, GLsizei height)

뷰포트를 설정할때 주의 할점은 시작위치인 x, y의 값은 윈도우의 좌하단을 원점으로 한다.



'라이브러리 > OpenGL' 카테고리의 다른 글

기하 변환  (0) 2009.03.22
3차원 물체의 표현  (0) 2009.03.22
디스플레이 리스트  (0) 2009.03.22
정점배열  (0) 2009.03.22
GLUT 모델링  (0) 2009.03.21
파이프라인과 상태변수  (0) 2009.03.21
OpenGL의 설계원리  (0) 2009.03.21
채도, 명도  (0) 2009.03.21
GLUT의 콜백함수  (0) 2009.03.09
GLUT의 윈도우 관련 함수  (0) 2009.03.09
Posted by crownog
,
GPU의 구조는 CPU의 구조와 유사하다. CPU가 파이프라인을 사용해 속도를 올린것과 같이 GPU도 파이프라인으로 처리리속도를 획기적으로 개선한 것이다.



OpenGL의 입력은 기하 기본요소(Geometry Primitives)와 영상 기본요소(Image Privitives)로 구성된다. 기하 기본요소는 3차원 점, 선, 다각형을 말하며, 영상 기본요소는 2차원 비트맵 영상을 말한다. 지엘의 출력은 입력된 기하학적 기본요소로 구성된 물체를 렌더링 한 모습으로서 필요시 입력된 영상 기본요소가 렌더링에 반영된다.
위 그림처럼 OpenGL의 프로세스는 여러게가 있어 각각 맏은 처리를 끝내면 다음 프로세서에 처리 결과를 넘겨주고 자기 자신은 놀지 않고 그 다음 다시 입력을 받아서 쉬지 않고 돌아가게한다.

이 처럼 파이프라인을 이용하면 모든 서브 프로세서가 동시에 가동되기 때문에 처리속도가 빨라진다.

파이프 라인을 크게 봐서 위 그림과 같은 서브 프로세서로 이루어져있다.

OpenGL은 단지 위 서브 프로세서에 파리미터를 전달하는 일을 하고 거대한 상태변수 기계이다. 상태변수란 물체가 어떻게 그려져야 할지를 표현하는 변수들을 말하는 것으로 그래픽 컨텍스트라고도 불린다.

OpenGL에서는 상태 테이블 이란 것을 사용하여 현재의 상태 속성들이 저장이 되어있어 변경하기 전까지는 그려지는 모든 것이 그 속성을 적용 받는다.


'라이브러리 > OpenGL' 카테고리의 다른 글

기하 변환  (0) 2009.03.22
3차원 물체의 표현  (0) 2009.03.22
디스플레이 리스트  (0) 2009.03.22
정점배열  (0) 2009.03.22
GLUT 모델링  (0) 2009.03.21
OpenGL의 좌표계, 뷰포트  (0) 2009.03.21
OpenGL의 설계원리  (0) 2009.03.21
채도, 명도  (0) 2009.03.21
GLUT의 콜백함수  (0) 2009.03.09
GLUT의 윈도우 관련 함수  (0) 2009.03.09
Posted by crownog
,
범용성
제일은 거의 대부분 하드웨어 실행될 수 있도록 설계되었다. 따라서 MS의 Windows를 비롯한 Unix와 같은 운영체제에서도 실행될 수 있다.

효율성
3차원 그래픽 영상을 그려내는데는 수 많은 연산이 필요하다. 따라서 GPU 이나 프레임 버퍼 등 그래픽 하드웨어의 가속 기능을 최대한 발휘하는 것이 렌더링 속도를 올리는 지름길이다. 그러나 그래픽 하드웨어는 제조사 마다 다르기 때문에 OpenGL에서는 주어진 기능을 프로그램에 의해 활성화 또는 비활성화 시킬수 있다.

독립성
어떤 기능을 확성화 또는 비활성화 모드로 가져가는 것이 다른 기능에 영향을 미쳐서는 안된다. 이는 기능끼리 서로 얽혀 발생하는 오류를 방지하기 위한 것이다.

완전성
OpenGL에서는 공통된 기능이 아닌 특정 하드웨어 기능에 대해서는 ARB확장 형태로 명령어를 제공 한다. 반면 프로그램이 특정 하드웨어만 지원하면 사용하기가 까다로워진다. 따라서 특정기능이 지원되지 않더라도 소프트웨어적으로 실행할 수 있도록 되어있다. 그러나 이경우 CPU를 사용하므로 렌더링 속도가 느려질수 있다. 그리고 특정기능이라 하더라도 많은 하드웨어 에서 쓰이게 되면 표준으로 변경이 될수있다.

상호 작업성
네트워크로 연결된 서로 다른 기종간의 연결된 컴퓨터에서 A라는 컴퓨터에서 명령을해 B라는 컴퓨터에서 실행 하게 할 수 있다. 일종의 클라이언트-서버 모델로 상대적으로 성능이 낮은 클라이언트 컴퓨터에서 고성능 서버를 이용할 수 있다.


'라이브러리 > OpenGL' 카테고리의 다른 글

기하 변환  (0) 2009.03.22
3차원 물체의 표현  (0) 2009.03.22
디스플레이 리스트  (0) 2009.03.22
정점배열  (0) 2009.03.22
GLUT 모델링  (0) 2009.03.21
OpenGL의 좌표계, 뷰포트  (0) 2009.03.21
파이프라인과 상태변수  (0) 2009.03.21
채도, 명도  (0) 2009.03.21
GLUT의 콜백함수  (0) 2009.03.09
GLUT의 윈도우 관련 함수  (0) 2009.03.09
Posted by crownog
,
은 전자기파의 일종으로 공간에서 전기장과 자기장이 서로 수직으로 교차하며 진행하는 파도를 전자기파라 한다.
빛 에너지는 전자기파에 있어서 장의 세기를 말하며 초당 몇번이나 장의 세기가 바뀌는지 나태내는 것을 주파수라 한다.

백색광에는 보라색부터 적색에 걸친 모든 주파수 성분을 내포하고 있다. 이 빛이 물체 표면에 부딪치면 어떤 주파수 성분은 물체 내부로 흡수되고, 어떤 주파수 성분은 반사되는대, 이 반사된 빛 중 가장 많은 에너지를 지닌 파장의 주파수를 우세 주파수라 하고 이 우세 주파수의 색을 물체의 색상 이라 한다.

채도는 색이 선명도 혹은 순도라 하며, 색상에너지와 백색에너지의 차이를 말한다.
100  75   50  
 <테이블 색상 출처 : 위키 피디아>

명도란 색상과 무관하게 눈에 감지된 빛 에너지의 총량을 말한다.
100  75   50   25
 <테이블 색상 출처 : 위키 피디아>
스스로 빛을 발하는 물체의 명도를 자체명도(Brightnesss)라 하고 반사된 빛을 발하는 물체를 반사명도(Lightness)라 하기도 한다.


'라이브러리 > OpenGL' 카테고리의 다른 글

기하 변환  (0) 2009.03.22
3차원 물체의 표현  (0) 2009.03.22
디스플레이 리스트  (0) 2009.03.22
정점배열  (0) 2009.03.22
GLUT 모델링  (0) 2009.03.21
OpenGL의 좌표계, 뷰포트  (0) 2009.03.21
파이프라인과 상태변수  (0) 2009.03.21
OpenGL의 설계원리  (0) 2009.03.21
GLUT의 콜백함수  (0) 2009.03.09
GLUT의 윈도우 관련 함수  (0) 2009.03.09
Posted by crownog
,