그래픽스/DirectX

    [DX11 물방울책] 챕터 4 - Direct3D 초기화

    1. Direct3D는 무엇인가? 로우레벨 그래픽스 API이며 3D 그래픽을 구현해서 화면에 출력할 수 있게끔 os와의 중간 다리 역할을 해준다. 2. COM 객체 컴포넌트 오브젝트 모델 (COM)은 독자적으로 그 전 버전들과 호환이 가능한 포인터이며 인터페이스다. COM 객체 포인터를 획득하기 위해선 특수 함수로부터 가져와야 한다, new 불가능. 다 사용했다면 Release 함수를 통해 제거해준다. delete 하면 뻥 날 수가 있다. 3. 텍스처와 데이터 리소스 확장명 2D 텍스처는 데이터의 행렬이다, 사용 용도 중 하나는 이미지 데이터 용이다. (이미지의 각 픽셀 색상에 대한 정보 저장) 매핑이라는 고급 기술에는 색상 대신 3D 벡터를 저장한다. 그리고 오직 DXGI_FORMAT형만 저장이 가능하..

    [DX11 물방울책] 챕터3 - 트랜스폼 (위치값,회전값,크기값)

    1. 크기값 (Scale) 행렬 표현식은 아래와 같다. 예시2 2. 회전값 (Rotation) 예시 -30도만큼 회전 3. 동차 좌표 (homogeneous coordinate) Homogeneous 좌표는 쉽게 말하면 (x, y)를 (x, y, 1)로 표현하는 것. 임의의 0이 아닌 상수 w에 대해 (x, y)를 (wx, wy, w) 즉, homogeneous 좌표계에서 스케일(scale)은 무시되며 (x, y)에 대한 homogeneous 좌표 표현은 무한히 많이 존재하게 된다. 마찬가지로, 3차원의 경우에는 (X, Y, Z)를 (X, Y, Z, 1) 나 (wX, wY, wZ, w)로 표현. Homogeneous 좌표가 활용되는 곳은 주로 컴퓨터 그래픽스(graphics) 쪽이나 3D 비전 쪽이다. ..

    [DX11 물방울책] 챕터 2 - 행렬

    1. 행렬의 정의 그래픽스에선 행렬은 주로 트랜스폼 (이동,회전,크기) 그리고 벡터 위치를 프레임간 옮기고자 할 때 쓰여진다. m * n 행렬은 네모 모양의 m열 n행의 2차원 배열이다. 각 숫자를 원소라고 불린다. 각 행을 벡터로 취급할 때도 있다 2. 행렬간 곱셈 A 행렬의 행 개수와 B 행렬의 열 개수가 일치해야 연산이 가능하다. 3. 벡터와 행렬간 곱셈 4. 선형 결합 벡터 행렬 곱셈간 결과 uA는 선형 결합과 똑같다고 한다. 5. 결합 법칙 A(B + C) = AB + AC 그리고 (A + B)C = AC + BC 6. 전치 행렬 행렬의 행과 열을 교환해서 구한다. 전치 행렬의 속성은 다음과 같다. 7. 단위 행렬 좌>우측으로 대각선으로 가는 원소들 제외하고 모든 원소가 0인 행렬을 칭한다. 8..

    [DX11 물방울책] 챕터 1 - 벡터

    벡터는 게임 그래픽스에서 아주 중요한 역할을 하고있다. 예) 충돌 처리 그리고 물리 작용. 1. 벡터란 무엇인가? 크기와 방향을 지닌 값이다. 예시는 아래와 같다. 강체 : 힘 위치 속도 : 가속도와 방향 2. 벡터와 좌표계 벡터를 좌표계로 표현할려면 현재 공간상 위치값을 치환하면 된다. 예) 3D (x, y, z), 2D (x,y) 두 프레임 즉 시점에 따라 같은 방향이어도 위치가 다를 수가 있다. 3. 왼손 좌표계 vs 오른손 좌표계 Direct3D는 왼손 좌표계를 사용한다. 4. 기본 벡터 연산 두 벡터는 모든 좌표가 일치해야 똑같다라고 할 수가 있다. 두 벡터간 덧셈은 오직 같은 좌표로만 진행한다. 스칼라곱 같은 경우엔 자연수를 각 좌표를 곱해야한다 (형태 유지). 두 벡터간 뺄셈은 (왼쪽 벡터 ..