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를 통해 시각적으로, 또는 클래스 프레임워크를 통해 프로그래밍 방식으로 커스텀 렌더 파이프라인을 구성할 수 있습니다.

그 밖의 추가 사항 ​

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

참고 자료 ​