ชนิดของโมเดลที่ Irrlicht รองรับ
ประเภ่ท |
รายละเอียด |
.X |
เป็นไฟล์มาตรฐานที่ถูกสร้างขึ้นมาสำหรับ DirectX เป็นที่นิยมมากมั้งยังแสดงผลได้ทั้งโมเดลธรรมดาและแบบที่มีอนิเมชั่นได้ |
.MD2 |
เป็นไฟล์โมเดลจากเกม Quake2 พัฒนาโดย บริษัท ID Software |
.MD3 |
เป็นไฟล์โมเดลจากเกม Quake3 โดยมีรายละเอียดปลีกย่อยที่ดีกว่าMD2 |
.MS3D |
เป็น ไฟล์โมเดลจากโปรแกรม MilkShape3Dเป็นโปรแกรมที่นิยมในการสร้างโมเดลเพราะรองรับ import exportโมเดลหลากหลายอีกทั้งค่าลิขสิทธ์ไม่แพง จึงทำให้ถูกใจบรรดานักพัฒนาเกมต่างๆ |
.B3D |
ไฟล์โมเดลจาก Bliz3D Engine แสดงผลได้ทั้งแบบธรรมดาและมีอนิเมชั่นได้ |
.MESH |
ไฟล์โมเดลจากโปรแกรม Ogre3D แสดงผลได้ทั้งแบบธรรมดาและมีอนิเมชั่นได้
|
วิธีการโหลดโมเดล
โหลดไฟล์โมเดลตัวอย่างที่จะนำไปใช้ได้ที่นี่เลยครับ
โหลดไฟล์โมเดลแล้วนำไปใส่ไว้ใน Folder โปรเจคของเรา
เริ่มแรกให้เรา ไปที่ช่วง
// ------------------------------------------------------------------ // Global Variables // ------------------------------------------------------------------
ในส่วนนี้มีไว้ประกาศตัวแปรที่เราจะใช้ครับหลังจากนั้นให้เพิ่มคำสั่งตามด้านล่างเลยครับ
ICameraSceneNode* camera;
ประกาศตัวแปรเอาไว้ควบคุมกล้อง
IAnimatedMesh* model;
ประกาศตัวแปรสำหรับเอาไว้โหลดโมเดล
IAnimatedMeshSceneNode* node;
ประกาศตัวแปรสำหรับควบคุมโมเดล ในการเปลี่ยนตำแหน่งหรือย่อขยายขนาด
หลังจากนั้นให้ไปที่ฟังชั่น Init() ครับ เป็นส่วนที่จะนำตัวแปรที่เราประกาศไว้ด้านบนมาใส่ค่าให้เราใส่ไปตามนี้เลยครับ
camera = g_engine.smgr->addCameraSceneNodeFPS();
สร้างมุมกล้องแบบมุมมองบุคคลที่1(FPS = First Person Shooting) เราสามารถใช้ลูกศรบนคีย์บอร์ดและเมาในการควบคุมทิศทาง
model = g_engine.smgr->getMesh("jet.x");
เป็นการโหลดโมเดล jet.x ของเราไปเก็บไว้ในตัวแปร model
node = g_engine.smgr->addAnimatedMeshSceneNode( model );
ใส่ model ของเราลงไปในตัวควบคุมเพื่อใช้ในการอ้างอิงเวลาเรา เปลี่ยนตำแหน่งหรือย่อขยายขนาด
node->setMaterialFlag(EMF_LIGHTING, false);
เรียกตัวควบคุมmodelที่ชื่อnodeให้ set พื้นผิวของโมเดลไม่ให้มีการกระทบของแสง
node->setPosition( core::vector3df(0, -1 , 4) );
เรียกตัวควบคุมmodelที่ชื่อnodeให้ setตำแหน่งของเครื่องบินในแกน XYZ ให้อยู่ที่ 0,-1,4 ตามลำดับ
หลังจากที่ทำเสดแล้วกด F5 หากไม่มี ERROR ใดๆ ก็จะปรากฏผลตามภาพด้านล่าง
|