DirectX 11 - 스터디 05
·
DirectX/DirectX - Class
CameraWVP를 구현할 때에 그 안에 카메라도 구현하게 된다. 카메라는 내적(dot)과 외적(cross)을 이용하여서 그리는데 일단 간단하게 이미지로 대체하고 수학 관련 내용을 포스팅할 때 링크를 달아두겠습니다.카메라가 물체를 바라보거나 시점을 바꿀 때에 이전에 봤던 4x4 행렬을 통한 공간에 값이 들어가게 됩니다. 이때 어렴풋이 기억을 더듬어 본다면 가장 아래 행의 요소들은 위치, 그리고 그 위의 행들은 회전, 그리고 회전 행에서 $x, y, z$ 하나 값씩이 크기가 되는데 의문점이 하나 있습니다.회전값을 넣을 때 그렇다면 크기에 대한 값에도 영향이 될 텐데 잘못된 거 아닌가?라고 생각할 수 있지만 회전값의 일부분이 크기로 들어가는 이유는 물체가 회전을 할 때에 절대적인 크기는 같아도 착시현상이나,..
DirectX 11 - 스터디 04
·
DirectX/DirectX - Class
전에 포스팅을 한 내용을 보자면 렌더링을 실행 시에 각 정점들은 본인들의 위치, Uv 좌표, 색, 등. 등 많은 데이터들이 들어가고 있습니다. 물론 해당 정점을 쪼개어서 하나씩 밀어 넣는 방법도 있지만 공부하는 도중에는 합쳐서 전달하는 방법을 사용하는데 이때의 정점의 개수가 줄어들게 하여서 바이트 수를 줄이기 위해서 IndexBuffer를 사용할 것입니다.Index Buffer모든 도형은 삼각형을 기준으로 렌더링을 실시하게 됩니다. 예시로 사각형은 삼각형 두 개를 서로 합쳐서 그리는 방식을 사용하는데 이때에 필연적으로 겹치게 되는 정점들이 있습니다. (사각형의 경우에는 각 빗변의 점들이 겹치게 됩니다) 즉, 사각형을 그릴 시에 6개의 정점 데이터를 보내어서 순서대로 그리는 것이 아닌, 그냥 정점 데이터들..
DirectX 11 - 스터디 03
·
DirectX/DirectX - Class
윈도우 창의 사이즈는 실제로 설정해 준 값에서 약간 줄어든 값을 가지고 생성됩니다, 그 이유는 윈도우와 같이 생성된 타이틀 바의 크기나 미세하게 보이는 옆 테두리 같은 부분이 화면 크기에 포함되기 때문인데 이러한 현상에 대해서 정확하게 윈도우의 크기를 조절할 때에는 `AdjustwindowRect()` 함수를 사용합니다.Scalar processing초기에는 32비트 레지스터를 사용해 메모리의 데이터를 하나씩 처리하는 방식이 알반적이었지만, 이후 128비트 레지스터가 도입되면서 기존에 32비트 연산을 4번 반복해야 처리할 수 있었던 작업을 한 번에 병렬 처리를 할 수 있게 되었습니다. 이러한 하드웨어 발전으로 SIMD, SISD, MISD, MIMD와 같은 병렬 처리 모델이 정의되고 활용되기 시작합니다...
DirectX 11 - 스터디 01
·
DirectX/DirectX - Class
첫 번째 시간에는 기본적으로 다이렉트 X가 어떤 식으로 그래픽스를 모니터에 출력하고 기본적으로 어떠한 랜더링 방식을 가지고 있는지 알 수 있었다. 코드로 작성된 셰이더와 데이터뿐인 리소스를 사용해서 근본적으로 그래픽스 출력의 방식을 다시 보자.Resource (리소스)다이렉트 X에서의 리소스는 버퍼 혹은 텍스쳐 두 가지 중 하나를 형태를 가지고 있으며 Direct3D에서 GPU가 사용할 데이터이며 셰이더나 GPU가 그릴 대상에 필요한 정보를 가지고 있는 모음입니다. 리소스는 모든 정보를 리소스에게 넘겨 해당 점보를 가지고 그래픽을 렌더링 할 수 있게 합니다.Shader (셰이더)픽셀 색상을 계산하거나 변환 등을 수행하며 GPU에서 그래픽을 그릴 때 실행되는 작은 프로그램이라고 볼 수 있습니다. 리소스가..