18-12-2010, 17:28
|
|
|
חבר מתאריך: 22.08.08
הודעות: 310
|
|
מרנדרים טקסט ASCII על ידי לקיחת תמונה מסוימת (כזאת לדוגמא), אותה ממפים ל16x16 "חתיכות" (תמונות קטנות, מיושם על ידי texture coordinates בתכלס).
בוא נאמר אתה רוצה לכתוב A. ידוע שהערך של A הוא 65 (בבסיס 10), לכן אתה תפנה בתמונה לקואורדינטות האלה:
קוד PHP:
p = image_size / 16 // the size of each letter
(p * 65%16, p * 65/16) (p * 65%16 + p, p * 65/16)
(p * 65%16, p * 65/16 + p) (p * 65%16 + p, p * 65/16 + p)
או בקיצור, לארבעת הפינות של האות ה65.
הרעיון הזה גם פועל לכל פונט אחר, אתה רק צריך תמונה שלו.
לכן - אם אתה רק צריך עברית ואנגלית, אתה מן הסתם יכול להשתמש בASCII המורחב הישראלי.
יש עם זה שתי בעיות:
1) אין לך תמיכה בשפות אחרות.
2) הפונט בtא עם גודל מסוים - אם תשנה את הגודל, הוא לא יראה טוב.
יש דרכים שונות לפתור את הבעיות הללו, אבל הכי קל לתמוך בפונטים של TTF.
למה?
1) הם קיימים כבר במערכת הפעלה, לא תצטרך להכין אותם.
2) הם פונטים ווקטוריים, מה שאומר ש"אין להם רזולוציה". הם נראים טוב בכל גודל.
בשביל להתעסק עם קבצי TTF בקלות, יש ספריות שונות ומגוונות.
מאוד קל לקחת פונט TTF ולהפוך אותו לתקסטורה של OpenGL בעזרת הספרייה החינמית freetype.
אם אתה רוצה לראות דוגמאות קוד, לNeHe יש מדריך שמראה איך עושים את זה.
אני מקווה שכתבתי מובן יותר הפעם.
|