Merender Adegan 3D
Merender Adegan 3D
Aspose.3D untuk .NET dapat merender adegan menjadi gambar raster. Pipeline rendering memerlukan Camera (titik pandang), satu atau lebih sumber Light, dan ImageRenderOptions (resolusi output dan format). Kelas Renderer mengendalikan proses render.
Menyiapkan Kamera
Tambahkan entitas Camera ke node adegan. Atur posisi kamera melalui Transform node, dan arahkan ke target menggunakan LookAt:
using Aspose.ThreeD;
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Utilities;
var scene = new Scene();
// Create the camera entity
var camera = new Camera(ProjectionType.Perspective);
camera.NearPlane = 0.1;
camera.FarPlane = 1000.0;
camera.FieldOfViewY = 45.0;
// Attach to a node and position it
Node cameraNode = scene.RootNode.CreateChildNode("main_camera", camera);
cameraNode.Transform.Translation = new Vector3(0, 5, 10);
// Aim the camera toward the scene origin by rotating around the X axis
cameraNode.Transform.EulerAngles = new Vector3(-30, 0, 0);Untuk rendering ortografis, atur ProjectionType.Orthographic dan tentukan OrthoHeight.
Menambahkan Cahaya
Adegan tanpa cahaya akan ter-render sepenuhnya gelap. Tambahkan setidaknya satu Light untuk menerangi geometri:
using Aspose.ThreeD.Entities;
// Directional (sun-like) light
var sunLight = new Light("sun");
sunLight.LightType = LightType.Directional;
sunLight.Color = new Vector3(1.0, 1.0, 0.95); // slightly warm white
Node sunNode = scene.RootNode.CreateChildNode("sun", sunLight);
sunNode.Transform.EulerAngles = new Vector3(45, -30, 0); // direction in degrees
// Point light
var pointLight = new Light("fill");
pointLight.LightType = LightType.Point;
pointLight.Intensity = 150.0;
Node pointNode = scene.RootNode.CreateChildNode("fill_light", pointLight);
pointNode.Transform.Translation = new Vector3(-3, 4, 3);Rendering ke File Gambar
Gunakan Scene.Render dengan ImageRenderOptions untuk menghasilkan gambar PNG, JPEG, atau BMP:
using Aspose.ThreeD;
using Aspose.ThreeD.Utilities;
// Render to a PNG file at 1280x720 — size is Vector2, format is a string
scene.Render(camera, "output.png", new Vector2(1280, 720), "png");Tip: Untuk penggunaan produksi, pastikan setidaknya satu cahaya arah atau ambient ada. Adegan yang tidak diterangi akan dirender sebagai siluet atau permukaan hitam pekat tergantung pada material.
API Quick Reference
| Member | Deskripsi |
|---|---|
new Camera(projectionType) | Buat kamera; gunakan ProjectionType.Perspective atau Orthographic |
camera.FieldOfViewY | Bidang pandang vertikal dalam derajat (hanya perspektif) |
camera.NearPlane | Jarak bidang pemotongan dekat |
camera.FarPlane | Jarak bidang pemotongan jauh |
new Light(name) | Buat sumber cahaya |
light.LightType | Directional, Point, atau Spot |
light.Intensity | Intensitas cahaya (float positif) |
light.Color | Warna RGB sebagai Vector3 |
new ImageRenderOptions() | Konfigurasi output render (warna latar belakang, bayangan) |
scene.Render(camera, path, size, format) | Render adegan dari sudut pandang kamera; size adalah Vector2, format adalah "png", "jpg", dll. |
Lihat Juga
- Aspose.3D for .NET — Enterprise Documentation
- Bekerja dengan Material dan Shading — Material PBR dan Phong memengaruhi output render