3D Sahneleri Renderleme
3D Sahneleri Renderleme
Aspose.3D for .NET bir sahneyi raster görüntüsüne renderlayabilir. Render hattı bir Camera (görüş noktası), bir veya daha fazla Light kaynağı ve ImageRenderOptions (çıktı çözünürlüğü ve formatı) gerektirir. Renderer sınıfı render geçişini yürütür.
Kamera Kurulumu
Camera varlığını bir sahne düğümüne ekleyin. Kameranın konumunu düğümün Transform aracılığıyla ayarlayın ve LookAt kullanarak bir hedefe yönlendirin:
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);Ortografik renderlama için, ProjectionType.Orthographic ayarlayın ve OrthoHeight belirtin.
Işık Ekleme
Işıksız sahneler tamamen karanlık renderlanır. Geometriyi aydınlatmak için en az bir Light ekleyin:
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);Görüntü Dosyasına Renderleme
PNG, JPEG veya BMP görüntüsü üretmek için Scene.Render ile ImageRenderOptions kullanın:
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");İpucu: Üretim kullanımında, en az bir yönsel veya ortam ışığının mevcut olduğundan emin olun. Aydınlatılmamış bir sahne, malzemeye bağlı olarak bir siluet ya da tamamen siyah bir yüzey olarak render edilir.
API Quick Reference
| Member | Açıklama |
|---|---|
new Camera(projectionType) | Bir kamera oluşturun; ProjectionType.Perspective veya Orthographic kullanın |
camera.FieldOfViewY | Dikey görüş alanı derece cinsinden (yalnızca perspektif) |
camera.NearPlane | Yakın kırpma düzlemi mesafesi |
camera.FarPlane | Uzak kırpma düzlemi mesafesi |
new Light(name) | Bir ışık kaynağı oluştur |
light.LightType | Directional, Point, veya Spot |
light.Intensity | Işık yoğunluğu (pozitif float) |
light.Color | RGB rengi Vector3 olarak |
new ImageRenderOptions() | Render çıktı yapılandırması (arka plan rengi, gölgeler) |
scene.Render(camera, path, size, format) | Kamera bakış açısından sahneyi renderla; size Vector2dır, format "png"dır, "jpg", vb. |
Ayrıca Bakınız
- Aspose.3D for .NET — Enterprise Documentation
- Materyaller ve Gölgelendirme ile Çalışma — PBR ve Phong malzemeleri render çıktısını etkiler