.NET에서 3D 장면을 이미지로 렌더링하는 방법
.NET에서 3D 장면을 이미지로 렌더링하는 방법
이 문서에서는 .NET에 대해 Aspose.3D을 사용하여 3D 장면에서 래스터 이미지를 생성하는 방법을 설명합니다. 최소 설정에는 Camera, 최소 하나의 Light, 그리고 Scene.Render 호출이 필요합니다.
Step 1 — 패키지 설치
dotnet add package Aspose.3D.FOSSStep 2 — 장면 로드 또는 빌드
using Aspose.ThreeD;
using Aspose.ThreeD.Entities;
// Load an existing model
var scene = Scene.FromFile("model.fbx");
// Or build a scene in code
var scene = new Scene();
scene.RootNode.CreateChildNode("box", new Box(1, 1, 1));Step 3 — 카메라 추가
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Utilities;
var camera = new Camera(ProjectionType.Perspective);
camera.FieldOfViewY = 45.0;
camera.NearPlane = 0.1;
camera.FarPlane = 500.0;
Node camNode = scene.RootNode.CreateChildNode("camera", camera);
camNode.Transform.Translation = new Vector3(0, 5, 10);
camNode.Transform.EulerAngles = new Vector3(-30, 0, 0); // tilt down toward originStep 4 — 조명 추가
var sun = new Light("sun") { LightType = LightType.Directional };
Node sunNode = scene.RootNode.CreateChildNode("sun", sun);
sunNode.Transform.EulerAngles = new Vector3(45, -30, 0);
var fill = new Light("fill") { LightType = LightType.Point, Intensity = 100 };
Node fillNode = scene.RootNode.CreateChildNode("fill", fill);
fillNode.Transform.Translation = new Vector3(-4, 6, 4);5단계 — 이미지 파일로 렌더링
using Aspose.ThreeD.Utilities;
// size is Vector2; format is a string ("png", "jpg", "bmp")
scene.Render(camera, "output.png", new Vector2(1280, 720), "png");
Console.WriteLine("Rendered: output.png");팁: JPEG은 스크린샷에 대해 더 작은 파일을 생성합니다. 사용
"jpg"대신에"png"무손실 품질이 필요하지 않을 때.
Troubleshooting
| Symptom | 가능한 원인 | 수정 |
|---|---|---|
| 검은색 출력 이미지 | 장면에 조명이 없습니다 | 최소 하나의 Light 노드를 추가하십시오 |
| 객체가 보이지 않음 | 카메라가 잘못된 방향을 가리키고 있음 | LookAt 목표 좌표를 확인하십시오 |
| 장면이 빈 화면으로 렌더링됩니다 | 기하학이 노드에 연결되지 않음 | CreateChildNode(name, entity)를 호출하십시오 |
관련 리소스
- 3D 장면 렌더링 — 전체 API 세부 정보를 포함한 개발자 가이드
- 재료 및 셰이딩 작업 — 재료 설정이 렌더 출력에 영향을 줍니다