OpenGL Programming (III) 1. Drawing in 3D 2. Manipulating 3D Space

Slides:



Advertisements
Similar presentations
LOGO OpenGL Project ( 해 결 사 ) 여태기 이수원 정화영 정유나 여태기 이수원 정화영 정유나.
Advertisements

/11 CUDA 를 이용한 병렬 프로그래밍 DirectX 3D 를 이용한 3D 프로그래밍
Chapter 3. 뷰잉(Viewing).
任員 在·不在 案內 시스템.
Efl을 이용한 타이젠 네이티브 웨어러블 앱 만들기
3D Computer Graphics 5. Viewing 동신대학교 멀티미디어컨텐츠 연구센터 Viewing Process first part : model-view in Chapter 4 second part : projection in Chapter.
2.1 The Sierpinski Gasket.
CG Programming (Modeling)
CG Programming (Modeling)
Implement of Input and Interaction
OpenGL 실습 12 로봇.
Computer Graphics 한신대학교 컴퓨터공학부 류승택 2015년 2학기.
컴퓨터 그래픽스 연구회지 2000년 5월 발표자 : 이영건 날짜 :
학습목표 5장. 오픈지엘 기본틀 논리적 입력장치를 설정하는 이유와 종류를 이해한다. 세 가지 입력모드의 차이점을 이해한다.
2016 ITA 1월 강의 C Programming -4일차- 포인터배열 및 이중포인터 정대진 ( )
GTK+ 프로그래밍 (2) SNSLAB 발표 : 문동규.
OpenGL 실습 1주차.
OpenGL 시작하기.
OpenGL 발표일 : 발표자 : 조윤혜.
Lecture #7 제 4 장. 기하학적 객체와 변환 (2).
기하학적 객체와 변환.
4장 기하학적 객체와 변환 – OpenGL 변환 학습목표 OpenGL 에서 어떻게 변환을 수행하는지 OpenGL 행렬모드 회전
Chapter 5. 라이팅(Lighting)
Lecture #8 제 5 장. 관측(viewing).
7장 디스플레이 리스트.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
Practice - texture mapping
Mesh Saliency 김 종 현.
1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용 4장 – 기하학적 객체와 변환 5장 관측
학습목표 7장. 투상변환과 뷰포트변환 평행투상과 원근투상의 차이점을 이해한다. 가시부피 설정방식을 이해한다.
학습목표 7장. 투상변환과 뷰포트변환 평행투상과 원근투상의 차이점을 이해한다. 가시부피 설정방식을 이해한다.
소프트웨어 공학 (Software Engineering)
OpenGL Programming (II) 3D Graphics Fundamentals
Sang Il Park Sejong University
그래픽스 시스템과 모델.
8장. 가시성 판단 학습목표 후면제거의 정의와 처리방법을 이해한다. 절단작업의 정의와 처리방법을 이해한다.
openGL Project 결과보고서 야구 시구 시뮬레이션
Homework Hierarchical bounding volume
4. OpenGL 상태들과 기본 도형들.
Hanyang University Jungsik Park
①Pro/ENGINEER 어셈블리 소개 [1]어셈블리 파일 만들기 Fill > New > Name
OpenGL PROJECT 우광식 성기영 서창수 이인주.
openGL Project 제안서 비 오는 정류장에서
Matrix 및 Rendering 파이프라인
학습목표 13장. 고급 렌더링 그림자를 구현하기 위한 세 가지 방법을 이해한다. 레이트레이싱의 정의와 구현방법을 이해한다.
Computer Graphics OpenGL 설치 및 설정
2.1 재배정 재배정요구등록 재배정승인취소 재배정부서연결 재배정단위업무연결
핸드폰 시뮬레이션 김 형 도 송 미 경.
광원 제어 하기.
CGI (Common Gateway Interface)
Draw the basic Geometry Objects
Chapter 4 컬러( COLOR ).
2005년도 법학부 학술 세미나 기본 기획(안)
OpenGL Introduction 컴퓨터 그래픽스 김 창 헌.
OpenGL 프로젝트 김병욱 김상진 김성환.
3D Shapes 3개 핵심 Properties가 존재 1.Material 표면의 재질을 설정합니다.
openGL Project 제안서 - 해상 전투
OpenGL Project.
LOGOTYPE 춤추는 풍선 팀장 : 이준호 팀원 : 장원진.
성립전예산 요구등록 (사업담당자) 사업관리카드 1 2
OPENGL project 구성원 : 김수민,남현우 OPENGL을 이용한 당구(3구) 구현하기.
게임수학 제 9 장 가시성 판단.
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
2장 선과 글자 모양에 따른 분류 제품 제작을 하기 위한 도면에는 제품의 정보인 형상, 치수,
In to the Night 서정부, 서수민, 안경호
argc, argv 의 사용방법 #include <stdio.h>
C.
컴퓨터 프로그래밍 언어 Visual Basic 6.0 √ 원리를 알면 VB가 쉽다.
OpenGL Project 과 목 명 : 컴퓨터 그래픽스 E14반 담당교수님 : 이병국교수님 팀 원 : 신호환
OpenGL 프로젝트 복학생은 죽지않아!! ( 강유진, 박지혜)
Presentation transcript:

OpenGL Programming (III) 1. Drawing in 3D 2. Manipulating 3D Space 컴퓨터 그래픽스 담당교수 : 김 창 헌

GLUT Library Sample Code GLUT32.LIB/DLL OPENGL32.LIB, GLU32.LIB int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutCreateWindow("sphere"); glutDisplayFunc(display); gfxinit(); glutMainLoop();

GLUT Multiple windows for OpenGL rendering. Callback driven event processing. A simple pop-up menu facility. Miscellaneous window management functions. http://reality.sgi.com/opengl/glut3/glut3.html#7 The X Journal available in PostScript

CALLBACK 함수 지정 GLUT Function 키보드 함수 glutKeyboardFunc(..) 마우스 함수 Main 함수 시각화 함수 glutDisplayFunc(..) 메뉴 함수

CALLBACK 함수 glutMouseFunc(mouse); glutDisplayFunc(display); void mouse(int btn, int state, int x, int y) { printf("button %d is %s at (%d,%d)", btn, state == GLUT_DOWN ? "down" : "up", x, y); } glutDisplayFunc(display); void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glCallList(1); /* render sphere display list */ glutSwapBuffers(); }

Drawing in 3D : Lines, Points 색깔 선 그리기 Line Strip Line Loop Line Stipple

Drawing in 3D : Polygon SetupRC RenderScene ( display ) glShadeModel(GL_FLAT); glFrontFace(GL_CW); RenderScene ( display ) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glEnable(GL_CULL_FACE ) glEnable(GL_DEPTH_TEST);

Hidden Surface Removal Depth Test viewing plane 을 기준으로 한 3차원 물체의 깊이 test 보이지 않는 부분 제거 관련 Code glEnable(GL_DEPTH_TEST); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

Back Face Culling 육면체로 된 방 내부 Back Face Culling 뒷면 제거 Polygon의 생성방향 설정 필요 glFrontFace(GL_CCW);

Manipulation 3D Space : Coordinate Transformation Transformation Pipeline Original Vertex Data Transformed eye coordinate Clip coordinate Normalized device coordinate Window coordinate

Model View Object의 rotation, translation, scaling viewing transformation 포함 ( duality ) 입력 : 3차원 좌표값 ( world coordinate) 결과 : viewpoint 기준의 좌표값 ( eye coordinate ) glLoadIdentity( ); glPushMatrix(); glPopMatrix();

Projection Orthographic Projection Perspective Projection gluPerspective( fovy, aspect, zNear, zFar ); Perspective viewing volume w Observer h fovy near far