3D Computer Graphics 5. Viewing 2004. 5. 31. 동신대학교 멀티미디어컨텐츠 연구센터 Viewing Process first part : model-view in Chapter 4 second part : projection in Chapter.

Slides:



Advertisements
Similar presentations
측량학 담당교수명 : 서 영 민 연 락 처 :
Advertisements

PERFORMANCE DEGRADATION OF DIELECTIRIC RADOME COVERED ANTENNAS 1.
강의 내용 : 카메라 DirectX 9 을 이용한 게임 개발 기본 코스. 목 차 카메라 요구사항 구현.
멀티미디어 4 조 최종발표 팀장 : 박형민 팀원 : 김인호, 이종혁, 이준희, 허용 우 교수 : 박광훈 교수님 경희대학교 컴퓨터공학과
멀티미디어 공학과 정광조 안은지 조건수 Graduation Project.
Reverse Engineering (RapidForm). 실습 일정 및 프로그램  얻어낸 공간 위치 데이터를 RapidForm (Analysis software) 을 이용하여 3D 객체 생성 후 제출  시간 : 4/11 ( 수요일 ) 오후 6: 30, 오후 9:00.
Surface [1] Surface Feature [2] Surface의 조작 [3] Datum Curve
School of Computer, Information and Communication Engineering
Chapter 3. 뷰잉(Viewing).
Mathematics for Computer Graphics
스테레오 비젼을 위한 3장 영상의 효율적인 영상정렬 기법
OpenGL Programming (III) 1. Drawing in 3D 2. Manipulating 3D Space
Chapter 10. Illumination Models and Surface-Rendering Methods
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 5주차 대림대학교 2017년도 1학기 강의 왕보현
Chapter09 CSS3 애니메이션 HTML5 Programming.
5. 좌표변환과 OpenGL행렬 이론.
OpenGL 발표일 : 발표자 : 조윤혜.
Two-Dimensional Geometric Transformations
Lecture #8 제 5 장. 관측(viewing).
축산 인식개선을 위한 농협의 추진 사례 ( ) 농협중앙회 축산지원단장 박인희.
Mesh Saliency 김 종 현.
제12장 유연한 카메라 클래스 만들기 학기 컴퓨터게임(DirectX).
사원수 (Quaternion)
1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용 4장 – 기하학적 객체와 변환 5장 관측
학습목표 7장. 투상변환과 뷰포트변환 평행투상과 원근투상의 차이점을 이해한다. 가시부피 설정방식을 이해한다.
7장. 투상변환과 뷰포트변환 학습목표 평행투상과 원근투상의 차이점을 이해한다. 가시부피 설정방식을 이해한다.
학습목표 7장. 투상변환과 뷰포트변환 평행투상과 원근투상의 차이점을 이해한다. 가시부피 설정방식을 이해한다.
OpenGL Programming (II) 3D Graphics Fundamentals
Red Color Detection Course ChanYoung Kim
Rendering Techniques HyoungSeok Kim
그래픽스 시스템과 모델.
Red Color Detection Course ChanYoung Kim
8장. 가시성 판단 학습목표 후면제거의 정의와 처리방법을 이해한다. 절단작업의 정의와 처리방법을 이해한다.
Chapter 13. Computer Animation
12장 유연한 카메라 클래스 만들기 한성대학교 멀티미디어공학과 게임 프로그래밍-I 강의노트
openGL Project 결과보고서 야구 시구 시뮬레이션
Deformity Correction Simulation
제 6장 카 메 라.
1장 그래픽스 시스템과 모델-이미지 형성, 모델, 구조
Chapter 7. Three-Dimensional Viewing
3차원 물체 그리기.
보조저장장치 구조(Secondary Storage Structure)
①Pro/ENGINEER 어셈블리 소개 [1]어셈블리 파일 만들기 Fill > New > Name
Dongchul Kim / / OpenCV Tutorials Course Dongchul Kim / /
Matrix 및 Rendering 파이프라인
학습목표 13장. 고급 렌더링 그림자를 구현하기 위한 세 가지 방법을 이해한다. 레이트레이싱의 정의와 구현방법을 이해한다.
FRF 해석 방법 문의 국민대학교 연락처 :
핸드폰 시뮬레이션 김 형 도 송 미 경.
강원대학교 공과대학 제어계측공학과 2010년도 제2학기
Draw the basic Geometry Objects
OpenGL (spaceship movement) PROJECT 2012.
CHAPTER 11. Rotation 병진 운동과 회전 운동 일과 회전 운동 에너지 회전 변수 각 관련 성분은 벡터인가?
Real time Interaction HyoungSeok Kim
MATLAB Image Processing Toolbox
OpenGL project – Easy Flight Simulator
서울대학교 컴퓨터공학부 김명수 행렬과 2차원 변환 서울대학교 컴퓨터공학부 김명수
Chapter 1 단위, 물리량, 벡터.
연구 진행 상황 보고서 연구 결과 문제점 및 대책 목표 및 계획 어지럼증 기타
도면의 종류 공대학과+학부전공 ?? 건축, 토목, 기전, 화공,사회환경,, 재료, 생명.
OPENGL project 구성원 : 김수민,남현우 OPENGL을 이용한 당구(3구) 구현하기.
Chapter 7 – Curves Part - I
엔화 대환/대출 자금용도 대상 이자 차액 효과 (A,B,C) 환율 리스크 헷징 (A,B) 엔화의 평균환율 (A,B,C)
2장 선과 글자 모양에 따른 분류 제품 제작을 하기 위한 도면에는 제품의 정보인 형상, 치수,
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
도면의 종류 공대학과+학부전공 ?? 건축, 토목, 기전, 화공,사회환경,, 재료, 생명.
Ray Casting 발표자 : 박 경 와
OpenGL Project 과 목 명 : 컴퓨터 그래픽스 E14반 담당교수님 : 이병국교수님 팀 원 : 신호환
Chapter 11. The Uniform Plane Wave
Chapter 2. Coulomb’s Law & Electric Field Intensity
Presentation transcript:

3D Computer Graphics 5. Viewing

동신대학교 멀티미디어컨텐츠 연구센터 Viewing Process first part : model-view in Chapter 4 second part : projection in Chapter 5

5.1 Classical and Computer Viewing

동신대학교 멀티미디어컨텐츠 연구센터 Viewing classical viewing –hand drawing 에서 발전 basic components –object –a viewer (COP) –projector –projection plane COP : center of projection

동신대학교 멀티미디어컨텐츠 연구센터 Viewing perspective viewing –finite COP –center of projection parallel viewing –infinite COP = DOP –direction of projection

동신대학교 멀티미디어컨텐츠 연구센터 Classical Viewings Hand drawing 에서 발전

동신대학교 멀티미디어컨텐츠 연구센터 Orthographic Projection parallel projection 의 일종 –also known as orthogonal projection –projector 가 projection plane 에 수직 –projection plane 은 object 에 수직 multi-view orthographic projection –1 개의 parallel projection 은 정보 전달에 한계 – 건축용 도면에서 많이 사용 –length and angle preserving

동신대학교 멀티미디어컨텐츠 연구센터 Axonometric Projection parallel projection 의 일종 –projector 가 projection plane 에 수직 – 그러나, projection plane 자체가 기울어짐 – 단점 : distortion 발생 가능 Projection Plane (a)(b)(c)

동신대학교 멀티미디어컨텐츠 연구센터 Axonometric Projections isometric view : 3 개 axis 에 symmetric dimetric view : 2 개 axis 에 symmetric trimetric view : general case

동신대학교 멀티미디어컨텐츠 연구센터 Oblique Projection parallel projection 의 일종 – projector 와 projection plane 이 서로 기울어진 각도 –distortion 발생 Projection Plane (a)(b) (c) Projection Plane

동신대학교 멀티미디어컨텐츠 연구센터 Perspective Projection 르네상스 시대에 사실주의 화풍에서 유래 vanishing point ( 소실점 ) –projector 들이 모이는 점 classical viewing 에서는 –three-point perspective –two-point perspective –one-point perspective → computer graphics 에 도입

5.2 Positioning of the Camera

동신대학교 멀티미디어컨텐츠 연구센터 3D Viewing Camera 를 흉내낸다.

동신대학교 멀티미디어컨텐츠 연구센터 Camera Positioning initial camera position in OpenGL –at the origin of the world frame, to –z direction camera movement = reverse movement of the objects glTranslatef(0.0,0.0,-100.0)

동신대학교 멀티미디어컨텐츠 연구센터 Camera Positioning another example : rotated camera glMatrixMode(GL_MODELVIEW); glLoadIdentity( ); glTranslatef(0.0, 0.0, –100); glRotatef(–90.0, 0.0, 1.0, 0.0); –object 입장 : -90 도 회전, -100 이동 –camera 입장 : 100 이동, 90 도 회전

동신대학교 멀티미디어컨텐츠 연구센터 Viewing’s API general viewing API : PHIGS, GKS-3D approach –PHIGS, GKS-3D : famous graphics library camera 를 어떻게 설정할 것인가 ? –VRP (view reference point) : 3D point, camera 의 위치 –VPN (view plane normal) : view plane 의 방향을 결정 –VUP (view up vector) : camera film 의 윗 방향을 결정 view reference point view up vector V view-plane normal vector N

동신대학교 멀티미디어컨텐츠 연구센터 Viewing Coordinates World Frame 과 Camera Frame 의 관계

동신대학교 멀티미디어컨텐츠 연구센터 Viewing Matrix 의 계산 V : viewing matrix –world frame 의 점 q 를 camera frame 으로 변환 p : VRP, n : (normalized) VPN, v : (normalized) VUP –in world frame

동신대학교 멀티미디어컨텐츠 연구센터 Viewing Matrix 의 계산 제약 조건들

동신대학교 멀티미디어컨텐츠 연구센터 Viewing Matrix 의 계산

동신대학교 멀티미디어컨텐츠 연구센터 Look-At Function OpenGL approach – 직접 viewing matrix 설정도 가능 V 계산 후, glLoadMatrix( ) 다른 방법 : gluLookAt( ) 함수 – 점 (eye x, eye y, eye z ) 에서, 점 (at x, at y, at z ) 를 본다 (look at). – 필름 ( 스크린 ) 의 윗 방향은 (up x, up y, up z ) 와 유사

동신대학교 멀티미디어컨텐츠 연구센터 Look-At Function gluLookAt(GLdouble eyex, eyey, eyez, GLdouble atx, aty, atz, GLdouble upx, upy, upz); – 모두 world frame 기준으로 좌표 입력 VRP = (eyex, eyey, eyez) VPN = (atx, aty, atz) – (eyex, eyey, eyez) VUP : (upx, upy, upz) 의 방향 보정 normalize 는 자동으로 수행

동신대학교 멀티미디어컨텐츠 연구센터 Roll-Pitch-Yaw Approach 주로 flight simulator 에서 사용 –roll : 좌우동, z 축 기준의 회전각 –pitch : 상하동, x 축 기준의 회전각 –yaw : 편요각, y 축 기준의 회전각 3 개의 rotation 으로 viewing matrix 설정 – 필요하면, 1 개의 translation 추가 ( 비행기 위치 )

동신대학교 멀티미디어컨텐츠 연구센터 Polar Coordinate Approach 주로 지상 관측 모델에서 사용 – 예 : 게임의 대공포 사격 –azimuth ( 방위각 ) : xy 평면에서의 회전각 –elevation ( 앙각 ) : 위로 올라간 각도 2 개의 rotation matrix 로 구현 가능

5.3 Simple Projections

동신대학교 멀티미디어컨텐츠 연구센터 Parallel and Perspective Projection parallel projection –vector 에 평행한 projection perspective projection –point 를 향한 projection

5.4 Projections in OpenGL

동신대학교 멀티미디어컨텐츠 연구센터 Perspective Projection in OpenGL perspective projection 을 설정하는 방법 ? –angle of view (field of view, FOV) : 보이는 각도 –view volume, view frustum : 실제로 보이는 공간

동신대학교 멀티미디어컨텐츠 연구센터 (x max, y max, -z far ) (x min, y min, -z near ) Perspective Projection in OpenGL glFrustum(GLdouble xmin, xmax, GLdouble ymin, ymax, GLdouble znear, zfar); – 주의 : znear, zfar 는 positive 여야 함 zmin = –znear, zmax = –zfar

동신대학교 멀티미디어컨텐츠 연구센터 Perspective Projection in OpenGL gluPerspective(GLdouble fovy, aspect, znear, zfar) –fovy : field of view in y-direction, in degree –aspect : width / height

동신대학교 멀티미디어컨텐츠 연구센터 Parallel Projection in OpenGL glOrtho(GLdouble xmin, xmax, ymin, ymax, zmin, zmax); (x min, y min, -z min ) (x max, y max, -z max )

5.5 Hidden Surface Removal

동신대학교 멀티미디어컨텐츠 연구센터 Hidden Surface Removal remove surfaces that should not be visible to the viewer –object-space approaches 기본 아이디어 : sort the polygons –image-space approaches 기본 아이디어 : pixel 단위 처리 z-buffer algorithm visible surface algorithm, visible surface detection –find which surfaces are visible – 결국 같은 algorithm. 결과만 반대로 해석

동신대학교 멀티미디어컨텐츠 연구센터 Hidden Surface Removal Z-buffer algorithm –OpenGL 의 기본적인 hidden surface removal 방법 – 구현이 쉽고, video card 에서 지원하는 경우가 많다 겹치는 부분에서 z1 < z2 이므로, 시점에서 더 가까운 원이 출력됨

5.6 Walking Through a Scene

동신대학교 멀티미디어컨텐츠 연구센터 Example : Moving Viewer P.612 A.11 움직이는 관측자 chap 4. 의 cube program 에 기능 추가 –camera 위치 : GLdouble viewer[3]; gluLookAt( ) 사용 –keyboard callback 추가 x, y, z 키에 따라, camera 위치 이동 –perspective view 지원 glFrustum( ) 사용