סצנה תלת מימדית פשוטה היא ייצוג גרפי תלת מימדי של נתונים גיאומטריים. במאמר זה, נלמד כיצד ליצור סצנה תלת מימדית באמצעות C# מאפס ללא צורך בהתקנת תוכנת מידול או רינדור תלת מימד. נשמור את סצינת התלת-ממד בפורמט קובץ FBX, פורמט קובץ תלת-ממדי פופולרי המשמש להחלפת פורמטים תלת-ממדיים. ניתן לשמור את ה-FBX בדיסק כקובץ נתונים בינארי או ASCII.
הנושאים הבאים יכוסו במאמר זה:
- C# 3D API ליצירת סצנה תלת מימדית - הורדה חינם
- צור סצינה תלת מימדית פשוטה ב-C#
- קרא סצינת תלת מימד באמצעות 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#
אנו יכולים ליצור סצנה תלת מימדית פשוטה על ידי ביצוע השלבים המפורטים להלן:
- צור מופע של המחלקה Scene.
- קרא למתודה CreateChildNode() כדי להוסיף קצת גיאומטריה, צורה להצגה על המסך, למשל צילינדר.
- הגדר מאפייני צומת צאצא כגון חומר.
- אתחול אובייקט מחלקה Light.
- קרא למתודה CreateChildNode() כדי להוסיף ישות Light.
- לבסוף, שמור את הסצנה כ-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 על ידי ביצוע השלבים המפורטים להלן:
- צור מופע של המחלקה Scene.
- טען מסמך 3D קיים באמצעות שיטת Open() .
- עברו בלולאה בין מאפייני ChildNodes
- לבסוף, הצג ערכי מאפיינים.
דוגמת הקוד הבאה מראה כיצד לטעון ולקרוא סצנה תלת מימדית באמצעות 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 באמצעות תיעוד. בכל מקרה של אי בהירות, אנא אל תהסס לפנות אלינו בפורום התמיכה החינמית שלנו.