วิธีการใช้ 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 ของคุณวันนี้ และทำให้กราฟิกของคุณน่าสนใจมากยิ่งขึ้น!