게임 Lobsters · 1일 전

디아블로 3 천사 날개 그래픽의 놀라운 비밀 (알고 보면 다 속임수?)

핵심 요약
  • 디아블로 2의 2D 스프라이트 날개를 디아블로 3의 3D 환경으로 옮기며 성능을 아끼기 위해 독특한 그래픽 트릭이 사용되었습니다.
  • 수많은 본이나 무거운 텍스처 메모리를 쓰는 대신, 분할된 평면 메시 왜곡과 사인파 텍스처, 마스크 처리를 조합해 자연스러운 일렁임을 만들어냈습니다.
  • 단순한 텍스처 몇 장과 평면 지오메트리를 겹치고 클램프 설정을 더해 대천사의 입체적인 날개 비주얼을 완벽하게 완성했습니다.
요약 블리자드의 명작 RPG 디아블로 시리즈에서 대천사 티리엘을 상징하는 요소 중 하나는 바로 등 뒤에서 신비롭게 일렁이는 빛의 날개입니다. 디아블로 2 시절에는 2D 스프라이트 기반으로 좌우 날개 각각 60프레임 분량의 애니메이션 데이터를 사용해 날개를 구현했지만, 디아블로 3로 넘어오면서 이를 3D 엔진 환경에서 어떻게 효율적으로 재현했는지가 개발자들과 게이머들 사이에서 큰 관심사였습니다. 3D 환경에서 날개 애니메이션을 구현할 때 프레임별 텍스처를 전부 사용하면 텍스처 메모리가 과도하게 소모되고, 스킨드 지오메트리(본 애니메이션)를 쓰자니 수많은 본(Bone)이 필요해 성능상 큰 부담이 따릅니다. 분석에 따르면 블리자드는 매우 정교한 기술적 속임수로 이 문제를 해결했습니다. 날개 구현의 핵심 과제는 세 가지였습니다. 첫째는 날개가 등과 맞닿는 시작 지점이 고정되어야 한다는 점, 둘째는 자연스러운 파동(물결) 모양의 움직임이 나와야 한다는 점, 셋째는 날개 끝으로 갈수록 가늘어져야 한다는 점입니다. 블리자드는 단순한 사인 곡선(sine wave) 텍스처를 평면(Plane) 지오메트리 위에서 이동시키는 방식을 택했는데, 이때 시작 지점이 흔들리는 것을 막기 위해 지오메트리의 한쪽(몸 쪽에 붙는 부분)을 변형해 움직임을 줄이고 메시를 분할(subdivision)하여 왜곡을 억제했습니다. 여기에 알파 채널을 적용해 플라스마 같은 불꽃 형태를 만들고, 텍스처가 끝나는 부분의 부자연스럽고 거친 경계선은 별도의 마스크(Mask) 텍스처를 씌워 투명하게 처리했습니다. 이 마스크 텍스처와 살짝 압축된 메시 형태 덕분에 끝으로 갈수록 얇아지는 날개 실루엣이 완성되었습니다. 이후 이 변형된 평면들을 여러 겹 복제하고 UV 오프셋을 줘 겹친 뒤, 텍스처 반복으로 인한 아티팩트를 막기 위해 텍스처 타일링 모드를 '클램프(Clamp)'로 설정하여 게임 속 화려한 대천사의 입체적인 날개를 구현해냈습니다. 단순한 리소스와 똑똑한 최적화 트릭으로 최상의 비주얼을 만들어낸 개발 비화입니다.
Sponsored · 광고