OpenGL.

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
ReadyNAS Surveillance for x86 platform (Version ) NETGEAR.
컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
팀 구성 : 조재민 (팀장), 고광춘, 유기민, 김대진, 이재호 발표 일자:
리눅스 관리의 신개념 Levanta Intrepid M Demo
그래픽 하드웨어.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Image & Video processing
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Power Java 제2장 자바 개발 도구.
콘텐츠 제작 프로젝트 [교재] - OpenGL 프로그래밍 가이드, 제4판, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis 공저, 남기혁 역, 정 보문화사, [참고자료] OpenGL Programming.
시스템집적반도체 설계 검증 환경과 기법 Ch 7.
운영체제 박상민.
Sang Il Park Sejong University
Ubiquitous Computing Practice - Part I (Installation) -
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
독립형 모션제어기 사양 - Catalog (optional) XMC-PO04-MOD
4-1장. MySQL 제13장.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
C / C++ Programming in multi platform
Visual Basic .NET 처음 사용하기.
소리가 작으면 이어폰 사용 권장!.
FTP 프로그램 채계화 박재은 박수민.
제 2 장 WML 시뮬레이터 및 무선인터넷 서버 설치
학습목표 4장. 오픈지엘 API 표준화의 개념과 필요성을 이해한다. API의 정의와 필요성을 이해한다.
컴퓨터정보공학부 서버 안내 [ IBM x3500 ] it.sangji.ac.kr ict.sangji.ac.kr 혹은
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Computer Graphics with OpenGL
4장. 오픈지엘 API 학습목표 표준화의 개념과 필요성을 이해한다. API의 정의와 필요성을 이해한다.
Computer Animation Algorithms and Techniques
Wireless Java Programming
Method & library.
시스템 인터페이스 Lab3 Unix 사용법 실습.
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
SAS Statistical Analysis System 통계패키지 실습 (2011년 1학기)
홀인원2.0 설치 메뉴얼.
Go Lang 리뷰 이동은.
제 1장. C++ 시작하기.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
그래픽 모듈 편집.
자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 05
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
AUTODESK AUTOCAD ELECTRICAL 전기제어 2D 설계 소프트웨어 표준기반 설계 생산성 도구 구조도 설계
Computer Animation Algorithms and Techniques
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
콘텐츠 제작 프로젝트 [교재] - OpenGL 프로그래밍 가이드, 제4판, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis 공저, 남기혁 역, 정 보문화사, [참고자료] OpenGL Programming.
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
오토베이스9 사용자 라이브러리 오토베이스 교육센터 그래픽 모듈 설정과 화면전환에 대하여 자세히 알아본다. <목차>
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
Introduction to JSP & Servlet
AT MEGA 128 기초와 응용 I 기본적인 구조.
Computer Graphics with OpenGL
2장. 솔라리스10 설치. 2장. 솔라리스10 설치 Solaris 1. 솔라리스10 설치 전 시스템 정보 확인 하드웨어 / 소프트웨어 준비 사항 설치 과정 이해 웹사이트 활용 VMware 다운로드 Solaris10 SPARC.
Computer Graphics with OpenGL
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
Installation Guide.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
DBMS & SQL Server Installation
엑셀 리포트를 웹 클라이언트에서 사용시 설정 방법
소리가 작으면 이어폰 사용 권장!.
Presentation transcript:

OpenGL

배울 것 그래픽스 표준화 API OpenGL

표준화 “주어진 여건에서 최적의 질서를 유지하기 위해, 현존하거나 잠재하는 문제들에 대해, 공유성과 재사용성을 높이기 위한 기반을 확립하는 행위” ISO/IEC JTC1/SC24, Working Group 하드웨어 구조(Architecture) 메타파일 및 인터페이스(Metafile and Interface) 응용프로그램 인터페이스(API, Application Program Interface)

그래픽스 표준의 목표 주전산기 독립성(Host Machine Independence) 동일한 프로그램을 가지고서 다양한 모든 하드웨어에서 사용할 수 있어야 한다. 장비 독립성(Device Independence) 동일 기능을 수행하는 입출력 장비의 종류가 달라도 프로그램 명령은 동일해야 한다. 프로그램 언어 독립성(Programming Language Independence) 프로그램 작성에 어떠한 프로그램 언어를 사용해도 된다. 운영자 이식성(Operator Portability) 새로운 프로그램 사용법을 누구라도 쉽게 터득할 수 있어야 한다

그래픽스 API 응용프로그램 인터페이스 라이브러리

그래픽스 API 고수준 API (High-Level API) 저수준 API (Low-Level API) OpenInventor VRML Java3D 저수준 API (Low-Level API) OpenGL DirectX

고수준 그래픽스 API 장면묘사 언어(Scene Description Language) Camera {     center {0.0 0.0 5.0}        카메라 중심을 (0.0 0.0 5.0)에 위치시키되     direction {0.0 0.0 -1.0}          카메라가 (0.0 0.0 -1.0)을 바라보게 } Lights {     numLights 1                   광원의 숫자는 1개     DirectionalLight {               방향성 광원으로 하여     direction {0.5 0.5 0.5}         (0.5, 0.5, 0.5) 방향으로 빛을 비추되     color {1.0 1.0 1.0}              백색 빛을 발하는 광원     } Background {     color {1.0 1.0 1.0}              배경색은 백색 Group {     numObject 2                   물체 2개로 이뤄진 그룹     Material {0.0, 0.0, 1.0}     첫 물체를 청색으로 하여     Sphere {2.0}                   반지름 2인 원구를 그림     Transform {         Translate {1.0, 0.0, 0.0}     x축 방향으로 1.0만큼 이동하여         Scale {0.3, 0.3, 0.3}        크기를 x, y, z 방향으로 0.3배로 줄여서         Material {1.0, 0.0, 0.0}      둘째 물체를 적색으로 하여         Sphere {2.0}              반지름 2인 원구를 그림

고수준 그래픽스 API 장면 그래프(Scene Graph)

VRML #VRML V2.0 utf8 Shape { appearance Appearance {                   material Material { }     }     geometry Sphere {                  radius 1.2 } Shape {                                              geometry Cylinder {                 radius 0.3   height 5.0     } Transform {                                  translation -6.0 2.0 0.0                      children {                                    Shape {                                     appearance Appearance {                           material Material { }             }             geometry Cylinder {                          radius 0.3   height 5.0 } } 

VRML 장면그래프

OpenGL의 위치

OpenGL 저수준 API 직접적으로 장면을 묘사할 수 없다. 구체적으로 함수 호출 하드웨어와 직접 연관

OpenGL 의 설계 원리 범용성(Generality) 효율성(Performance) 독립성(Orthogonality) 워크스테이션, 수퍼 컴퓨터, 개인용 컴퓨터, 운영체제에 무관 효율성(Performance) 그래픽 하드웨어의 가속 기능을 최대한 발휘 회사마다 서로 다른 기능. 공통적인 부분을 찾아내어 그 성능을 극대화 공통부분이 아닌 것에 대해서는 활성화 또는 비활성화 등 기능 모드를 제공 독립성(Orthogonality) 기능 간의 독립성을 최대한 보장 기능끼리 서로 얽혀 발생하는 오류를 방지 완전성(Completeness) 특정 하드웨어 기능에 대해서는 ARB 확장 형태로 명령어를 제공 다수의 하드웨어가 확장 기능을 지원하면 표준기능으로 변경 소프트웨어적으로라도 실행할 수 있도록 배려 상호 작업성(Interoperability) 그래픽 명령은 A 컴퓨터에서 내리되 실행은 B 컴퓨터에서 클라이언트-서버 모델(Client-Server Model)지원 성능이 낮은 클라이언트 컴퓨터가 고성능 서버를 이용

일단, 하드웨어는 3D를 어떻게 그릴까? GPU CPU의 파이프라인 구조와 유사 분업에 의한 동시처리로 속도 극대화 Cf) 컨베이어 벨트

여기서 OpenGL은 무얼 하나? 프로세서에 들어가는 상태변수 설정

여기서 OpenGL은 무얼 하나? 프로세서에 들어가는 상태변수 설정

OpenGL에서 쓰이는 상태변수들 glColor3f(1.0, 1.0, 1.0); glPointSize(0.5); GL_CURRENT_COLOR 상태변수 값을 (1.0, 1.0, 1.0)으로 설정 다른 명령에 의해 값이 바뀔 때까지 모든 물체를 그릴 때 유효함 glPointSize(0.5); glLineWidth(5); glShadeModel(GL_SMOOTH); glGetFloatv(GL_CURRENT_COLOR, MyColor); glEnable(GL_LIGHTING);               glDisable(GL_LIGHTING);   

OpenGL 함수의 일반적인 모습

OpenGL 구성요소 GL: OpenGL Core Library GLU: OpenGL Utility Library 렌더링 기능을 제공하는 함수 라이브러리 GLU: OpenGL Utility Library GL 라이브러리의 도우미 고급기능을 제공하는 함수 다각형 분할, 투상, 2차원 곡면, NURBS GLUT: OpenGL Utility Toolkit 사용자 입력과 화면 윈도우를 제어하기 위한 함수 윈도우 운영체제 기능과의 인터페이스

GLUT 윈도우 기능: 프로그램 실행에 필요한 창(Window)을 관리 콜백 기능: 프로그램 실행 중 발생하는 사용자 입력을 처리

OpenGL 실습준비 glut-3.7.6-bin+ex.zip을 다운로드 한다. 시작 코드(ex.cpp)를 컴파일 후 실행한다. glut32.dll은 %WinDir%\System32에, glut32.lib은 $(MSDevDir)\VC??\lib에 glut.h 은 $(MSDevDir)\VC??\include에 각각 복사한다. 예) Visual Studio 2005인 경우, glut32.dll: C:\WINDOWS\system32 glut32.lib: C:\Program Files\Microsoft Visual Studio 8\VC\lib glut.h: C:\Program Files\Microsoft Visual Studio 8\VC\include 시작 코드(ex.cpp)를 컴파일 후 실행한다.

11.9(목) 발표 7조 게임의 장르 및 역사 8조 차세대 게임기