본 포스팅은 Lode's Computer Graphics Tutorial: Raycasting(이하 레퍼런스)을 보고 정리한 글입니다. 또한, 창을 띄우고 그래픽을 랜더링하는 부분은 본 포스팅에서 다루지 않습니다. 개념 카메라에서 각 픽셀을 통과하는 가상의 광선을 쏘아 무엇이 보이는지 결정하는 기법이다. 이를 통해 2차원 맵에서 원근감을 포현한 3D 랜더링을 할 수 있다. 레이캐스팅 기술을 사용한 게임은 Wolfenstein 3D, Doom 등이 있다. 알고리즘 2차원 맵이 존재하고, 플레이어(카메라)의 위치에서 플레이어가 바라보는 방향으로 모든 x축 픽셀을 대상으로 가상의 광선을 쏜다. 광선이 벽과 충돌하면 수직의 벽을 그리는데, 플레이어와의 거리에 따라서 벽의 높이를 정한다. 벽의 높이를 구하면 모니..
[CG] 레이캐스팅 (Ray casting) 이해 및 구현
본 포스팅은 Lode's Computer Graphics Tutorial: Raycasting(이하 레퍼런스)을 보고 정리한 글입니다. 또한, 창을 띄우고 그래픽을 랜더링하는 부분은 본 포스팅에서 다루지 않습니다. 개념 카메라에서 각 픽셀을 통과하는 가상의 광선을 쏘아 무엇이 보이는지 결정하는 기법이다. 이를 통해 2차원 맵에서 원근감을 포현한 3D 랜더링을 할 수 있다. 레이캐스팅 기술을 사용한 게임은 Wolfenstein 3D, Doom 등이 있다. 알고리즘 2차원 맵이 존재하고, 플레이어(카메라)의 위치에서 플레이어가 바라보는 방향으로 모든 x축 픽셀을 대상으로 가상의 광선을 쏜다. 광선이 벽과 충돌하면 수직의 벽을 그리는데, 플레이어와의 거리에 따라서 벽의 높이를 정한다. 벽의 높이를 구하면 모니..
2023.12.08