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

MemberDeskripsi
new Camera(projectionType)Buat kamera; gunakan ProjectionType.Perspective atau Orthographic
camera.FieldOfViewYBidang pandang vertikal dalam derajat (hanya perspektif)
camera.NearPlaneJarak bidang pemotongan dekat
camera.FarPlaneJarak bidang pemotongan jauh
new Light(name)Buat sumber cahaya
light.LightTypeDirectional, Point, atau Spot
light.IntensityIntensitas cahaya (float positif)
light.ColorWarna 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

 Bahasa Indonesia