C#을 사용하여 3D 장면 만들기

간단한 3D 장면은 기하학적 데이터의 3차원 그래픽 표현입니다. 이 기사에서는 3D 모델링 또는 렌더링 소프트웨어를 설치할 필요 없이 처음부터 C#을 사용하여 3D 장면을 만드는 방법을 배웁니다. 3D 장면을 3D 형식을 교환하는 데 사용되는 인기 있는 3D 파일 형식인 FBX 파일 형식으로 저장합니다. FBX는 바이너리 또는 ASCII 데이터 파일로 디스크에 저장할 수 있습니다.

이 기사에서는 다음 주제를 다룹니다.

  1. 3D 장면을 만드는 C# API - 무료 다운로드
  2. C#에서 간단한 3D 장면 만들기
  3. C#을 사용하여 3D 장면 읽기

3D 장면을 만드는 C# API - 무료 다운로드

3D 장면을 만들고 읽기 위해 Aspose.3D for .NET API를 사용합니다. 지원되는 형식으로 3D 장면을 만들고 저장할 수 있습니다. 또한 지오메트리 및 장면 계층으로 작업하고, 장면에서 개체를 애니메이션하고, 3D 파일 형식을 변환할 수 있습니다.

API는 노드, 지오메트리, 재질, 텍스처, 애니메이션, 포즈, 하위 장면 등을 포함하는 최상위 개체인 Scene 클래스를 제공합니다. CreateChildNode(Entity) 메서드 지정된 엔터티가 연결된 새 자식 노드를 만듭니다. API는 LambertMaterial, PhongMaterialShaderMaterial에 대한 음영 처리 모델을 제공합니다. 빛이 장면을 비추고 API의 Light 클래스를 사용하면 장면에 약간의 빛을 추가할 수 있습니다.

API의 DLL 다운로드 또는 NuGet을 사용하여 설치하십시오.

PM> Install-Package Aspose.3D

C#에서 간단한 3D 장면 만들기

아래 단계에 따라 간단한 3D 장면을 만들 수 있습니다.

  1. Scene 클래스의 인스턴스를 만듭니다.
  2. CreateChildNode() 메서드를 호출하여 Cylinder와 같이 화면에 표시할 모양인 일부 기하 도형을 추가합니다.
  3. Material과 같은 자식 노드 속성을 설정합니다.
  4. Light 클래스 개체를 초기화합니다.
  5. CreateChildNode() 메서드를 호출하여 Light 엔터티를 추가합니다.
  6. 마지막으로 Save() 메서드를 사용하여 장면을 FBX로 저장합니다. 출력 파일 경로와 FileFormat.FBX7500ASCII를 인수로 사용합니다.

다음 코드 샘플은 C#을 사용하여 간단한 3D 장면을 만드는 방법을 보여줍니다.

// 이 코드 예제는 FBX 파일에서 간단한 3D 장면을 만드는 방법을 보여줍니다.
// 3D 장면 초기화
var scene = new Scene();

// Cylinder 객체 초기화
var cylinder = new Cylinder();
cylinder.Name = "Cylinder";

// 자식 노드 생성 및 Cylinder 객체 추가
var node = scene.RootNode.CreateChildNode(cylinder);

// 자식 노드 속성 설정
var material = new LambertMaterial() { DiffuseColor = new Vector3(Color.LightBlue) };
material.Name = "Lambert";
node.Material = material;

// 라이트 엔티티 추가
var light = new Light() { LightType = LightType.Point };
light.Name = "Light";
scene.RootNode.CreateChildNode(light).Transform.Translation = new Vector3(10, 0, 10);

// 출력 파일 경로
var output = @"C:\Files\3D\document.fbx";

// 3D 장면 문서 저장
scene.Save(output, FileFormat.FBX7500ASCII);

C#을 사용하여 3D 장면 읽기

다음 단계에 따라 FBX 문서에서 3D 장면을 읽을 수 있습니다.

  1. Scene 클래스의 인스턴스를 만듭니다.
  2. Open() 메서드를 사용하여 기존 3D 문서를 로드합니다.
  3. ChildNodes 속성을 통해 루프
  4. 마지막으로 속성 값을 표시합니다.

다음 코드 샘플은 C#을 사용하여 3D 장면을 로드하고 읽는 방법을 보여줍니다.

// 이 코드 예제는 FBX 파일에서 3D 장면을 읽는 방법을 보여줍니다.
// Scene 클래스 객체 초기화
Scene scene = new Scene();

// 기존 3D 문서 로드
scene.Open(@"C:\Files\3D\document.fbx");

foreach(var node in scene.RootNode.ChildNodes)
{
    var entity = node.Entity;
    Console.WriteLine("{0}", entity.Name); 

    if (node.Material != null)
    {
        Material material = node.Material;
        Console.WriteLine("{0}", material.Name);

        PropertyCollection props = material.Properties;
        //foreach를 사용하여 모든 속성 나열
        foreach (var prop in props)
        {
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
        //또는 서수 for 루프 사용
        for (int i = 0; i < props.Count; i++)
        {
            var prop = props[i];
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
    }
}

무료 임시 라이센스 받기

평가 제한 없이 Aspose.3D for .NET을 사용해 볼 수 있는 임시 무료 라이선스 받기입니다.

결론

이 문서에서는 다음 방법을 배웠습니다.

  • 프로그래밍 방식으로 3D 장면을 생성합니다.
  • 실린더, 재료, 조명 등과 같은 3D 장면에 개체/개체를 추가합니다.
  • C#에서 3D 장면 하위 메모 및 속성을 읽습니다.

또한 문서를 사용하여 Aspose.3D for .NET API에 대해 자세히 알아볼 수 있습니다. 모호한 점이 있는 경우 포럼에서 언제든지 문의하십시오.

또한보십시오