Wolfenstein 3D 게임은 RayCasting Engine을 이용했다.
RayCasting Engine을 이용하여 비슷한 게임을 만들어보자라는 과제이다.
Raycasting은 rendering 기술이다.
2D Map에서 3D Perspective를 만들어 낸다.
옛날에는 컴퓨터 속도가 느려 실시간으로 3D 엔진을 돌리는 것이 불가능했다.
그리고 raycasting이 그 해결 방법이었다.
screen의 수직인 선만 계산하면 되기 때문에 속도가 빨랐다. 연산의 횟수가 그렇게 많지 않다.
연산의 횟수가 적은 방법이기는 하지만 한계도 있다.
초기 Raycasting Engine으로 계단, 점프, 높이의 다름은 구현할 수 없다. 그러나 추후의 개선된 엔진에서는 가능하다고 한다.
Raycasting과 Raytracing은 다르다.
Raycasting은 실시간으로 작동하는 빠른 semi-3D 기술이고
Raytracing은 반사나 그림자까지 표현해주는 계산이 많이 필요한 렌더링 기술이다.
Raycasting에서는 선을 그리기 위해 DDA 알고리즘을 사용한다.
DDA Line Drawing Algorithm이란 선을 그리기 위해 매번 어느 방향으로 한칸씩 갈 것인가를 결정하는 알고리즘이다.
다시 말해서, x와 y좌표를 생각했을때 매 단계에서 x, y 둘중 한쪽으로만 한칸씩 움직여 시작점에서 끝점까지 이동하며 픽셀을 채우는 방법으로 선을 그린다.