OpenGL Introduction 컴퓨터 그래픽스 김 창 헌.

Slides:



Advertisements
Similar presentations
2 장 Initial Steps in Drawing Figures 창원대학교 정보통신공학과 박동규.
Advertisements

.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
Chapter 3. 뷰잉(Viewing).
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Efl을 이용한 타이젠 네이티브 웨어러블 앱 만들기
Master Thesis Progress
Computer Graphics 한신대학교 컴퓨터공학부 류승택 2017년 2학기.
Basic of Buffer Over Flow
Implement of Input and Interaction
OpenGL 실습 12 로봇.
Computer Graphics 한신대학교 컴퓨터공학부 류승택 2015년 2학기.
SYSTEM CALL (Syscall) CSLAB SEWON PARK.
OpenGL Programming (III) 1. Drawing in 3D 2. Manipulating 3D Space
GTK 프로그래밍 ( 1 ) SNSLAB 발표 : 문동규.
그래픽 하드웨어.
학습목표 5장. 오픈지엘 기본틀 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.
OpenGL 실습 1주차.
OpenGL 시작하기.
Image & Video processing
Lecture #7 제 4 장. 기하학적 객체와 변환 (2).
4장 기하학적 객체와 변환 – OpenGL 변환 학습목표 OpenGL 에서 어떻게 변환을 수행하는지 OpenGL 행렬모드 회전
Chapter 5. 라이팅(Lighting)
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
7장 디스플레이 리스트.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
OpenGL 이란 그래픽스 하드웨어에 대한 소프트웨어 인터페이스 OpenGL의 전신은 실리콘그래픽스사의 IRIS GL
강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습.
콘텐츠 제작 프로젝트 [교재] - OpenGL 프로그래밍 가이드, 제4판, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis 공저, 남기혁 역, 정 보문화사, [참고자료] OpenGL Programming.
제9장. 모바일 3D 그래픽스 기술.
[멀티미디어 문서구조화특론 ] Workflow
OpenGL Programming (II) 3D Graphics Fundamentals
QT 프로그래밍 발표: 김래영.
OpenGL Project (3D 움직이는 자동차)
Sang Il Park Sejong University
그래픽스 시스템과 모델.
제 1 장. 컴퓨터 그래픽스 시스템과 모델 - 3D 컴퓨터 그래픽스 구조 - OpenGL API 개요
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
openGL Project 결과보고서 야구 시구 시뮬레이션
OpenGL.
4. OpenGL 상태들과 기본 도형들.
학습목표 5장. 오픈지엘 기본틀 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.
Mobile 3D Graphics (6장 퍼포먼스와 확장성) 교과목명 : 컴퓨터 그래픽스 특론 학 번 :
1장 그래픽스 시스템과 모델-이미지 형성, 모델, 구조
Hanyang University Jungsik Park
OpenGL PROJECT I T S 우광식 성기영 서창수
openGL Project 제안서 비 오는 정류장에서
Lecture 1. Overview of the Course
5장. 오픈지엘 기본틀 학습목표 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.
버퍼 (Buffer).
Computer Graphics OpenGL 설치 및 설정
제4장 유닉스 쉘 숙명여대 창병모 2011 가을.
핸드폰 시뮬레이션 김 형 도 송 미 경.
광원 제어 하기.
Draw the basic Geometry Objects
제 10장 운영체제.
Introduction to Programming Language
제 1장. C++ 시작하기.
Chapter 4 컬러( COLOR ).
OpenGL 프로젝트 김병욱 김상진 김성환.
openGL Project 제안서 - 해상 전투
OpenGL Project.
LOGOTYPE 춤추는 풍선 팀장 : 이준호 팀원 : 장원진.
OpenGL 프로젝트 계획서 - 탱탱볼 만들기 팀명 : 훈남들 조원 : _이상민 _박용만
Execution with Unnecessary Privileges
OPENGL project 구성원 : 김수민,남현우 OPENGL을 이용한 당구(3구) 구현하기.
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
Dongseo University 정보네트워크학과,컴퓨터공학과 이병훈, 박대은, 홍준형
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
컴퓨터 프로그래밍 언어 Visual Basic 6.0 √ 원리를 알면 VB가 쉽다.
1장. C Language Synopsis.
Presentation transcript:

OpenGL Introduction 컴퓨터 그래픽스 김 창 헌

Contents What is OpenGL ? OpenGL의 역사 OpenGL의 특징 OpenGL의 구성 OpenGL Command Syntax Simple Example OpenGL-related Libraries

What is OpenGL? A low- level graphics rendering and imaging library Only includes operations which can be accelerated A layer of abstraction between graphics hardware and an application program Window system and OS Independent use with Unix, Microsoft Windows, IBM OS/ 2, Apple Mac Os

OpenGL의 역사 IRIS GL에서 시작 OpenGL 1.0 SGI의 워크스테이션 IRIS에서 구현된 그래픽 라이브러리인 IRIS GL에서 시작 이식성을 위해 기계에 종속적인 부분을 제거 OpenGL 1.0 속도를 위해 IRIS GL의 기능을 일부 축소하여 1992년 7월 OpenGL 1.0을 발표 개방형 + 그래픽라이브러리

OpenGL 1.1 OpenGL ARB(Architecture Review Board) SGI, DEC, IBM, 인텔, 마이크로소프트 3D그래픽 라이브러리의 표준으로 OpenGL 1.1 (1995년 12월) 텍스처 매핑을 개선 RGBA모드에서 논리연산 가능 윈도우용 오픈GL

OpenGL의 구성 OpenGL(Gl) OpenGL Utility (Glu) OpenGL Auxiliary (Glaux)

Utility(Glu) GL사용 시 발생하는 많은 반복작업 간소화 (예) 구, 실린더, 디스크 등의 Object 생성 GLUquadricObj 꼭지점을 일일이 계산하여 각 점을 glVertex함수로 하나하나 찍어야 함. GLUquadricObj *pObj; pObj = gluNewQuadric(); gluSphere(pObj , 30.0 , 10 , 10); gluDeleteQuadric(pObj); // 객체를 삭제

AUX Library Aux(Glaux) 오픈GL과 wgl함수를 이용해 선을 하나 렌더링하는 프로그램 : 많은 양의 코드 필요 플랫폼에 독립적인 윈도우 제어기능 Glu를 능가하는 물체 생성기능을 가지는 툴킷 라이브러리 오픈GL프로그램을 처음 작성하는 사람 윈도생성, 입력제어, 3차원 물체 생성, 더블버퍼링, 텍스처 매핑용 이미지의 로딩

glColor3f OpenGL Command Syntax Type of Arguments Gl library Root Command Number of Arguments

Structure of a Typical Program main: find GL visual & create window initialize GL states (e. g., viewing, color, lighting) initialize display lists check for events (and process them) if window event (window moved, exposed, etc.) — modify viewport, if needed — redraw else if mouse or keyboard — do something, e. g., change states & redraw

계속 redraw: clear screen (to background color) change state( s), if needed render some graphics change more states render some more graphics .... swap buffers

A Very Simple OpenGL Program #include <GL/glaux.h> int main(int argc, char ** argv) { auxInitDisplayMode( AUX_SINGLE | AUX_RGBA ); auxInitPosition(0, 0, 500, 500 ); auxInitWindow ( "My first OpenGL Program" ); glClearColor ( 0.0, 0.0, 0.0, 0.0 ); glClear(GL_COLOR_BUFFER_BIT); // set clear color glColor3f(1.0, 1.0, 1.0); // clear command glMatrixMode(GL_PROJECTION); glLoadIdentity(); // proceed with drawing before waiting for any more command glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); glFlush(); }

OpenGL as a State Machine 다양한 state(mode) 삽입 사용자가 바꾸기 전까지 유지 (예) current color (state variable) color를 바꾸면, 그 이후의 모든 object는 바뀐 color로 색칠됨. Current color를 다른 색으로 바꿀 때까지 계속 유지됨. other state variables current viewing and projection transformation, polygon drawing modes, positions and characteristics of light 등

State glEnable (GLenum capability) glDisable (GLenum capability) GLboolean glIsEnabled (GLenum cap) turn on and off OpenGL states capability can be one of : GL_ BLEND (alpha blending) GL_ DEPTH_ TEST (depth buffer) GL_ FOG GL_ LIGHTING GL_ LINE_ SMOOTH (line antialiasing)

OpenGL-related Libraries GLX OpenGL Extension to the X Window System GLUT windowing utility library for OpenGL handle keyboard, mouse, and redraw events Open Inventor object-oriented developers toolkit