Skip to content

Babylon.js 9.0: 클러스터 조명, 노드 파티클, 가우시안 스플래팅 전면 개편

Babylon.js 9.0이 나왔고, 이 오픈소스 WebGPU/WebGL 엔진이 지금까지 내놓은 것 중 가장 큰 릴리스입니다. 핵심 기능은 클러스터 조명 시스템으로, 장면이 WebGPU와 WebGL 2 양쪽에서 수백 개에서 수천 개의 동적 광원을 부드러운 프레임레이트로 렌더링할 수 있게 해줍니다.

Babylon.js 9.0의 새로운 Node Particle Editor

클러스터 조명이 모든 걸 바꾼다

전통적인 픽셀 단위 조명은 모든 픽셀이 장면 안의 모든 광원의 기여도를 계산하게 만듭니다. 그 픽셀 근처에 전혀 없는 광원까지요. 클러스터 조명은 광원을 화면 공간 타일과 깊이 슬라이스로 묶어서 이 문제를 해결합니다. 렌더링할 때 각 픽셀은 실제로 자신에게 영향을 주는 광원만 평가합니다. 그 결과 1,000개의 동적 광원이 있는 장면이 이제 기어가지 않고 실시간 프레임레이트로 돌아갑니다.

이 방식은 WebGPU와 WebGL 2 양쪽에서 작동하므로, 성능 향상이 가능한 한 넓은 사용자층에 닿습니다.

텍스처 면광원

면광원은 Babylon.js 8.0에서 도입됐습니다. 9.0은 발광 텍스처를 추가해서, 직사각형 면광원을 통해 어떤 이미지든 투사할 수 있습니다. 스테인드글라스 투영, LED 패널 디스플레이, 또는 물리적으로 정확한 발광이 적용된 영화 같은 조명 세팅을 떠올려 보세요.

볼류메트릭 조명

새로운 볼류메트릭 조명 시스템은 안개, 먼지, 연무를 통과하는 빛줄기를 렌더링합니다. 빛이 대기 중에서 어떻게 산란하는지 예술적으로 제어할 수 있도록 조정 가능한 소멸 및 위상 파라미터를 포함합니다. 이 시스템은 방향성 광원을 지원하고, 가능한 경우 WebGPU 컴퓨트 셰이더를 사용하며 WebGL 2 폴백도 갖췄습니다.

Node Particle Editor

Node Particle Editor(NPE)는 파티클 시스템을 만들기 위한 드래그 앤 연결 방식의 시각적 도구입니다. Node Material Editor를 써봤다면 작업 흐름은 동일합니다. 비파괴 노드 그래프를 통해 발생 형태, 스프라이트 시트, 업데이트 동작, 서브 이미터를 완전히 제어할 수 있습니다. 플로우 맵과 중력 어트랙터가 파티클 업그레이드를 마무리합니다.

가우시안 스플래팅 전면 개편

Babylon.js는 7.0에서 가우시안 스플래팅 지원을 도입했습니다. 9.0은 그림자 투사, 불투명한 메시 같은 렌더링을 위한 삼각형 스플래팅, 그리고 .splat, .ply, .spz 파일과 함께 압축된 SOG/SOGS 포맷 지원을 더해 시스템을 다시 작성했습니다. 이제 여러 스플랫 에셋을 하나의 장면에 결합해 전역 정렬을 할 수 있고, 각 부분은 독립적으로 변환하고 애니메이션을 줄 수 있습니다. Adobe가 이 작업에 기여했습니다.

Frame Graph 시스템

8.0에서 알파 기능으로 등장했던 Frame Graph가 이번 릴리스에서 v1에 도달합니다. 각 노드가 렌더링 작업을 나타내는 유향 비순환 그래프입니다. 시스템이 텍스처 할당, 재사용, 최적화를 자동으로 관리합니다. 팀은 경우에 따라 GPU 메모리를 40% 이상 절약했다고 보고합니다. Node Render Graph Editor를 통해 시각적으로, 또는 클래스 프레임워크를 통해 프로그래밍 방식으로 커스텀 렌더 파이프라인을 구성할 수 있습니다.

그 밖의 추가 사항

애니메이션 리타게팅은 한 캐릭터 스켈레톤의 애니메이션을 다른 스켈레톤에 적용할 수 있게 해줍니다. 뼈대 구조와 명명 규칙이 달라도 가능합니다. 이번 릴리스에는 재구축된 인스펙터, 큰 좌표계에서 부동소수점 떨림을 막는 대형 월드 렌더링, 지리공간 렌더링 기능도 포함됩니다.

참고 자료