BLOG main image

항상 지켜보고있어..

3D 프로그래밍 중 가장 중요하다고 여겨야 할것이 바로 Camera이다.
아무리 화려한 모델링을 한다 하더라도 Camera가 없다면
아무것도 볼 수 없을 것이다.


WPF 3D의 Camera에는 크게 3가지 종류가 있다.

1. OrthographicCamera
    정사방식
    카메라에서 멀리 떨어질수록 더 작게 보임
    실제 생활에서 사람들이 사물을 보는 방식

2. PerspectiveCamera
    투시방식
    카메라에서 떨어진 거리와는 관계없음
    동일한 크기로 객체를 표현
    편집이나 시각적인 데이터를 다루는 프로그램
    혹은 정확성을 요구하는 공학이나 생산분야에 사용

3. MatrixCamera
    투사 방식이나 보이는 시각을 특정한 방식으로 설정 가능


사용자 삽입 이미지

좌측 : OrthographicCamera
<OrthographicCamera Position="2.9, 2.65, 2.9" LookDirection="-1,-1,-1" Width="20"/>

우측 : PerspectiveCamera
<PerspectiveCamera Position="2.9, 2.65, 2.9" LookDirection="-1,-1,-1" FieldOfView="130"/>


먼저!
두가지 프로퍼티가 공통으로 쓰여졌다.
1. Position : 3차원 공간에서의 카메라의 위치이다.
2. LookDirection : 카메라의 눈이 어느쪽을 향하는지를 결정한다.


쉽게 요약하자면
원점(0, 0, 0)을 노려볼려면
Position(x, y, z), LookDirection(x2, y2, z2)에서
x + x2 = y + y2 = z + z2 = 0
라는 공식이 성립된다.


물론 0, 0, 0을 노려봐서는 암것도 안보일테지만..
위 공식을 잘 활용한다면 원하는 위치에서 원하는 방향으로 쳐다볼수 있을 것이다.

이외에 UpDirection 이란 프로퍼티가 존재한다.
보고있는 점을 중심으로 카메라를 회전시킨다.
UpDirection의 기본값은 <0, 1, 0>이다.

UpDirection을 <1, 0, 0>으로 설정하여 비교해 보겠다.
사용자 삽입 이미지

이제서야 큐브를 선택한것이 크나큰 실수란걸 깨달았다.
뭔가 변화는 있었지만 정확하게 파악하지 못하겠다.
많이~~ 부족하지만 UpDirection의 설명은 여기까지 마치겠다.


다시 위에서 다룬
OrthographicCamera와 PerspectiveCamera 방식에 대하여 언급하겠다.
공통적인 프로퍼티는 알아봤고,
OrthographicCamera는 Width를
PerspectiveCamera는 FieldOfView를 사용하였다.

다음 그림을 통해 알아보겠다.
사용자 삽입 이미지
OrthographicCamera(왼쪽)의 Width는 볼수있는 공간의 폭이고,
PerspectiveCamera(오른쪽)의 FieldOfView는 보이는 영역을 확장할 수 있는 수평각이다.

백문이 불여일견이듯이
직접 값을 넣어가며 테스트 해본다면
이해가 갈것이다.

이상으로 카메라에 대해 알아보았다.

다음 포스트는 transform에 대해 알아보겠다.
신고
Posted by ossang

카테고리

Ossang (30)
[Ⅰ] About (2)
[Ⅱ] Programming (4)
[Ⅲ] Galary (14)
[Ⅳ] Gossip (10)

달력

«   2017/12   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

티스토리 툴바