چگونه صحنه‌های سه‌بعدی را به تصویر رندر کنیم در .NET

چگونه صحنه‌های سه‌بعدی را به تصویر رندر کنیم در .NET

چگونه صحنه‌های سه‌بعدی را به تصویر در .NET رندر کنیم

این مقاله توضیح می‌دهد چگونه می‌توان یک تصویر رستر از یک صحنه سه‌بعدی با استفاده از Aspose.3D برای .NET تولید کرد. حداقل تنظیمات به یک Camera، حداقل یک Light، و یک فراخوانی به Scene.Render نیاز دارد.


مرحله ۱ — نصب بسته

dotnet add package Aspose.3D.FOSS

مرحله ۲ — بارگذاری یا ساخت یک صحنه

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));

مرحله ۳ — افزودن دوربین

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

مرحله ۴ — افزودن نورها

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)

منابع مرتبط

همچنین ببینید:

 فارسی