Cách Render Các Cảnh 3D Thành Hình Ảnh trong .NET
Cách Render Cảnh 3D thành Hình ảnh trong .NET
Bài viết này giải thích cách tạo một hình ảnh raster từ một cảnh 3D bằng cách sử dụng Aspose.3D cho .NET. Cấu hình tối thiểu yêu cầu một Camera, ít nhất một Light, và một lời gọi tới Scene.Render.
Bước 1 — Cài đặt Gói
dotnet add package Aspose.3D.FOSSBước 2 — Tải hoặc Xây dựng một Cảnh
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));Bước 3 — Thêm Camera
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 originBước 4 — Thêm Đèn
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);Bước 5 — Kết xuất thành Tệp Hình Ảnh
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");Mẹo: JPEG tạo ra các tệp nhỏ hơn cho ảnh chụp màn hình. Sử dụng
"jpg"thay vì"png"khi không yêu cầu chất lượng không mất dữ liệu.
Troubleshooting
| Symptom | Nguyên nhân có thể | Khắc phục |
|---|---|---|
| Hình ảnh đầu ra màu đen | Không có ánh sáng trong cảnh | Thêm ít nhất một nút Light |
| Đối tượng không hiển thị | Camera hướng sai | Kiểm tra tọa độ mục tiêu của LookAt |
| Cảnh render trống | Hình học chưa được gắn vào nút | Gọi CreateChildNode(name, entity) |
Tài nguyên liên quan
- Đang render các cảnh 3D — hướng dẫn nhà phát triển với đầy đủ chi tiết API
- Làm việc với Vật liệu và Đổ bóng — cài đặt vật liệu ảnh hưởng đến kết quả render