วิธีการใช้ GLUT Bitmap Fonts
ในแอปพลิเคชัน OpenGL ของคุณ
เมื่อพัฒนาแอปพลิเคชันกราฟิกโดยใช้ OpenGL การเรนเดอร์ข้อความอาจเป็นเรื่องท้าทาย โดยเฉพาะหากคุณต้องการหลีกเลี่ยงการสร้างระบบการเรนเดอร์ฟอนต์ของคุณเอง โชคดีที่ GLUT
มีทางออกที่ง่ายดายผ่าน bitmap fonts ที่สามารถใช้ภายในแอปพลิเคชันของคุณ บล็อกโพสต์นี้จะชี้แนะคุณเกี่ยวกับวิธีการนำไปใช้และแสดงข้อความด้วย GLUT bitmap fonts ได้อย่างง่ายดาย
GLUT Bitmap Fonts คืออะไร?
GLUT bitmap fonts เป็นฟอนต์ 2 มิติพื้นฐานที่มาพร้อมกับเครื่องมือ GLUT ฟอนต์เหล่านี้ไม่ได้ออกแบบมาใช้งานในสภาพแวดล้อมสามมิติ แต่ทำงานได้อย่างสมบูรณ์แบบในการแสดงข้อความทับในหน้าต่างแสดงผล OpenGL ของคุณ
การเตรียมแอปพลิเคชัน OpenGL ของคุณ
เพื่อแสดงข้อความโดยใช้ GLUT bitmap fonts คุณจำเป็นต้องตั้งค่า OpenGL context ของคุณอย่างเหมาะสม นี่คือวิธีการทำทีละขั้นตอน:
ขั้นตอนที่ 1: ตั้งค่าพรอเจคชั่นและโมเดลวิวเมทริกซ์
ก่อนอื่นคุณต้องเปิดใช้งานการเรนเดอร์ 2D โดยการกำหนดค่าพรอเจคชั่นและโมเดลวิวเมทริกซ์ โค้ดด้านล่างจะทำให้คุณบรรลุเป้าหมายนี้:
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(0.0, WIN_WIDTH, 0.0, WIN_HEIGHT); // ตั้งค่าพรอเจคชั่นออร์โธกราฟิค 2D
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity(); // รีเซ็ตโมเดลวิวเมทริกซ์
ขั้นตอนที่ 2: กำหนดสีฟอนต์ของคุณ
การเลือกสีสำหรับข้อความของคุณนั้นเป็นสิ่งสำคัญ กำหนดสีนี้ในตอนเริ่มต้นของโค้ดการเรนเดอร์ของคุณเพื่อให้แน่ใจว่ามันถูกนำไปใช้ถูกต้อง
glColor3f(0.0, 1.0, 0.0); // ตั้งค่าสีเป็นสีเขียว
ขั้นตอนที่ 3: ตั้งค่าตำแหน่งเรสเตอร์
ระบุว่าคุณต้องการให้ข้อความปรากฏที่ไหนในหน้าต่างของคุณ มุมล่างซ้ายของการแสดงผลจะมีพิกัดเป็น (0, 0)
นี่คือวิธีการตั้งค่า:
glRasterPos2i(10, 10); // ตั้งข้อความที่ตำแหน่ง (10, 10)
ขั้นตอนที่ 4: แสดงข้อความ
เพื่อแสดงสตริงที่คุณต้องการ คุณจะต้องใช้ฟังก์ชัน glutBitmapCharacter
ซึ่งต้องการสไตล์ฟอนต์และแต่ละอักขระจากสตริงของคุณ ตัวอย่างด้านล่างแสดงวิธีการแสดงคำคม:
string s = "Respect mah authoritah!";
void * font = GLUT_BITMAP_9_BY_15; // เรียกฟอนต์ที่นี่
for (string::iterator i = s.begin(); i != s.end(); ++i) {
char c = *i;
glutBitmapCharacter(font, c); // เรนเดอร์แต่ละอักขระ
}
ขั้นตอนที่ 5: คืนค่ามารีวิวเมทริกซ์
สุดท้าย เป็นสิ่งสำคัญที่จะต้องคืนสถานะ OpenGL กลับไปที่สิ่งที่เคยเป็นมาก่อนที่คุณจะทำการเปลี่ยนแปลงสำหรับการเรนเดอร์ข้อความ:
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
สรุป
การใช้ GLUT bitmap fonts ช่วยให้การเรนเดอร์ข้อความในแอปพลิเคชัน OpenGL ของคุณเป็นเรื่องง่าย เพิ่มประสบการณ์ของผู้ใช้ผ่านการสื่อสารที่ชัดเจนโดยไม่จำเป็นต้องทำความเข้าใจในทางเลือกการเรนเดอร์ฟอนต์ที่ซับซ้อนมากขึ้น โดยการทำตามขั้นตอนที่อธิบายไว้ข้างต้น คุณสามารถรวมข้อความเข้าสู่แอปพลิเคชันของคุณได้อย่างสะดวกสบาย
แล้วทำไมต้องรอ? เริ่มนำ GLUT bitmap fonts ไปใช้ในแอปพลิเคชัน OpenGL ของคุณวันนี้ และทำให้กราฟิกของคุณน่าสนใจมากยิ่งขึ้น!