소개

우리는 출시합니다 Aspose.3D FOSS Python용, 순수-Python 라이브러리로, 일반적인 3D 파일 포맷을 읽고, 쓰고, 변환합니다. 이 라이브러리는 PyPI에 다음과 같이 게시됩니다 aspose-3d-foss, MIT 라이선스를 가지고 있으며, 외부 의존성이 전혀 없습니다.

프로그래밍 방식으로 3D 파일을 검사하거나 변환해야 했던 적이 있다면(메시 정점 수를 추출하거나, OBJ 기하 정보를 처리 스크립트에 파이프하고, 웹 뷰어용으로 STL 파일을 일괄적으로 glTF로 변환하는 경우 등), 이 라이브러리는 그런 사용 사례를 위해 설계되었습니다. 그래픽 드라이버, 네이티브 확장 모듈, 클라우드 연결이 전혀 필요하지 않습니다.


포함 내용

핵심 씬 그래프

모든 파일은 Scene 원본 파일의 노드 계층 구조를 반영하는 객체입니다. 노드는 Transform (translation, rotation, scale) 및 하나 이상의 부착된 엔티티(예를 들어 Mesh, Camera, 또는 Light.

기하 접근

Mesh 소스 포맷에 관계없이 씬 그래프는 동일하므로, 기하학을 순회하고 처리하도록 작성된 코드는 모든 지원 포맷에서 수정 없이 동작합니다.:

  • control_points:객체는 다음을 노출합니다: Vector4 : 정점 위치 목록을
  • polygons:(x, y, z, w)
  • get_element(VertexElementType): 면 인덱스 리스트 목록 (임의 다각형 차수, 삼각형에 국한되지 않음)

재질

LambertMaterial : 노멀, UV, 정점 색상, 스무딩 그룹에 대한 명명된 정점 데이터 레이어를 가져옵니다 PhongMaterial OBJ에서 읽은 재질 속성을 보유합니다 .mtl 파일(ambient, diffuse, specular, emissive, transparency, shininess). 재질은 이를 지원하는 포맷에서 로드‑저장 라운드 트립을 견딥니다.

수학 유틸리티

Vector2, Vector3, Vector4, FVector3, Quaternion, Matrix4, 그리고 BoundingBox 기하학 계산을 위한 경량 값 타입으로 포함됩니다.

애니메이션

AnimationClip, AnimationNode, KeyframeSequence, 그리고 KeyFrame 클래스는 glTF 및 COLLADA와 같이 해당 데이터를 포함하는 포맷에서 키프레임 애니메이션 데이터를 액세스할 수 있게 합니다.


빠른 시작

pip install aspose-3d-foss

3D 파일을 로드하고 각 메쉬의 정점 수를 출력합니다:

from aspose.threed import Scene
from aspose.threed.entities import Mesh

scene = Scene.from_file("model.obj")

def visit(node):
    for entity in node.entities:
        if isinstance(entity, Mesh):
            print(f"{node.name}: {len(entity.control_points)} vertices, "
                  f"{len(entity.polygons)} polygons")
    for child in node.child_nodes:
        visit(child)

visit(scene.root_node)

같은 파일을 glTF로 변환하십시오:

from aspose.threed import Scene
from aspose.threed.formats import GltfSaveOptions

scene = Scene.from_file("model.obj")
scene.save("model.gltf", GltfSaveOptions())

그것이 전체 프로그램입니다. 구성 파일도 없고, API 키도 없으며, 네트워크 호출도 없습니다.


지원되는 포맷

포맷Extension(s)로드저장참고
Wavefront OBJ.obj.mtl 재질 로딩 지원
STL.stlBinary와 ASCII; 좌표계 플립 옵션
glTF 2.0.gltf, .glbGLB(자체 포함 바이너리) 지원
COLLADA.daeColladaSaveOptions 사용 가능 flip_coordinate_system, enable_materials, indented
3MF.3mf3D 프린팅 워크플로에 적합
FBX.fbx부분N/ATokenizer만 제공; 전체 파서는 진행 중

파일 확장자를 통해 형식 감지가 자동으로 이루어집니다. 형식별 로드 및 저장 옵션 (ObjLoadOptions, StlSaveOptions, GltfSaveOptions, ThreeMfSaveOptions) 은(는) 세밀한 제어를 위해 제공됩니다.


오픈 소스 및 무료

이 라이브러리는 MIT 라이선스를 따릅니다. 상용 애플리케이션에서 사용하고, 수정하며, 제한 없이 재배포할 수 있습니다. 소스는 GitHub의 Aspose 조직 아래에서 제공됩니다.

사용량 단계, 토큰 제한, 텔레메트리가 없습니다. 라이브러리는 모든 처리를 로컬에서 수행합니다.

의존성: 없음. 이 패키지는 순수-Python 휠로 설치되며 C 확장이나 서드파티 런타임 요구사항이 없습니다.


시작하기


결론

Aspose.3D FOSS for Python 26.1.0은 툴링, 파이프라인 및 웹 애플리케이션에서 사용되는 가장 일반적인 3D 파일 포맷(OBJ, STL, glTF, COLLADA, 3MF)을 일관된 Python API와 설치 번거로움 없이 지원합니다. 버그, 지원되지 않는 엣지 케이스, 또는 추가가 필요한 포맷을 발견하면 GitHub에 이슈를 열어 주세요. 우리는 라이브러리를 적극적으로 유지 관리하며 기여를 환영합니다.