ซึ่งในการ Set Matrix ในแต่ละขึ้นตอนมีคำสั่งที่เกี่ยวข้องดังนี้
glMatrixMode ใช้เปลี่ยนโหมดเมทริกซ์ทั้ง 4 Mode
glLoadIdentity หลังจากใช้ glMatrixMode สามารถรีเซ็ตค่าเมทริกซ์ให้เป็น Identity ซึ่งจะทำให้ไม่มีผลต่อ Vertex ในโหมดนั้นๆ
เมื่อใช้ 2 คำสั่งก่อนหน้าแล้ว เราสามารถกำหนดค่าในเมตริกซ์โดยใช้คำสั่ง
glLoadMatrix ใช้โหลดเมทริกซ์ที่เราคำนวณเองทั้งหมดลงไปได้เลย
glMultMatrix คูณเมตริซ์ที่ใช้อยู่กับเมตริกซ์ที่ให้ไป เหมาะกับการเอาไปใช้ในการแบ่งหลายๆ ขั้นตอน เช่นเอา Scale คูณ Rotate คูณ Translate ทำให้อ่านง่ายด้วย
นอกจากนี้ OpenGL ยังมีคำสั่งเฉพาะของแต่ละโหมด เพื่อปรับค่าเมตริกซ์ เพื่อให้เราไม่ต้องมาคิดคำนวณเอง
glViewport ปรับเมตริกซ์ในโหมด Viewport ปรับ aspect ratio เป็นส่วนใหญ่
glFrustum ปรับเมตริกซ์ในโหมด Perspective ใช้ปรับ Volumn การฉายภาพปรับแทนเลนส์ wide หรือ tele ได้
นอกจากนี้ยังใช้เมตริกซ์คล้าย stack เราสามารถ save Transformation Matrix ที่เราใช้งานอยู่ไว้ได้โดยการ Push เก็บไว้ใน Stack และ Pop Matrix ที่ไม่ใช้ออกไป
glPushMatrix ใช้ save ค่าเก็บไว้ใน matrix
glPopMatrix ใช้ ดึงค่า matrix ที่ save ไว้ก่อนหน้ากลับมาใช้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น