กลับสู่โค้ดโปรแกรมที่ได้เขียนไว้แล้วในPyOgre Beginner Tutorial 1 - Part 1 โดยจะปรับปรุงเพิ่มโค้ดในส่วน ของฟังก์ชั่น _createScene โดยสิ่งแรกที่จะทำคือการเซต ambient light สำหรับ Scene เพื่อที่จะทำให้เราสามารถมองเห็นใน Scene ได้ว่าเรากำลังทำอะไรอยู่ โดยจะทำการเรียกฟังก์ชั่น setAmbientLight และทำการตั้งค่าสีของแสงตามที่เราต้องการ โดยให้จำไว้ว่า ค่าที่จะใส่นั้นจะเรียง red, green, blue และมีค่าในช่วงระหว่าง 0-1
sceneManager = self.sceneManager sceneManager.ambientLight = ogre.ColourValue(1, 1, 1)
ขั้นต่อไปเราจะทำการสร้าง Entity ที่จะให้ปรากฏบนจอ เราทำโดยการเรียก
ent1 = sceneManager.createEntity('Robot', 'robot.mesh')
คำบางคำถามเกิดขึ้น ก่อนอื่น self.sceneManager มาจากไหนและเราเรียก createEntity ด้วยอะไร self.sceneManager นั้นเป็นตัวแปร ที่มีส่วนของ SceneManager object ปัจจุบัน (ถูกประกาศไว้ใน SampleFramework.Application )
ค่าพารามิเตอร์ตัวแรกสำหรับแมทอด createEntity ก็คือชื่อของ Entity ที่ต้องการสร้างขึ้น ตามด้วยชื่อโมเดล
เราสามารถทำให้สร้างสิ่งที่สร้าง เกิดปรากฏบนจอได้ เราต้องสร้าง SceneNode เพื่อนำมันมาผูกติดโดยเหตุนี้ทุกๆ SceneManager จึงมีหนึ่ง root SceneNode เป็นตัวหลัก เราสามารถสร้าง node ย่อยผูกต่อโดย
node1 = sceneManager.rootSceneNode.createChildSceneNode('RobotNode')
ในส่วนของโค้ดนี้เราได้เรียก method createChildSceneNode ของ root SceneNode ค่าที่ผ่านสู่ createChildSceneNode คือชื่อของ SceneNode ที่เราสร้าง คล้ายในส่วนของ Entity class และ SceneNode ไม่สามารถมีชื่อเดียวกันได้
ขั้นสุดท้ายเราต้องทำการผูก Entity เข้ากับ SceneNode ดังนั้น Robot จึงมีตำแหน่งที่จะเรนเดอร์ที่
node1.attachObject(ent1)
โค้ดที่ได้จากของเดิมจะเป็น
import ogre.renderer.OGRE as ogre import SampleFramework as sf class TutorialApplication(sf.Application): def _createScene(self): sceneManager = self.sceneManager sceneManager.ambientLight = ogre.ColourValue(1, 1, 1) ent1 = sceneManager.createEntity('Robot','robot.mesh') node1 = sceneManager.rootSceneNode.createChildSceneNode('RobotNode') node1.attachObject(ent1) if __name__ == '__main__': ta = TutorialApplication() ta.go()
และเมื่อทำการทดสอบ Run โค้ดที่สร้างคุณจะเห็นตัวหุ่นยนต์ปรากฏอยู่บนหน้าจอ
หมายเหตุ โค้ดโปรแกรมที่เขียนทดสอบต้องบันทึกใน C:\PythonOgre\demos\ogre เพื่อการอ้างอิงค่าคอนฟิกของโปรแกรมเดิมและโมเดล 3d ที่เรียกใช้ทดสอบโปรแกรม
ไม่มีความคิดเห็น:
แสดงความคิดเห็น