간단한 3D 장면은 기하학적 데이터의 3차원 그래픽 표현입니다. 이 기사에서는 3D 모델링 또는 렌더링 소프트웨어를 설치할 필요 없이 처음부터 C#을 사용하여 3D 장면을 만드는 방법을 배웁니다. 3D 장면을 3D 형식을 교환하는 데 사용되는 인기 있는 3D 파일 형식인 FBX 파일 형식으로 저장합니다. FBX는 바이너리 또는 ASCII 데이터 파일로 디스크에 저장할 수 있습니다.
이 기사에서는 다음 주제를 다룹니다.
3D 장면을 만드는 C# API - 무료 다운로드
3D 장면을 만들고 읽기 위해 Aspose.3D for .NET API를 사용합니다. 지원되는 형식으로 3D 장면을 만들고 저장할 수 있습니다. 또한 지오메트리 및 장면 계층으로 작업하고, 장면에서 개체를 애니메이션하고, 3D 파일 형식을 변환할 수 있습니다.
API는 노드, 지오메트리, 재질, 텍스처, 애니메이션, 포즈, 하위 장면 등을 포함하는 최상위 개체인 Scene 클래스를 제공합니다. CreateChildNode(Entity) 메서드 지정된 엔터티가 연결된 새 자식 노드를 만듭니다. API는 LambertMaterial, PhongMaterial 및 ShaderMaterial에 대한 음영 처리 모델을 제공합니다. 빛이 장면을 비추고 API의 Light 클래스를 사용하면 장면에 약간의 빛을 추가할 수 있습니다.
API의 DLL 다운로드 또는 NuGet을 사용하여 설치하십시오.
PM> Install-Package Aspose.3D
C#에서 간단한 3D 장면 만들기
아래 단계에 따라 간단한 3D 장면을 만들 수 있습니다.
- Scene 클래스의 인스턴스를 만듭니다.
- CreateChildNode() 메서드를 호출하여 Cylinder와 같이 화면에 표시할 모양인 일부 기하 도형을 추가합니다.
- Material과 같은 자식 노드 속성을 설정합니다.
- Light 클래스 개체를 초기화합니다.
- CreateChildNode() 메서드를 호출하여 Light 엔터티를 추가합니다.
- 마지막으로 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 장면을 읽을 수 있습니다.
- Scene 클래스의 인스턴스를 만듭니다.
- Open() 메서드를 사용하여 기존 3D 문서를 로드합니다.
- ChildNodes 속성을 통해 루프
- 마지막으로 속성 값을 표시합니다.
다음 코드 샘플은 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에 대해 자세히 알아볼 수 있습니다. 모호한 점이 있는 경우 포럼에서 언제든지 문의하십시오.