كيفية تحويل المشاهد ثلاثية الأبعاد إلى صور في .NET
كيفية تحويل المشاهد ثلاثية الأبعاد إلى صور في .NET
تشرح هذه المقالة كيفية إنتاج صورة نقطية من مشهد ثلاثي الأبعاد باستخدام Aspose.3D لـ .NET. يتطلب الحد الأدنى من الإعداد 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) |
الموارد ذات الصلة
- تصيير المشاهد ثلاثية الأبعاد — دليل المطور مع تفاصيل API كاملة
- العمل مع المواد والتظليل — إعداد المادة يؤثر على ناتج التصيير