Presentation is loading. Please wait.

Presentation is loading. Please wait.

제 1 장. 컴퓨터 그래픽스 시스템과 모델 - 3D 컴퓨터 그래픽스 구조 - OpenGL API 개요

Similar presentations


Presentation on theme: "제 1 장. 컴퓨터 그래픽스 시스템과 모델 - 3D 컴퓨터 그래픽스 구조 - OpenGL API 개요"— Presentation transcript:

1 제 1 장. 컴퓨터 그래픽스 시스템과 모델 - 3D 컴퓨터 그래픽스 구조 - OpenGL API 개요
Lecture #3 제 1 장. 컴퓨터 그래픽스 시스템과 모델 - 3D 컴퓨터 그래픽스 구조 - OpenGL API 개요

2 강의 개요 3D 컴퓨터 그래픽스 시스템 인터페이스 3D 컴퓨터 그래픽스 시스템 구조 OpenGL API 함수 소개
2차원 그래픽 프로그램 작성 3차원 그래픽스의 특수한 경우로 취급 가능 2차원 그래픽 프로그램 예 #1 : 간단한 사각형 도형 그리기 2차원 그래픽 프로그램 예 #2 : 사각형 도형 애니메이션

3 프로그래머 인터페이스 그래픽스 시스템과의 상호 작용 기존의 프로그램을 이용한 인터페이스 : GUI 인터페이스
페인팅 프로그램의 인터페이스

4 응용 프로그래머 인터페이스(API) 그래픽 시스템과의 상호 작용 API를 통한 인터페이스
그래픽 시스템에 대한 응용 프로그래머의 모델

5 응용 프로그래머 인터페이스(API) 프로그래머가 하드웨어에 대한 구체적인 내용을 알 필요가 없도록 해준다
합성 카메라 모형이 OpenGL, PHIGS, GKS-3D 등의 API 들의 기반이 된다 객체, 관측자, 광원, 표면 재질들에 대한 지정 함수가 필요

6 그래픽스 표준 CORE GKS GKS-3D PHIGS PHIGS+

7 De facto (industry) 표준들
QuickDraw (Apple) Xlib (X-window) GL (SGI), OpenGL DirectDraw, Direct3D (MS) Renderman (Pixar) Java3D

8 API의 함수들 3D 그래픽스 시스템은 일반적으로 합성 카메라 모형에 기반하고 있어 다음과 같은 API 함수를 지원한다 객체
보통 정점들의 집합과 객체 타입(정점들 사이의 관계)로 정의 관측자 카메라의 위치지정 : 위치, 방향, 초점거리, 필름면 광원 위치, 세기, 색, 방향성을 지정 재질의 특성 반사 성질, 투과 성질, 확산 성질 등

9 객 체 API에서 제공하는 기본 객체 OpenGL의 삼각형 정의 glBegin(GL_POLYGON);
점, 선분, 사각형, 다각형, 텍스트 등 API에 따라 곡선, 면을 지원하기도 한다 OpenGL의 삼각형 정의 glBegin(GL_POLYGON); glVertex3f(0.0, 0.0, 0.0); glVertex3f(0.0, 1.0, 0.0); glVertex3f(0.0, 0.0, 1.0); glEnd();

10 관측자 정의 기본적으로 필요한 명세 다양한 방식으로 정의 가능 위치 방향 초점 거리 필름 면 투영 중심의 위치로 기술
투영 중심을 원점으로 하는 좌표계에서의 회전 초점 거리 카메라가 보는 세계의 부분 정의 필름 면 필름면의 높이와 넓이 다양한 방식으로 정의 가능

11 고전적 관측 대 합성 카메라 관측 고전적 관측 합성 카메라 관측 객체와 관찰자와의 관계를 강조 : pp. 35 그림 참조
객체와 관찰자의 독립성 강조 입방체의 이점 투시

12 OpenGL의 관측자 명세 glOrtho(….)
gluLookAt(cop_x,cop_y,cop_z, at_x, at_y, at_z, ...); gluPerspective(field_of_view, …);

13 광원 & 재질 특성 광원 재질 특성 광원과 재질 특성은 API가 지원하는 광-재질 상호작용의 모형에 의존적
위치, 세기, 색 및 방향성 등을 지정 단순화를 목적으로 일점 광원(pointer light)와 단색 광원 (monochrome light)을 가정 재질 특성 객체의 성질(속성)을 지정 반사 성질, 투과 성질, 확산 성질 등 광원과 재질 특성은 API가 지원하는 광-재질 상호작용의 모형에 의존적

14 일련의 이미지들 색 그림판 : pp 219 그림 참조 OpenGL을 이용하여 동일한 객체에 차츰 복잡한 랜더링을 적용
3D 그래픽스와 관련하여 다루게 될 주제를 순서대로 개략적으로 제시 1 : 선 구조 이미지 (wire frame image) 3 : 평면 다각형 (은면 제거 알고리즘이 수행됨) 4 : 광원 사용, 단순 음영법(flat shading) 사용 5 : 세련된 음영법 사용(smooth shading) 6 : 무늬 사상(texture mapping) 사용 7 : 프랙탈(fractals) 8 : 안개 효과 사용

15 선구조 이미지 평면 다각형 (2차원으로 보임)

16 광원, 단순 음영법 사용 세련된 음영법 사용

17 프랙탈 무늬 사상

18 안개효과

19 3D 이미지 형성 패러다임 합성 카메라 모형 광원 추적(Ray-tracing) 모형 모델링-렌더링 모형

20 모델링-렌더링 패러다임 모델링-렌더링 패러다임 모델기 렌더기 모델링과 렌더링을 분리할 수 있다
모델링 : 고도로 대화적, 상세한 이미지 작업 불필요 그래픽 워크스테이션에서 실행 렌더링 : 방대한 계산필요, 계산 전용기계에서 실행 중간파일 모델기 렌더기 The modeling-rendering pipeline

21 그래픽 시스템 구조 초기 그래픽 시스템 Von Neumann 구조의 범용 컴퓨터 사용 벡터 디스플레이에 기반
주컴퓨터 : 선분의 양 끝점 계산 초기 그래픽스 시스템

22 디스플레이 처리기 디스플레이 처리기 주컴퓨터는 이미지를 생성하는 명령을 구성하여 디스플레이 처리기에 전달 주사 변환 담당
그래픽 기본 요소를 표시하는 기능 수행 주컴퓨터는 이미지를 생성하는 명령을 구성하여 디스플레이 처리기에 전달 Display-processor 구조

23 파이프라인 구조 산술 연산의 파이프라인 이미지 생성 과정이 파이프라인 구조에 적합 많은 정점을 비슷한 방식으로 처리

24 기하 파이프라인 (Geometry Pipeline)
정점집합 변환 절단 투영 래스터화 화소집합 Geometric pipeline

25 변 환(Transformation) 서로 다른 좌표계 사이의 변환이 필요 행렬로 표현
객체의 좌표계 => 카메라의 좌표계 => 스크린 좌표계 행렬로 표현 일련의 변환은 행렬의 곱셈으로 처리

26 절 단(Clipping) 모든 이미지 형성 시스템은 전체 세계를 한번에 볼 수 없다
사람 : 화각이 90도 정도 카메라 : 적절한 렌즈를 선택하여 화각을 조절 합성 카메라 모형 : 절단 사각형(Clipping Retangle) 정점들을 이용하여 절단 연산이 가능하므로 변환연산과 함께 파이프라인에 포함시킬 수 있다 절단 기능을 일련의 파이프라인 절단기로 분할 가능

27 투 영(Projection) 3차원 객체  2차원 객체로 투영 투영 행렬을 정점에 곱함으로써 수행 가능한 나중에 투영을 수행
보다 정확한 이미지를 얻을 수 있도록

28 래스터화(Rasterization) 투영된 객체들을 프레임 버퍼 내의 화소들로서 표현 래스터화 과정은 7장에서 제시

29 성능에 관한 점들 두 가지 종류의 처리 성능 기하학적 처리 후반부 처리(back-end processing)
파이프라인 구조가 적합 후반부 처리(back-end processing) 프레임 버퍼 내의 비트들을 직접 조작 비트 블록의 빠른 이동 필요 성능 파이프라인 내에서의 얼마나 빨리 기하학적 요소를 이동 프레임 버퍼내의 화소를 1초에 얼마나 많이 변경

30 OpenGL API (1) 컴퓨터 그래픽스 시스템 응용 프로그래머에게는 블랙 박스로 간주
그래픽스 하드웨어와 하드웨어 드라이버로 구현되거나 하나의 소프트웨어 시스템으로 구현 사용자 프로그램 그래픽스 시스템 입출력 장치 함수 호출 출력 데이터 입력

31 OpenGL API (2) OpenGL API 그래픽스 하드웨어에 대한 소프트웨어 인터페이스
SGI사가 자사의 GL API를 다른 하드웨어나 운영체제에 이식하기 쉽도록 개발된 개방형(open) API 마이크로소프트사는 OpenGL API를 윈도우 환경에서 동작하도록 소프트웨어(library)로 구현하여 제공 SGI사에서도 windows용 OpenGL Library 제공 Mesa 3D Library 300 여 개의 API 함수들로 구성 클라이언트-서버 모델(생성-표시) 플랫폼에 독립적 하드웨어와 운영체제 시스템에 독립적

32 OpenGL API (3) OpenGL 구현 : 기본 구현(Generic Implementation) 소프트웨어적인 구현
어플리케이션 프로그램 OS 서비스 I/O 서비스 GDI OpenGL Software Rasterizer 디스플레이/윈도우 시스템

33 OpenGL API (4) OpenGL 구현 : 하드웨어 구현(H/W Implementation) 어플리케이션 프로그램
OS 서비스 I/O 서비스 GDI OpenGL 하드웨어 드라이버 디스플레이/윈도우 시스템

34 OpenGL API (5) OpenGL 라이브러리 구성 GL : 기본 라이브러리
GLU : GL 보다 상위 객체, 기능 지원 (U = utility) GLUT : 윈도우 시스템과의 인터페이스 (UT = utility toolkit) OpenGL 응용 프로그램 GLU GL GLUT GLX Xlib, Xtk 프레임 버퍼 X-윈도우 시스템 환경에서의 OpenGL 라이브러리 구성

35 OpenGL API (6) 플랫폼 독립성 윈도우 관리, 파일 입출력, 사용자와의 상호작용 등 하드웨어나 운영체제에 종속적인 기능에 대한 API는 지원하지 않는다 GLUT(OpenGL Utility Toolkit) 윈도우 시스템과의 인터페이스 하드웨어나 운영체제와 관련된 기능을 지원하는 라이브러리 윈도우 생성 및 관리, 팝업 메뉴 지원, 조이스틱 지원 등 현재 SGI사가 GLUT version 3.7을 지원 (

36 OpenGL API (7) 자료형(Data Type)
특정 플랫폼에서 작성된 OpenGL 코드를 다른 플랫폼으로 쉽게 이식하기 위해 OpenGL 고유의 자료형을 정의 OpenGL에서 자료형 내부 표현 방식 C 언어 자료형 리터럴 접미사 Glbytes 8-bit integer Signed char b Glshort 16-bit integer Short s Glint, Glsizei 32-bit integer long l Glfloat, Glclampf 32-bit floating point float f Gldouble, Glclampd 64-bit floating point double d Glubyte, Glboolean 8-bit unsigned integer unsigned char ub Glushort 16-bit unsigned integer unsigned short us Gluint, Glenum 32-bit unsigned integer unsigned long ui GLbitfield

37 OpenGL API (8) 자료형(Data Type) 포인터 및 배열은 C 언어에서 정의하는 것과 동일하다 e.g:
GLshort shorts[10]; GLdouble *doubles[10];

38 OpenGL API (9) 함수 명명 규칙(Naming Convention)
<라이브러리를 나타내는 접두사> <command를 의미하는 어근><인자의 개수-옵션><인자의 타입-옵션> 함수명을 통해 소속된 라이브러리 종류, 함수의 기능, 전달받는 인자의 개수 및 타입을 알 수 있다 예: glColor3f(0.5f, 0.5f, 0.5f); glRectf(100.0f, 150.0f, 150.0f, 100.0f); glCreateWindow(“Sample”); OpenGL에서는 기본적으로 실수형 리터럴을 float형 (single-precision floating point type)로 정의한다 Windows C/C++ 환경에서는 실수형 리터럴은 double형으로 사용한다

39 OpenGL API (10) OpenGL API 함수의 그룹 기본 요소 함수 : 점, 선분, 다각형, 문자열 등
속성 함수 : 색, 선의 두께, 글자체 등 관측함수 : 합성 카메라 설정 변환 함수 : 회전, 이동, 크기 변환 등 객체 변환 입력 함수 : 키보드, 마우스 등의 입력 처리 제어 함수 : 윈도우 시스템과의 통신, 초기화, 에러 처리 등

40 2D CG 프로그램 #1 간단한 사각형 도형 그리기

41 2D CG 프로그램 #2 사각형 애니메이션 그리기


Download ppt "제 1 장. 컴퓨터 그래픽스 시스템과 모델 - 3D 컴퓨터 그래픽스 구조 - OpenGL API 개요"

Similar presentations


Ads by Google