IVIS Lab, Changwon National University

Download Report

Transcript IVIS Lab, Changwon National University

제 5장. 관측(viewing)
강의 내용
• 합성 카메라
– 객체들을 3차원 공간상에 명시 하는 방법 : 제 4 장
– 카메라 묘사 방법 : 제 5 장
• 관측 과정
– 1 단계
• 세계 프레임  카메라 프레임으로의 변환 : 모델-관측 행렬
(정규 관측 절차의 개념)
– 2 단계
• 투영의 종류, 관측 공간 : 투영 행렬
IVIS Lab, Changwon National University
5.1 고전적 관측과 컴퓨터 관측
• 컴퓨터 관측에서는 객체, 관측자, 투영면 들이 독
립적으로 명시한다
• 고적적 관측에서는 이들간의 특정관계를 정해 줌
으로써 다양한 관측방법이 정의한다
고전적 관측을 살펴봄으로써 관측의
개념을 파악
IVIS Lab, Changwon National University
관측의 기본 요소
객체
투영선(직선)
투영면 (평면)
투영중심(COP)
투영 중심 : 렌즈의 중심, 카메라 프레임의 원점
IVIS Lab, Changwon National University
투시 관측과 평행관측
•
•
투시(perspective) 관측
– COP가 유한 거리에 있는 경우, 원근법 적용
평행 관측
– COP 무한 거리에 있으면 DOP(Direction of Projection)가 된다
객체
투영선
투영면
IVIS Lab, Changwon National University
고전적 관측
전정면
등축
고전적 관측들
IVIS Lab, Changwon National University
정면경사
평면경사
일점투시
삼점투시
직교 투영
• 투영면이 하나의 주면에 평행
• 투영선이 투영면에 수직
– 거리와 각이 보존
– 제도 작업에 적합
직교투영
IVIS Lab, Changwon National University
다중관측 직교 투영

투영면이 하나의 주면에 평행
 이미지로부터 형상을 얻기가 쉽지 않다
신전과 세 개의 다중관측 직교 투영들
IVIS Lab, Changwon National University
축측 투영


투영면이 객체에 대하여 임의의 방향에 존재
투영선은 투영면에 수직
투영면
투영면
투영면
(a) 축측 투영의 구성 (b)평면도 (c) 측면도
IVIS Lab, Changwon National University
Axonometric Projections
Allow projection plane to move relative to object
classify by how many angles of
a corner of a projected cube are
the same
none: trimetric
two: dimetric
three: isometric
q1
q2
q3
Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009
IVIS Lab, Changwon National University
10
Types of Axonometric Projections
Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009
IVIS Lab, Changwon National University
11
경사 투영
Arbitrary relationship between projectors and
projection plane
Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009
IVIS Lab, Changwon National University
12
Advantages and Disadvantages
• Can pick the angles to emphasize a particular
face
– Architecture: plan oblique, elevation oblique
• Angles in faces parallel to projection plane are
preserved while we can still see “around” side
• In physical world, cannot create with simple
camera; possible with bellows camera or special
lens (architectural)
Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009
IVIS Lab, Changwon National University
13
투시 투영
IVIS Lab, Changwon National University
소실점
• Parallel lines (not parallel to the projection plan)
on the object converge at a single point in the
projection (the vanishing point)
• Drawing simple perspectives by hand uses
these vanishing point(s)
vanishing point
Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009
IVIS Lab, Changwon National University
15
투시 투영의 종류
소실점
(a) 삼점투시
IVIS Lab, Changwon National University
두 축방향이 투영면에 평행
(b) 이점투시
(c) 일점투시
카메라의 위치지정
• 카메라 프레임의 위치지정
– OpenGL에서의 초기 카메라
• 세계 프레임의 원점에 위치
• 방향은 –z 방향이라고 가정
IVIS Lab, Changwon National University
방법 1: 모델-관측 행렬에 변환 적용(1)
모델-관측 행렬 = C일 때
새로이 q에 정의된 정점 :
세계 프레임 : q
카메라 프레임 : Cq
q = (0,0,0)
카메라가 앞으로
d 만큼 이동
Cq = (0,0,-d)
정점 p는 두 프레임에서 동일
IVIS Lab, Changwon National University
방법 1: 모델-관측 행렬에 변환 적용(2)

객체를 양의 x축 상에서 보고자 하는 경우
1. 뒤로 이동카메라를 이동
2. y축 중심으로 회전
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0, 0.0, -d);
glRotatef(-90.0, 0.0, 1.0, 0.0);
사용하기가 쉽지 않다
IVIS Lab, Changwon National University
방법 2: looking-at에 의한 방법
gluLookAt(eyex,eyey,eyez, atx,aty,atz, upx,upy,upz);
세계 프레임에서
의 좌표
OpenGL 유틸리티 함수가
모델-관측 행렬을 변경
Look-at 위치지정
IVIS Lab, Changwon National University
단순한 투영들
• 카메라는 원하는 위치에 놓여졌다.
• 이제 렌즈를 택하자
– 초점거리
– 화각 (fov)
– 이미지 크기
화각(field of view)
IVIS Lab, Changwon National University
투영 변환 행렬
• 이제 투영에 대한 변환행렬을 유도하자.
– 경우 1: 투시 투영
– 경우 2: 직교 투영
모델-관측
변환 파이프라인
IVIS Lab, Changwon National University
투 영
투시 투영
d
xp   x
z
d
yp   y
z
z p  d
xp
x

d
z
yp
y

d
z
-d)
-d)
-d
IVIS Lab, Changwon National University
-d
투시 투영의 특성
•
•
•
•
직선을 보존
어파인 변환이 아니다 (평행선이 유지되지 않음)
비선형
투영된 위치로부터 원래의 위치로 역변환할 수 없
다
IVIS Lab, Changwon National University
동차 좌표를 이용한 투영
( x, y , z )
(xp , yp , z p )
( x, y, z,1)
( x, y, z, h)
P
1
0
P
0

0
IVIS Lab, Changwon National University
0
0
1
0
0
1
0 1
d
0
0
0

0

투시 투영
행렬
투영 파이프라인
1
0

0

0
0
0
1
0
0
1
0 1
d
 d 

0  x   x
 z x   x p 
y


  



0 y
yp 
d





 
 y 


 z  z 
0  z   z
 d   p 
   z 
0 1  

 1 

 d 
1

모델-관측
투영 파이프라인
IVIS Lab, Changwon National University
투영
투시제산
직교 투영

투영선이 관측 평면에 수직인 평행 투영
xp  x
yp  y
zp  0
 x p  1
  
 y p   0
 z  0
 p 
1  0
IVIS Lab, Changwon National University
0
1
0
0
0
0
0
0
0  x 
0  y 
0  z 
 
1 1 
직교투영
행렬
OpenGL에서의 투영
• 앞의 단순한 투영에서 고려하지 않은 사항
– 관측 공간
• 관측공간 외부의 것은 절단된다
화각
IVIS Lab, Changwon National University
관측 공간의 정의
절두체(frustrum)라 한다
관측공간
후절단면
전절단면
관측면
전후 절단면들
IVIS Lab, Changwon National University
OpenGL에서의 투시 투영
• 투시 관측을 위한 두개의 함수
– glFrustrum(left, right, bottom, top, near, far);
전면 윈도우의 영역
- 양수
- COP로부터의 거리
– gluPerspective(fovy, aspect, near, far);
화각
IVIS Lab, Changwon National University
종횡비
gluPerspective() API
화각
w
aspect = h
gluPerspective(fovy,aspect,near,far);
화각을 이용한 정의
IVIS Lab, Changwon National University
OpenGL에서의 평행 관측

직교 관측 함수만 제공
양수일 필요가 없다
glOrtho(xmin,xmax,ymin,ymax,zmin,zmax);
관측공간
IVIS Lab, Changwon National University