कैसे .NET में 3D दृश्यों को छवियों में रेंडर करें
.NET में 3D दृश्यों को छवियों में रेंडर करने की विधि
यह लेख बताता है कि .NET के लिए Aspose.3D का उपयोग करके 3D दृश्य से रास्टर छवि कैसे बनाई जाए। न्यूनतम सेटअप के लिए एक Camera, कम से कम एक Light, और Scene.Render को कॉल करना आवश्यक है।
चरण 1 — पैकेज स्थापित करें
dotnet add package Aspose.3D.FOSSचरण 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));चरण 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 originचरण 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 विवरणों के साथ डेवलपर गाइड
- सामग्रियों और शेडिंग के साथ काम करना — मैटेरियल सेटअप रेंडर आउटपुट को प्रभावित करता है