ایجاد صحنه سه بعدی با استفاده از سی شارپ

یک صحنه سه بعدی ساده یک نمایش گرافیکی سه بعدی از داده های هندسی است. در این مقاله یاد می گیریم که چگونه با استفاده از سی شارپ از ابتدا یک صحنه سه بعدی بدون نیاز به نصب نرم افزار مدل سازی یا رندر سه بعدی بسازیم. ما صحنه سه بعدی را در قالب فایل FBX ذخیره خواهیم کرد، یک فرمت فایل سه بعدی محبوب که برای تبادل فرمت های سه بعدی استفاده می شود. FBX را می توان بر روی یک دیسک به عنوان یک فایل داده باینری یا ASCII ذخیره کرد.

موضوعات زیر در این مقاله پوشش داده خواهد شد:

  1. C# API برای ایجاد صحنه سه بعدی - دانلود رایگان
  2. ایجاد یک صحنه سه بعدی ساده در سی شارپ
  3. خواندن صحنه سه بعدی با استفاده از C#

C# API برای ایجاد صحنه سه بعدی - دانلود رایگان

برای ایجاد و خواندن یک صحنه سه بعدی، از API Aspose.3D for .NET استفاده خواهیم کرد. این امکان ایجاد و ذخیره یک صحنه سه بعدی در [فرمت های پشتیبانی شده] را فراهم می کند. همچنین امکان کار با هندسه و سلسله مراتب صحنه، متحرک سازی اشیاء در یک صحنه و تبدیل فرمت های فایل سه بعدی را فراهم می کند.

API کلاس Scene را ارائه می‌کند که یک شی سطح بالا است که شامل گره‌ها، هندسه‌ها، متریال‌ها، بافت‌ها، انیمیشن‌ها، ژست‌ها، صحنه‌های فرعی و غیره است. روش CreateChildNode(Entity) یک گره فرزند جدید با یک موجودیت داده شده متصل ایجاد می کند. API مدل سایه‌زنی LambertMaterial، PhongMaterial و ShaderMaterial را ارائه می‌کند. نور صحنه را روشن می کند، کلاس Light API امکان افزودن مقداری نور به صحنه را فراهم می کند.

لطفاً یا DLL API را دانلود کنید یا با استفاده از NuGet آن را نصب کنید.

PM> Install-Package Aspose.3D

ایجاد یک صحنه سه بعدی ساده در سی شارپ

با دنبال کردن مراحل زیر می توانیم یک صحنه سه بعدی ساده ایجاد کنیم:

  1. یک نمونه از کلاس Scene ایجاد کنید.
  2. متد CreateChildNode() را فراخوانی کنید تا هندسه، شکلی که روی صفحه نمایش داده شود، به عنوان مثال سیلندر اضافه کنید.
  3. ویژگی های گره فرزند مانند Material را تنظیم کنید.
  4. یک شی کلاس Light را راه اندازی کنید.
  5. برای افزودن موجودیت Light، متد CreateChildNode() را فراخوانی کنید.
  6. در نهایت با استفاده از متد Save() صحنه را به صورت FBX ذخیره کنید. مسیر فایل خروجی و FileFormat.FBX7500ASCII را به عنوان آرگومان می گیرد.

نمونه کد زیر نحوه ایجاد یک صحنه سه بعدی ساده با استفاده از سی شارپ را نشان می دهد.

// این مثال کد نحوه ایجاد یک صحنه سه بعدی ساده در فایل FBX را نشان می دهد.
// راه اندازی صحنه 3 بعدی
var scene = new Scene();

// شیء سیلندر را مقدار دهی اولیه کنید
var cylinder = new Cylinder();
cylinder.Name = "Cylinder";

// یک گره فرزند ایجاد کنید و شی Cylinder را اضافه کنید
var node = scene.RootNode.CreateChildNode(cylinder);

// ویژگی های گره فرزند را تنظیم کنید
var material = new LambertMaterial() { DiffuseColor = new Vector3(Color.LightBlue) };
material.Name = "Lambert";
node.Material = material;

// موجودیت Light را اضافه کنید
var light = new Light() { LightType = LightType.Point };
light.Name = "Light";
scene.RootNode.CreateChildNode(light).Transform.Translation = new Vector3(10, 0, 10);

// مسیر فایل خروجی
var output = @"C:\Files\3D\document.fbx";

// سند صحنه سه بعدی را ذخیره کنید
scene.Save(output, FileFormat.FBX7500ASCII);

خواندن صحنه سه بعدی با استفاده از سی شارپ

با دنبال کردن مراحل زیر می توانیم یک صحنه سه بعدی را از سند FBX بخوانیم:

  1. یک نمونه از کلاس Scene ایجاد کنید.
  2. یک سند سه بعدی موجود را با استفاده از روش Open() بارگیری کنید.
  3. از طریق ویژگی های ChildNodes حلقه بزنید
  4. در نهایت، مقادیر ویژگی را نمایش دهید.

نمونه کد زیر نحوه بارگذاری و خواندن یک صحنه سه بعدی با استفاده از C# را نشان می دهد.

// این مثال کد نحوه خواندن یک صحنه سه بعدی از فایل FBX را نشان می دهد
// یک شی کلاس Scene را راه اندازی کنید
Scene scene = new Scene();

// یک سند سه بعدی موجود را بارگیری کنید
scene.Open(@"C:\Files\3D\document.fbx");

foreach(var node in scene.RootNode.ChildNodes)
{
    var entity = node.Entity;
    Console.WriteLine("{0}", entity.Name); 

    if (node.Material != null)
    {
        Material material = node.Material;
        Console.WriteLine("{0}", material.Name);

        PropertyCollection props = material.Properties;
        //با استفاده از foreach تمام خواص را فهرست کنید
        foreach (var prop in props)
        {
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
        //یا از حلقه ترتیبی برای حلقه استفاده کنید
       for (int i = 0; i < props.Count; i++)
        {
            var prop = props[i];
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
    }
}

مجوز موقت رایگان دریافت کنید

برای امتحان Aspose.3D برای دات نت بدون محدودیت ارزیابی، می توانید یک مجوز موقت رایگان دریافت کنید.

نتیجه

در این مقاله یاد گرفتیم که چگونه:

  • ایجاد یک صحنه 3 بعدی به صورت برنامه ریزی شده
  • اضافه کردن اشیا / موجودیت ها به صحنه سه بعدی مانند سیلندر، مواد، نور و غیره.
  • یادداشت ها و ویژگی های کودک صحنه سه بعدی را در سی شارپ بخوانید.

علاوه بر این، می‌توانید با استفاده از مستندات درباره Aspose.3D for .NET API اطلاعات بیشتری کسب کنید. در صورت وجود هرگونه ابهامی، لطفاً با ما در [تالار گفتمان17 تماس بگیرید.

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