* 3차원 물체 표현
- 메쉬를 이용해경계면을 그린다.(경계면 표현을 통해 3D생성)
- 삼각형 메쉬 : 평면이 보장되고 사격형에 비해 2배 느린 속도로 그려진다.(속도가 느리다)
- 사각형 메쉬 : 평면이 보장되지 않는다.
- 삼/사각형 메쉬이외에 평면, 다각형 메쉬등 다양하게 존재한다.
- 매쉬가 많아질 수록 그리는 속도가 느려진다.
- 가변 모델링(곡면표현을 섬세하게 할수록, 메쉬의 양이 증가하고 세밀한 표현이 가능하다)
* 렌더링 모델
- Wire frame : 선 기반으로 그리는 속도가 빠르다
- Solid frame : 면 기반으로 속도가 느리다. 외형 확인을 위해 가끔씩 사용한다.
* 어파인 공간(Affine space)
- In vector space : V+V = V // S*V = V를 만족한다.
- Vector space + 점 = 어파인 공간
> 점과 Vector를 같은 것으로 생각하여 벡터 공간을 확장한다.
- PQ는 그 선상에 있는 점의 합이라고 할 수 있다.
V = P + t(Q-P) = (1-t)P + tQ ( 0 <= t <= 1)
- 점의 계수 합이 1이 되는 경우에면 성립되며, 이 경우를 어파인 합이라고 한다.
* 좌표계(점의 표현 방법)
- 원점과 기반 벡터로 구성되는 프레임
※ 기반벡터 : 크기와 방향이 동일하면 같은 vector로 취급
- 원점 : 기반 벡터의 시작점
ex) P = r + 3V1 + 2V2
>> r : 원점, 임의점에서 점 P를 나타내기 위해서 임의점에서 원점으로 간후, P위치를 표현해야한다.
* 동차좌표
- 위에서 보았듯이 벡터와 점의 표현이 다르다.
- Vector의 차원을 하나 올림으로써 동일한 방법으로 표시한다.
V = 3V1 + 2V2 + 0r // P = 3V1 + 2V2 + r
- 점(좌표)를 한 차원 높은 동차 좌표로 사상시킨다. (x,y,z) => (x,y,z,r)
- 동차좌표 (x,y,z,r)은 3차원의 (x/r,y/r,z/r)위치이다.
* 기하변환
>> Vector Processing : 이동시 정점만 이동후 물체를 재구성한다. 일단 좌표를 동차좌표로 사상시킨후 변환
- 이동
- 회전(3차원은 y축 기준회전)
- 크기조절
- 전단
* 복합변환
- 행렬에 앞쪽에 곱해나간다.
- S1, R1, S2, R2 >> R2*S2*R1*S1*P 식으로 작성
- R2*S2*R1*S1*P = C*P
* 원점 기준 회전
- 물체 자체를 원점에 기준하여 회전시킨다.
* 중심점 기준 회전
- 특정 위치를 잡아서 물체를 회전
1. 중심점이 원점으로 오게 물체를 이동시킨다.
2. 원점을 기준으로 회전 시킨다.
3. 1의 반대방향으로 물체를 이동시킨다.
- 이러한 프로세싱이 필요하기 때문에 코드 작성시 scaling rotation후 이동시키는게 좋다.
* 구조 왜곡 변환
1) 테이퍼링 : Z에 따라 x,y크기 조절(a>b)
2) 휨 : 축을 따라 물체가 휜다.(a>c)
3) 비틀림 : z에 따라 회전각 변환(d>e)
* 그래픽 변환
1) 강체변환 : 이동, 회전변환. 물체의 모습은 불변
2) 유사변환
- 강체변환 + 균등 크기조절, 반사변환
- 물체면 사이의 각이 유지된다
- 물체를 이루는 정점간의 거리가 일정한 비율로 유지됨
3) 어파인 변환
- 유사변환 + 차등 크기 조절, 전단 변환
- 물체의 타입이 유지, 평행선이 보존
- 변환행렬의 마지막행(어파인 행렬) 값 = ( 0 0 0 1 )이된다.
4) 원근 변환
- 평행선이 만남
- 직선이 직선으로 유지
- 변환행렬의 마지막 행 = ( 0 0 0 1 )을 만족하지 않는다.
5) 선형변환 : 3)+4), 선형조합으로 표시되는 변환