42seoul/cube_3d

Cube_3D - 01

codingmonsters 2021. 2. 26. 20:14

42서울 과제 중 cube_3d라는 과제가 있다...

 

cube_3d과제를 수행하면서 필요한 지식들을 여기에 정리해볼까 한다.(내가 정리가 필요하다...)

 

cube_3d과제는 원시적인 3d게임을 구현하는 과제다.

유명한 fps게임을 예를 들면 서든어택을 예로 들 수 있으며 여기서 쓰이는 기술은 "레이캐스팅"이라는 기술을 사용한다.

Wolfenstein 3D

 

서든어택 

레이캐스팅이란 ray(광선), casting(던지다) 즉, 현재 위치에서 광선을 던져? 쏴서 벽(또는 장애물)이 충돌하는 지점을 찾아 거리를 구하는 기술이다.  서든 어택 같은 fps게임을 보면 총알을 쏜다. 총알 또한 레이캐스팅 기술로 구현한 것이다.

 

정리하면,

 

<레이캐스팅 - raycasting>

레이캐스팅은 2차원 맵에서 3차원의 원근감을 만드는 렌더링 기술이다.

(렌더링 기술 : 컴퓨터 프로그램을 사용하여 모델 또는 이들을 모아놓은 장면인 씬 파일로부터 영상을 만들어내는 과정.. 한번 검색해보기를)

 

- 레이캐스팅은 전면 스크린에 모든 수직선에 대해 계산(calculation)만 하면 되어서 속도가 빠릅니다.

- 컴퓨터가 지금보다 느려서 3D 엔진을 실시간으로 실행 할 수 없었던 과거에는 레이캐스팅 기술이 최초의 해결책 이었으며,  가장 근본적인 비디오 그래픽 응용 수단이 되었습니다.

 

솔직히 레이캐스팅은 나온지 오래 되었을 뿐만아니라 실질적으로 좀 더 현실처럼 그래픽처리를 하려면 "레이트레이싱"이라는 기술이 있습니다만... 이 글에서는 레이캐스팅만 다루도록 하겠습니다.(cube_3d에 필요한 내용만 정리하고 레이트레이싱은 다음에 다루도록 하겠습니다.)

레이캐스팅을 이용한 입체영상 구현

 다음 글에서 레이캐스팅의 기본 원리에 대해서 알아보도록 하겠습니다.