이 페이지에서

Balsam 자산 가져오기 도구

Balsam 도구는 Qt Quick 3D 의 자산 처리 파이프라인에 포함된 애플리케이션입니다. 이 도구의 목적은 Maya, 3ds Max, Blender와 같은 디지털 콘텐츠 제작 도구에서 생성된 자산을 Qt Quick 3D 에서 사용할 수 있도록 효율적인 런타임 형식으로 변환하는 것입니다. 애플리케이션에서 교환 형식을 직접 참조하는 것은 불가능할 뿐만 아니라, 자산의 콘텐츠를 실시간 렌더링에 사용할 수 있도록 파싱하고 처리하는 데 막대한 리소스가 필요하기 때문에 합리적이지도 않습니다. 대신, 교환 형식을 Balsam 도구를 통해 QML 컴포넌트와 지오메트리, 텍스처와 같은 리소스로 변환할 수 있습니다.

Balsam 명령줄 도구

명령줄에서 Balsam을 실행하려면 다음과 같이 balsam 실행 파일을 호출하십시오.

balsam [options] sourceFilename

balsam 로 testModel.fbx 파일에 포함된 3D 에셋을 변환하려면 다음 명령을 사용합니다:

balsam testModel.fbx

그러면 다음과 같은 파일이 생성됩니다:

  • meshes/testModel.mesh
  • TestModel.qml

생성된 파일은 해당 QML 컴포넌트를 사용하여 Qt Quick 3D 프로젝트에서 활용할 수 있습니다:

import QtQuick3D

TestModel {
   id: modelInstance
}

참고: 생성된 메시파일 이름은 소스 파일(이 예시에서는 FBX 파일)에 정의된 메시 이름에 따라 결정되며, testModel.mesh 과 다를 수 있습니다.

Balsam UI

balsam 실행 파일과 함께 제공되는 ‘ balsamui ’라는 Balsam용 GUI 프론트엔드도 있습니다. balsamui 에서 입력 파일과 출력 디렉터리를 선택할 수 있으며, balsam 실행 파일의 명령줄 옵션이 대화형 요소로 매핑되어 있습니다:

Balsam UI 애플리케이션의 스크린샷.

지원되는 3D 자산 유형

  • Wavefront (.obj)
  • COLLADA (.dae)
  • FBX (.fbx)
  • STL (.stl)
  • PLY (.ply)
  • GLTF2 (.gltf, .glb)

지원되는 일부 형식에서는 텍스처 에셋을 삽입하거나 참조할 수도 있습니다. Qt에서도 해당 형식을 지원하는 경우, 이러한 에셋도 지원됩니다.

이미지 기반 조명을 위한 베이킹

Balsam은 또한 .hdr 파일을 사용하여 사전 필터링된 큐브맵 이미지를 생성하는 기능을 지원합니다. 입력으로 .hdr 확장자를 가진 파일을 지정하면, 동일한 이름이지만 확장자가 .ktx인 파일이 생성됩니다. 그런 다음 애플리케이션은 생성된 .ktx 파일을 포함시켜 배포하고, ` SceneEnvironment::lightProbe`와 연관된 ` Texture `에서 이를 참조할 수 있습니다. 이를 통해 이미지 기반 라이팅에 필요한 비용이 많이 드는 런타임 처리를 피할 수 있습니다. 자세한 내용은 IBL 큐브맵 사전 생성을 참조하십시오.

지원되는 옵션

다음 표는 자산 파일을 변환할 때 balsam 에서 인식하는 명령줄 옵션을 나열합니다:

참고: 각 부울 옵션에 대해 --disable-<option-name> 을 사용할 수 있습니다.

옵션설명
--outputPath, -o <outputPath>생성된 파일을 저장할 위치를 설정합니다. 기본값은 현재 디렉터리입니다.
--calculateTangentSpace가져온 메시에 대한 탄젠트 및 비탄젠트를 계산합니다.
--joinIdenticalVertices가져온 모든 메쉬 내에서 동일한 버텍스 데이터 세트를 식별하고 병합합니다.
--generateNormals모든 메시의 모든 면에 대해 법선 벡터를 생성합니다.
--generateSmoothNormals메쉬 내 모든 정점에 대해 부드러운 법선을 생성합니다.
--splitLargeMeshes큰 메쉬를 더 작은 하위 메쉬로 분할합니다.
--preTransformVertices노드 그래프를 제거하고, 각 노드의 국소 변환 행렬을 사용하여 모든 정점을 사전 변환합니다.
--improveCacheLocality버텍스 캐시 국소성을 높이기 위해 삼각형을 재정렬합니다.
--removeRedundantMaterials중복되거나 참조되지 않은 머티리얼을 검색하여 제거합니다.
--fixInfacingNormals내부를 향하는 법선 벡터를 가진 메쉬를 파악하여 이를 반전시킵니다.
--findDegenerates이 단계에서는 모든 메시를 검색하여 퇴화된 프리미티브를 찾아 적절한 선분이나 점으로 변환합니다.
--findInvalidData이 단계에서는 모든 메시를 검색하여 0으로 설정된 법선 벡터나 잘못된 UV 좌표와 같은 유효하지 않은 데이터를 찾아 제거하거나 수정합니다. 이는 일반적인 익스포터 오류를 제거하기 위한 것입니다.
--transformUVCoordinates이 단계에서는 텍스처별 UV 변환을 적용하고, 이를 독립적인 텍스처 좌표 채널로 베이킹합니다.
--findInstances이 단계에서는 중복된 메시를 검색하여 첫 번째 메시에 대한 참조로 대체합니다.
--optimizeMeshes메시 수를 줄이기 위한 후처리 단계입니다.
--optimizeGraph씬 계층 구조를 최적화하는 후처리 단계입니다.
--useFloatJointIndicesGLES 2.0을 위해 조인트 인덱스를 부동 소수점 숫자로 저장합니다.
--globalScale이 단계에서는 모델에 대한 전역 스케일링을 수행합니다.
--globalScaleValue <value>--globalScale 에서 사용하는 전역 스케일 계수입니다.
--dropNormals모든 메시의 모든 면에 대한 노멀을 제거합니다.
--removeComponentNormals메쉬에서 노멀 성분을 제거합니다.
--removeComponentTangentsAndBitangents메쉬에서 탄젠트 및 비탄젠트 성분을 제거합니다.
--removeComponentColors메쉬에서 모든 색상 구성 요소를 제거합니다.
--removeComponentUVs메쉬에서 모든 UV 구성 요소를 제거합니다.
--removeComponentBoneWeights메쉬에서 모든 본 가중치를 제거합니다.
--removeComponentAnimations메쉬에서 모든 애니메이션 컴포넌트를 제거합니다.
--removeComponentTextures메쉬에서 임베드된 텍스처 컴포넌트를 모두 제거합니다.
--fbxPreservePivotsFBX 에셋에 의해 생성된 추가 피벗 노드를 보존합니다(깊은 노드 계층 구조를 생성할 수 있음).
--generateMipMaps가져온 모든 텍스처 컴포넌트가 밉맵 텍스처 필터링을 위해 밉맵을 생성하도록 강제합니다.
--useBinaryKeyframes키프레임 데이터를 바이너리 파일로 기록합니다.
--generateLightmapUV라이트맵 UV 언랩을 수행하고 메시용 추가 UV 채널을 생성합니다. 이 UV 데이터는 라이트맵 베이커와 런타임 라이트매핑 과정에서 사용됩니다.
--generateMeshLevelsOfDetail가능한 경우 소스 메시를 자동으로 단순화하여 메시의 세부 수준(LOD)을 생성합니다.
--recalculateLodNormals생성된 메시 LOD에 필요한 경우 새로운 노멀을 계산합니다.
--recalculateLodNormalsMergeAngle <value>생성된 메시 LOD에 대한 노멀을 재계산할 때 노멀 스무딩/병합을 고려할 최대 각도(도).
--recalculateLodNormalsSplitAngle <value>생성된 메쉬 레벨 오브 디테일에 대한 노멀을 재계산할 때 노멀 분할을 고려할 최대 각도(도).

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.