https://github.com/composerboyV/2D_3D_raycasting
1. 프로젝트 개요
- 프로젝트명: Cub3D – 레이캐스팅 기반 3D 그래픽 렌더링 엔진
- 개발 기간: 2025. 03 ~ 2025. 04
- 수행 방식: 팀 프로젝트 (42 Gyeongsan)
- 담당 범위: 레이캐스팅 렌더링 / DDA 충돌 탐색 / 이동·회전·충돌 처리
- 기술 스택: C / MiniLibX / Raycasting / 컴퓨터 그래픽스
2. 나의 역할
담당 역할
1️⃣ 레이캐스팅 핵심 로직 구현
- 화면의 각 세로 라인(x축)에 대해 Ray 방향 계산 → 벽 충돌 지점 탐색 → 벽 높이 산출 → 렌더링 전체 파이프라인 구현
- 삼각함수(
sin, cos)와 벡터 연산을 활용해 시야각(FOV) 기반 광선 방향 계산
- 벽까지의 수직 거리(perpendicular distance)를 사용해 원근 왜곡(fisheye) 보정 처리
- 벽의 충돌 방향(N/S/E/W)에 따라 방향별 텍스처 매핑 구현
2️⃣ DDA 충돌 탐색 구현
- 그리드 기반 맵에서 광선을 한 칸씩 전진시키는 DDA 알고리즘 구현
side_dist_x / side_dist_y 비교를 통해 x/y축 중 먼저 충돌하는 방향을 판단
- 벽(
'1') 충돌 시점을 정확히 검출하여 렌더링 기준 좌표로 활용