צור סצנה תלת מימדית ב-C#

סצנה תלת מימדית פשוטה היא ייצוג גרפי תלת מימדי של נתונים גיאומטריים. במאמר זה, נלמד כיצד ליצור סצנה תלת מימדית באמצעות C# מאפס ללא צורך בהתקנת תוכנת מידול או רינדור תלת מימד. נשמור את סצינת התלת-ממד בפורמט קובץ FBX, פורמט קובץ תלת-ממדי פופולרי המשמש להחלפת פורמטים תלת-ממדיים. ניתן לשמור את ה-FBX בדיסק כקובץ נתונים בינארי או ASCII.

הנושאים הבאים יכוסו במאמר זה:

  1. C# 3D API ליצירת סצנה תלת מימדית - הורדה חינם
  2. צור סצינה תלת מימדית פשוטה ב-C#
  3. קרא סצינת תלת מימד באמצעות C#

C# 3D API ליצירת סצנה תלת מימדית - הורדה חינם

כדי ליצור ולקרוא סצנה תלת מימדית נשתמש ב-Aspose.3D for .NET API. זה מאפשר ליצור ולשמור סצנה תלת מימדית בפורמטים הנתמכים. זה גם מאפשר לעבוד עם גיאומטריה והיררכיית סצנה, הנפשת אובייקטים בסצנה והמרה של פורמטי קבצים תלת-ממדיים.

ה-API מספק את המחלקה Scene שהיא אובייקט ברמה העליונה שמכילה את הצמתים, הגיאומטריות, החומרים, המרקמים, ההנפשה, התנוחות, סצינות המשנה וכו’. שיטת CreateChildNode(Entity) יוצר צומת צאצא חדש עם ישות נתונה צמודה. ה-API מספק את מודל ההצללה עבור LambertMaterial, PhongMaterial ו-ShaderMaterial. האור מאיר את הסצנה, המחלקה Light של ה-API מאפשרת להוסיף קצת אור לסצנה.

אנא הורד את ה-DLL של ה-API או התקן אותו באמצעות NuGet.

PM> Install-Package Aspose.3D

צור סצנה תלת מימדית פשוטה באמצעות C#

אנו יכולים ליצור סצנה תלת מימדית פשוטה על ידי ביצוע השלבים המפורטים להלן:

  1. צור מופע של המחלקה Scene.
  2. קרא למתודה CreateChildNode() כדי להוסיף קצת גיאומטריה, צורה להצגה על המסך, למשל צילינדר.
  3. הגדר מאפייני צומת צאצא כגון חומר.
  4. אתחול אובייקט מחלקה Light.
  5. קרא למתודה CreateChildNode() כדי להוסיף ישות Light.
  6. לבסוף, שמור את הסצנה כ-FBX באמצעות שיטת Save() . הוא לוקח את נתיב קובץ הפלט ואת FileFormat.FBX7500ASCII כארגומנטים.

דוגמת הקוד הבאה מראה כיצד ליצור סצינת תלת מימד פשוטה באמצעות C#.

// דוגמה זו מדגימה כיצד ליצור סצנת תלת מימד פשוטה בקובץ FBX.
// אתחול סצינת תלת מימד
var scene = new Scene();

// אתחול אובייקט צילינדר
var cylinder = new Cylinder();
cylinder.Name = "Cylinder";

// צור צומת צאצא והוסף אובייקט צילינדר
var node = scene.RootNode.CreateChildNode(cylinder);

// הגדר מאפיינים של צומת צאצא
var material = new LambertMaterial() { DiffuseColor = new Vector3(Color.LightBlue) };
material.Name = "Lambert";
node.Material = material;

// הוסף ישות אור
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);

קרא סצינת תלת מימד באמצעות C#

אנו יכולים לקרוא סצנה תלת מימדית ממסמך ה-FBX על ידי ביצוע השלבים המפורטים להלן:

  1. צור מופע של המחלקה Scene.
  2. טען מסמך 3D קיים באמצעות שיטת Open() .
  3. עברו בלולאה בין מאפייני ChildNodes
  4. לבסוף, הצג ערכי מאפיינים.

דוגמת הקוד הבאה מראה כיצד לטעון ולקרוא סצנה תלת מימדית באמצעות C#.

// דוגמה זו מדגימה כיצד לקרוא סצנת תלת מימד מקובץ FBX
// אתחול אובייקט מחלקה Scene
Scene scene = new Scene();

// טען מסמך 3D קיים
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 עבור .NET ללא מגבלות הערכה.

סיכום

במאמר זה למדנו כיצד:

  • ליצור סצינה תלת מימדית באופן תוכניתי;
  • הוסף אובייקטים/ישויות לסצינה התלת-ממדית כגון צילינדר, חומר, אור וכו';
  • קרא הערות ומאפיינים של ילדי סצנה תלת-ממדית ב-C#.

מלבד יצירה וקריאה של סצנה תלת מימדית ב-C#, אתה יכול ללמוד עוד על Aspose.3D עבור .NET API באמצעות תיעוד. בכל מקרה של אי בהירות, אנא אל תהסס לפנות אלינו בפורום התמיכה החינמית שלנו.

ראה גם