Talus는 게임용 4km 지형 높이맵을 브라우저에서 생성하는 소형 확산 모델이다. 첫 실행 때 약 54MB를 다운로드하며, 모델 가중치와 실행 환경은 브라우저 캐시에 저장되고 생성한 지도는 기기 밖으로 전송되지 않는다.
지형 생성하기에서 지형 유형을 고르고 원하는 조건을 설정하면 나머지는 자동으로 둘 수 있다. 예시 지도는 Islands 유형, 시드 209로 생성했으며 64×64셀, 가로 4,096m다. PNG 16비트, Unity RAW, OBJ 형식으로 내보낼 수 있다.
Talus는 무작위 노이즈에서 시작해 25단계에 걸쳐 지형을 예측하고 다듬는다. 2,300만 개 매개변수의 네트워크는 자체 절차 생성기로 만든 지도 45,000개를 학습했다. 학습 지도에는 여러 겹의 노이즈, 계곡을 파는 강, 경사면 아래로 미끄러져 안정 각도에 쌓이는 암석이 포함됐다. 실행에는 ONNX Runtime을 사용하며, WebGPU가 있으면 GPU에서, 없으면 CPU에서 작동한다. 같은 시드와 설정을 사용하면 같은 지도가 나온다.
Talus-3는 보류 테스트 지도에서 9개 점수를 평균 80.3으로 기록했다. 100점은 생성 지도를 학습에 사용한 절차적 지형과 구별할 수 없다는 뜻이다. 플레이 가능성은 99.9, 세부 표현의 깔끔함은 99.4, 설정한 기복·경사·물의 반영 정도는 92.1이다. 실제 지형 지도와 비교한 25개 통계의 사실감 점수는 66.2이며, 세부 주파수 점수는 11.0이다. 제작 측은 산은 지나치게 매끄럽고 평야는 지나치게 거친 점을 다음 개선 과제로 꼽았다. 점수표 보기
각 지도에는 크기와 높이 범위가 담긴 JSON 파일이 함께 제공된다. 수백 개의 지도를 만들려면 Python 도구로 Talus를 로컬에서 실행할 수 있다.
git clone https://github.com/osfv/talus cd talus && pip install -e . gh release download v3.0.0 -R osfv/talus -p talus-3.pt -D checkpoints nullscape sample --checkpoint talus-3 --archetype ridges \\ --n 64 --formats png16,r16,obj --unity
Unity에서는 Raw 가져오기를 선택하고 65×65, 16비트, Windows 바이트 순서를 설정한다. 지형 너비는 4,032m, 높이는 1,200m로 맞춘다. Unreal과 Godot에서는 16비트 PNG를 지형 높이맵으로 사용하고 높이를 1,200m로 설정한다. Blender에서는 Y축이 위쪽이고 단위가 미터인 OBJ를 가져온다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요