30 เมษายน 2553

Coordinate Transformation ใน OpenGL

Coordinate Transformation ใน OpenGL
ใน OpenGl มี Transformation 5 แบบคือ
Transformation
การใช้งาน
Viewing
ใช้เซ็ตตำแหน่งกล้องหรือตา
Modeling
ใช้กับตำแหน่งของวัตถุ
ModelView
อธิบายความสัมพันธ์ระหว่า View กับ Model
Projection
กำหนด Viewing Volume
Viewport
Scales ภาพบนก่อนฉายบนจอ

สามารถแสดงเป็นขั้นตอนดังนี้

Eye Coordinate คือ ไม่ใช่ Coordinateจริงๆ แต่เอาไว้อ้างอิงเพื่อสร้างภาพขึ้นมา โดยการเคลื่อนย้ายวัตถุแต่ละอย่างก็เช่นจะทำการหมุน ก็จะใช้ Eye Coordinate ตัวนี้แหละเป็นตัวอ้างอิง

ภาพการหมุน 45องศาโดยอ้างอิงจากeye coordinate

Viewing Transformation คือ Transformation แรกของ OpenGl ทำหน้าที่ย้ายจุดจาก Coordinate ที่ใช้อยู่ อ้างอิงกับแกนของ Eye Coordinate

Modeling Transformations ใช้สร้าง Model ทำการย่อขยาย เลื่อน หมุน

Projection Transformations ใช้สร้างภาพบนจอจาก Model หรือการแปลงจาก 3 มิติ ให้เหลือ 2 มิติ มีแบบ Orthographic และแบบ Perspective ซึ่งใน Thesis จะใช้แบบ Perspective เท่านั้น คือภาพจะใหญ่เมื่อใกล้ตา และจะเล็กเมื่ออยู่ไกลตา เราควบคุมเมตริซ์นี้โดยการกำหนด Viewing Volume

Viewport Transformations
ใช้ย่อขยายปรับ aspect ratio ของภาพ 2 มิติ ให้เหมาะสมกับขนาดของ Windows ที่แสดงผล จะmap ระหว่าง logical กับจอภาพที่เป็น Physical


2 ความคิดเห็น:

buycheaplamp กล่าวว่า...

ขอบคุณมากครับสำหรับความรู้

Unknown กล่าวว่า...

ยินดีครับ(ภาษาเหนือแปลว่าขอบคุณครับ)