2D 레이 트레이싱
Source: Dev.to
레이 트레이서란?
레이 트레이서는 광선을 환경에 방출하고 그 상호작용을 추적하여 빛이 어떻게 동작하는지를 시뮬레이션하는 컴퓨터 프로그램입니다. 이 핵심 기술은 고예산 할리우드 시각 효과부터 작은 인디 프로젝트에 이르기까지 모든 것의 기반이 됩니다.
나의 2D 레이 트레이싱 엔진
개요
이 엔진은 2D 텍스처 위에서 작동하며, 장면 내부에서 튕기는 광선을 추적합니다. 두 가지 입력을 받습니다:
- 광선 수 – 각도 해상도를 결정합니다.
- 시야각 (FOV) – 전체가 커버되는 각도를 정의합니다.
레이‑캐스팅 스프라이트는 FOV의 절반만큼 회전한 뒤, 지정된 광선 수만큼 반복합니다. 각 반복마다 FOV / number_of_rays 만큼 반대 방향으로 회전하여 새로운 광선을 생성합니다.
광선 동작
- 초기화 – 광선이 한 픽셀씩 앞으로 이동합니다.
- 벽 충돌 – 광선이 벽에 닿으면 방향을 반대로 바꾸고, 무작위 180° 범위 내에서 새로운 진행 방향을 선택합니다. 동시에 강도가 어두워집니다.
- 광원 – 광선이 광원에 도달하면 루프가 종료됩니다. 카메라와의 거리에 따라 벽의 높이가 그려집니다.
- 최대 길이 – 광선이 미리 정의된 거리 내에 광원을 만나지 못하면 완전히 어두운 상태로 렌더링됩니다.
결과
이 시스템은 Scratch 프로젝트에 대해 꽤 현실적인 빛 시뮬레이션을 제공합니다. 할리우드 수준의 품질이나 고급 인디 엔진에 비하면 부족하지만, 2D 환경에서 레이 트레이싱의 기본 원리를 보여줍니다.
읽어 주셔서 감사합니다. 좋은 하루 보내세요!