게임 개발 · 기술 동향미로의 개발노트
카테고리

Defold

Defold 1.14에서 반사 효과를 만들 때 달라지는 것

모아보기 · 소식 기준일 · 블로그 공개

장면을 여섯 방향으로 그려 큐브맵에 담을 수 있게 됐습니다. 기존 프로젝트는 렌더링 효과와 네이티브 확장 호환성을 따로 확인해야 합니다.

Defold Glass 데모의 유리 반사 장면
Paweł Jarosz의 Defold Glass 데모. Defold Foundation의 1.14.0 발표에 실린 반사 예시.

반사에 필요한 장면을 여섯 면에 그립니다

2026년 10월 12일 공개된 Defold 1.14.0은 렌더 타깃을 큐브맵으로 지정할 수 있게 했습니다. 반사 물체 근처에서 위·아래·앞·뒤·좌·우를 따로 렌더링하고, 셰이더에서 방향에 해당하는 면을 읽는 방식입니다. 렌더 스크립트에서 생성하거나 에디터에서 렌더 타깃 리소스로 설정할 수 있어요.

실제 씬에서 비용을 확인할 부분

큐브맵 지원은 반사 효과를 구현할 수 있는 기능입니다. 반사 물체마다 여섯 면을 매 프레임 갱신하면 그리기 작업이 추가되므로, 테스트 씬에서 해상도와 갱신 주기를 바꿔 프레임 시간을 비교하는 편이 좋습니다. 첫 구현에서는 큐브맵의 면 크기가 동일한 정사각형이어야 하며 멀티샘플링은 지원되지 않습니다.

기존 프로젝트의 업그레이드 순서

네이티브 그래픽 확장이 예전 렌더 타깃 바인딩을 쓴다면 새 API에 맞는지 먼저 확인합니다. macOS 빌드는 Metal이 기본이 됐으므로, 기존 셰이더가 있다면 데스크톱 빌드에서 렌더 결과도 비교합니다. 여기에 실린 이미지는 공식 발표의 데모이며, 위 항목은 프로젝트별 검증 지점입니다.

움직이는 물체가 반사에 들어올 때

정적인 방에서 유리 표면만 보는 경우와, 캐릭터가 유리 뒤를 지나가는 경우는 요구하는 갱신 주기가 달라요. 첫 번째는 한 번 만든 환경을 오래 쓸 수 있지만, 두 번째는 캐릭터의 실제 위치와 반사에 남은 위치가 달라 보일 수 있어요. 먼저 움직이는 물체를 큐브맵에 담아야 하는지 정하고, 필요하다면 여섯 면을 한 프레임에 처리하는 방식과 여러 프레임에 나눠 처리하는 방식을 비교합니다. 나눠 그리면 한 프레임의 작업은 줄지만 면마다 기록 시각이 달라지므로 경계를 지나는 물체가 어색해지는지 확인해야 합니다.

반사 위치도 살펴볼 부분입니다. 큐브맵은 지정한 점에서 본 주변을 기록합니다. 반사 물체가 기록 위치에서 크게 벗어나거나 벽 가까이 이동하면, 반사 방향은 자연스러워도 벽이 실제 위치와 어긋나 보일 수 있어요. 테스트 장면에는 멀리 있는 배경과 물체 바로 옆의 기둥을 함께 둡니다. 카메라를 돌리고 반사 물체를 옮겨 보면서 어느 조건에서 차이가 보이는지 확인하면 한 개의 환경 맵을 여러 물체에 공유해도 되는 범위를 판단하기 쉽습니다.

작은 장면에서 먼저 비교합니다

기본 장면, 낮은 해상도로 갱신하는 장면, 높은 해상도로 자주 갱신하는 장면을 같은 위치에서 비교합니다. 눈으로는 면 경계와 움직임의 지연을 보고, 수치로는 프레임 시간과 순간적으로 튀는 구간을 봅니다. 화면에서 거의 보이지 않는 반사의 해상도를 높이느라 프레임 시간이 늘어난다면, 그 비용을 가까운 물체나 더 중요한 효과에 쓰는 편이 낫습니다. 데모의 유리 느낌을 그대로 따라가기 전에 실제 프로젝트에서 반사가 어느 거리와 각도에서 읽히는지 정하는 것이 먼저입니다.

출처

같은 카테고리의 글

최신 게임 개발 동향 전체 보기 ↗