เรื่องวุ่น ๆ กับตัวหนังสือ – ตอนที่ 4 – ประเภทของ Font

อย่างที่เคยบอกว่า Font คือ ชุดของตัวอักษร ถ้าจะให้อธิบายให้ละเอียดยิ่งขึ้น Font ก็คือ ชุดของภาพตัวอักษร (Glyph) ครับ

เราสามารถแบ่งประเภทของ Font ได้จากลักษณะของ Glyph ที่มันเก็บเอาไว้ได้สองลักษณะ ดังนี้

1. Raster Font

Raster Font ก็คือ Font ที่เก็บ Glyph ในลักษณะของ Raster … ก็คือ … Bitmap น่ะล่ะครับ

image

Font ในยุคต้น ๆ จะเป็น Raster ทั้งหมด เพราะว่าเครื่อง PC ในสมัยนั้นมีความสามารถต่ำ และ คนที่สร้างฟอนท์เองก็ไม่ได้เก่งอะไร (อย่าลืมว่าคอมพิวเตอร์ในยุคแรก ๆ นั้นผู้ใช้เป็นคนที่อยู่ในวงการคอมพิวเตอร์ และคณิตศาสตร์ เสียส่วนใหญ่นะครับ) การวาดฟอนท์ด้วยภาพ Bitmap นั้นไม่ได้ยากมาก แต่อาจจะดูไม่สวยอยู่สักหน่อย

2. Vector Font

Vector Font ก็คือ Font ที่เก็บข้อมูล Glyph ในแบบ Vector (กำปั้นทุบดินจริง ๆ ) เหมือนภาพใน Illustrator หรือ Corel Draw นั่นล่ะครับ

image

ในยุคหลัง ๆ มีความพยายามจากทางวงการสิ่งพิมพ์ว่า เขาอยากได้ฟอนท์ที่สามารถย่อ-ขยายได้ โดยที่ตัวหนังสือยังคงดูคมชัดเหมือนเดิม ก็เลยมีคนสร้างฟอนท์ที่ใช้ภาพ Vector ขึ้นมา เพราะสามารถยืดขยายได้ตามใจชอบ เรียกได้ว่าเป็นฟอนท์ที่มีความยืดหยุ่นสูงนั่นเอง

Raster vs Vector

มาดูข้อดีข้อเสียของฟอนท์แต่ละประเภทกันดีกว่า

1. ความยืดหยุ่น

  • Vector Font จะได้เปรียบในข้อที่ว่า ตัว Glyph สามารถยืดขยายได้โดยที่ไม่เสียคุณภาพภาพมากนัก
  • ในขณะที่ถ้าเป็น Raster Font พอยืดขยายแล้วในบางครั้ง Glyph อาจจะเละจนอ่านไม่ออกไปเลยก็มี

2. ความยากง่ายในการใช้งาน

  • Raster Font นั้น เก็บข้อมูลในรูปของภาพ Bitmap ซึ่ง การแสดงผลบนหน้าจอของคอมพิวเตอร์ในปัจจุบันก็เป็นภาพ Bitmap ทั้งหมด ดังนั้นเราจึงสามารถวาด Glyph ลงไปได้ตรง ๆ โดยที่ไม่ต้องมีการแปลงข้อมูล
  • Vector Font นั้น เก็บช้อมูลในรูปของชุดคำสั่งการวาดภาพ ดังนั้นเราต้องนำชุดคำสั่งนี้ไปประมวลผลก่อน (เรียกว่าการทำ Rasterization) เพื่อสร้างภาพ Bitmap ก่อนที่จะนำภาพนั้นขึ้นไปวาดบนจอ

แล้วเราจะใช้ Font แบบไหนดี ในเกมของเรา

ในเกมคอนโซลยุคเก่า ๆ Font จะเป็น Raster Font ทั้งหมด เพราะว่าเกมคอนโซลนั้นจะทำงานอยู่บนอุปกรณ์ที่มีความละเอียดคงที่ เช่น 640×480, 256×198 เป็นต้น ดังนั้นจึงไม่จำเป็นที่จะต้องใช้ฟอนท์ที่ย่อ/ขยายขนาดได้ รวมทั้งการทำ Rasterization ก็เป็นกระบวนการที่มีความซับซ้อนสูง และกินเวลาในการคำนวนค่อนข้างนานอีกด้วย

สำหรับเกมคอนโซลในยุคใหม่ ๆ อย่าง XBox 360 หรือ Playstatin 3 และเกม PC มักจะใช้ Vector Font เพราะว่าตัวระบบปฎิบัติการณ์ของแต่ละเครื่องรองรับการวาดภาพตัวอักษรด้วยฟอนท์ประเภทนี้อยู่แล้ว

แต่โดยส่วนตัวผมยังคิดว่า การวาดตัวอักษรด้วยฟอนท์แบบ Raster นั้นเหมาะสมกับเกมมากกว่า เพราะผู้ใช้แทบไม่มีความจำเป็นจะต้องควบคุมขนาดของตัวอักษรเลย และในความเป็นจริงเกมของเราก็ยังคงทำงานอยู่บนหน้าจอที่มีความละเอียดคงที่ (อาจจะรองรับแค่ 480i + 720p ก็พอ) หรือแม้ว่าเราจะอนุญาตให้ผู้ใช้ปรับแต่งความละเอียดเองได้ เราก็ยังคงสามารถจะ scale ภาพ Glyph ให้เล็กหรือใหญ่ขึ้นตามความละเอียดของหน้าจอได้อยู่ดี (แน่นอนว่าต้องแลกกับคุณภาพของภาพที่ได้ครับ)

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

This site uses Akismet to reduce spam. Learn how your comment data is processed.