PyOpenGL Programming

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

OpenGL (ย่อมาจาก Open Graphics Library) เป็น Application Programming Interface (API) สำหรับควบคุม Graphics Processing Unit (GPU) ที่ใช้กันอย่างแพร่หลายในปัจจุบัน (เนื่องจากมี API แบบนี้ในโลกอยู่แค่สองตัว คือ OpenGL และ DirectX) จริงๆ แล้ว OpenGL เขียนขึ้นมาครั้งแรกเพื่อใช้กับภาษา C แต่หลังจากนั้นก็มีคนเขียนซอฟต์แวร์เพิ่มเติมให้ใ้ช้ OpenGL กับภาษาอื่นๆ เช่น Java, Pascal, Ruby, ฯลฯ ได้ PyOpenGL เป็นไลบรารีที่ทำให้ภาษาไพทอนใช้ OpenGL ได้ เอกสารนี้จะสอนวิธีการเขียนใช้ PyOpenGL สร้างโปรแกรมเพื่อแสดงภาพสองมิติและสามมิติอย่างง่ายๆ

หากท่านต้องการอ่านเอกสารนี้ให้ได้อรรถรสมากที่สุด กรุณาใช้ Crunchy คุณสามารถดูวิดิทัศน์แสดงการติดตั้งและใช้ Crunchy ได้ที่นี่: วิธีการติดตั้งภาษา Python และ Crunchy

การติดตั้ง PyOpenGL

ก่อนติดตั้ง PyOpenGL คุณจะต้องติดตั้งภาษาไพทอนไว้ก่อนแล้ว เราแนะนำให้ติดตั้งภาษาไพทอนเวอร์ชัน 2.5.2 เนื่องจากมันเป็นเวอร์ชันที่ Crunchy สามารถทำงานร่วมด้วยอย่างราบรื่น

คุณสามารถดูวิดิทัศน์แสดงวิธีการติดตั้ง PyOpenGL ได้ที่นี่: http://access.cs.sci.ku.ac.th/~pramook/install-pyopengl/

OpenGL

ผู้ใช้ OpenGL สามารถใช้มันวาดรูปทรงสองมิติหรือสามมิติได้ โดยระุบุรูปทรงและรูปร่างพื้นฐาน เช่น จุด เส้น และรูปหลายเหลี่ยม เป็นต้น แล้ว OpenGL จะทำหน้าที่สร้างภาพสามมิตินั้นไว้บนหน่วยความจำที่่เรียกว่า framebuffer ซึ่งเก็บข้อมูลสีของแต่ละ pixel บนหน้าจอเอาไว้

OpenGL เป็นไลบรารีที่เหมาะสมต่อการสร้างโปรแกรมที่มีการตอบสนองต่อผู้ใช้แบบทันทีทันควัน (interactive) เนื่องจากการวาดรูปใช้ GPU จึงทำได้อย่างรวดเร็ว แต่ GPU เองไม่สามารถสร้างรูปที่มีรายละเอียดสูง หรือมีการกระจายตัวของแสงในฉากที่ซับซ้อนได้ จึงไม่เหมาะสำหรับใช้สร้างภาพนิ่งคุณภาพสูงหรือภาพยนตร์สามมิติต่างๆ

OpenGL ทำหน้าที่สั่ง GPU ให้วาดรูปเท่านั้น มันไม่ได้จัดการการติดต่อกับผู้ใช้ ไม่ได้จัดการวินโดว์ที่โปรแกรมใช้ และมันก็ไม่สามารถหา framebuffer มาใช้เองได้ ดังนั้นต้องมีโค้ดส่วนอื่นมาจัดการเรื่องพวกนี้ให้

GLUT

GLUT ย่อมาจาก OpenGL Utility Toolkit