복셀 세계의 빛: 진짜 조명일까, 플러드 필일까?
플레이어가 기지에 발광 램프를 놓았어요. 기술적으로는 어떤 일이 벌어질까요? 이 순진한 질문이 우리에게 근본적인 결정을 요구했어요. 그리고 그 답은 “더 최신” 방법이 늘 더 좋은 건 아니라는 좋은 사례예요.
방법 A: 진짜 Unity 조명. 빛나는 블록 하나하나가 점광원이 되고, 엔진이 모든 걸 계산해요. 보기엔 멋지지만 규모를 감당하지 못해요. 복셀 세계에서는 시야에 빛나는 블록이 수백 개일 수 있고, 그만큼 많은 실시간 점광원은 어떤 GPU도 땀 흘리게 해요. 브라우저 빌드에서는 더더욱요.
방법 B: 플러드 필 조명. 이 장르의 고전이에요. 빛은 블록마다 하나의 숫자 값이고, 광원에서 퍼져 나가며 한 칸마다 줄어들어요. 아주 저렴하고 광원이 몇 개든 괜찮지만, 빛에 방향이 없어서 결과가 밋밋해 보여요. 램프 옆의 벽도 아래쪽 바닥만큼 똑같이 밝으니까요.
우리의 선택: 방향이 있는 플러드 필. 플러드 필 방식은 그대로 두고, 방향 정보를 가르쳤어요. 빛이 어느 방향에서 오는지 알고, 그에 따라 표면이 다르게 밝혀져요. 결과는 메시를 만들 때 청크 메시에 구워 넣어요. 실행 중에는 거의 비용이 들지 않지만, 일반적인 블록 조명보다 눈에 띄게 입체적으로 보여요.
그 뒤로 이 교훈을 어디서나 써요. 먼저 이 장르의 진짜 문제가 무엇인지(여기서는 아주 많은 광원과 고정된 지형) 묻고, 그다음에 기술을 고르는 거예요. 진짜 조명은 우리에게 없던 문제를 해결해 주면서, 우리가 풀 수 없는 문제를 만들어 냈을 거예요.
댓글