1. 데이터
CPU -> RAM -> Disk, GPU -> VRAM 의 데이터 흐름이 있음.
RAM과 VRAM 이 DirectX, OpenGL 로 통신을 하게 됨.
이때 RAM 과 VRAM 을 통합해서 하나의 RAM 에서 CPU, GPU 가 모두 사용하는 기기가 플레이스테이션, XBOX 같은 기기임.
RAM과 VRAM 을 하나처럼 사용할 수 있게 하려는 시도가 DirectX12 이후로 시도중.
2. 공간이동
Vertex -> Local -> World -> View -> Proj -> Back Cull -> NDC -> ViewPort
NDC(Normalized Device Coordinate)
UI 와 다르게 Y 축이 아래서 위쪽이 양의 방향임
XY 축이 -1~1 사이이며 Proj 된 벡터에서 w 값을(기존의 z 값이 저장됨) 나눠서 만듦.
Project Matrix 가 X, Y 축을 시야각에 따라 확대해서 성립하는 z = +-ax, z = +-ay 의 평면을 기준으로 화면이 잘리게 됨. ( z < ax 이면 너무 오른쪽이라 잘리는 셈)
Rasterizer 에서 처리됨
VeiwPort
윈도우 같은 화면에선 0,0 이 LeftTop 이고 화면의 크기도 정수단위이다.
이를 위해서 NDC * 화면크기.x/2 + 화면 원점 + 화면크기/2 를 처리한다.
댓글 없음:
댓글 쓰기