12. point, vector, ray, box, matrix, transform

반응형

Point : 점. 위치값. 3d 좌표일 경우 (x,y,z,1)로 w 컴포넌트를 1로 두어 벡터와 구분한다. (동차좌표계)

계산 편의를 위해 연산자 오버로딩 제공

Vector  : 벡터, 방향와 크기값. 3d 좌표일 경우 (x,y,z,0)로 w 컴포넌트를 0으로 두어 점과 구분한다. (동차좌표계)

계산 편의를 위해 연산자 오버로딩 제공

Length, Swap, Normalize, Scale, Dot, Angle, IsThereFront(가시성 판단), Projection, Cross 제공

Ray : 원점과 방향이 지정된 반 무한의 선. 

광선은 스칼라값 t의 함수로 광선이 지나가는 점의 집합.

물체와의 교차를 체크, 모션블러를 위한 시각값, 반사 횟수 제한을 위한 depth값이 필요하다.

Box : 물체를 둘러싸는 경계 입체(Bounding Box), aabb방식

공간 중첩체크, 특정 지점 포함 체크, 면적, 부피, 축 길이, 점 보간, 위치 offset, 광선 교차 같은

함수를 제공한다.

Matrix : 기본적으로 4x4 형태를 가진다. 행우선으로 저장한다.

전치, 역행렬, 행렬끼리 연산 관련 제공

Transform : Point, Vector, Normal을 동차표현으로 전환해 변환을 적용. 반환전에 원래 형태로 전환.


기본적인 연산자 오버로딩 제공, SRT 연산제공, LookAt, 직교투영, 원근투영, 좌표계 변환(왼손, 오른손)

Quaternion : 아래 사원수 링크 참고. 사원수로 변환. 사원수를 행렬로 변환, 구면 선형 보간

AnimationTransform : 변환 보간 


고민중...

1. core 프로젝트의 math 라이브러리중 friend 멤버 함수인 애들은 다른 프로젝트에서 어떻게 호출시킬까..

dll export로 하면 2039 err 남 

=> 이건 선언쪽에 같은 스코프에 정의까지 같이해줘야함.

    참고 : friend 함수 (MSDN)

2. 1120 err 문제. 위와 같은 상황이지만 struct임. h로 옮겨서 정의해도 함수를 못찾고 에러남.

=> 결국 문제는 내가 예상했던 문제가 아니라 내부 구현에서 사용한 함수를 export 안시켜서 그럼.

     결국 유틸함수도 함수 자체 dll로 만들어 버림.

     그냥 static function으로 

     참고 : 프로젝트 설정 dll


Reference Link

- Vector

좌표시스템 만들기

explict 키워드에 대해서

- Matrix

- Homogeneous Coordinates (동차 좌표계)

- 사원수, Quaternion


- 대입연산자 오버로딩

- 첨자 연산자

- 미분 제대로 알자

- 구면좌표계

'작업장 > Mgin 제작' 카테고리의 다른 글

14. character  (0) 2017.11.27
13. max plugin  (0) 2017.11.20
shader 구조를 대략 만들고 결과물을 띄웠다.  (0) 2016.06.17
static function 실수  (0) 2016.06.11
하루동안 삽질한 버그.  (0) 2016.04.09
TAGS.

Comments