עבור לתוכן

רינדור של טקסט על גבי Quad ב DirectX

Featured Replies

פורסם

יש למישהו מושג כיצד ניתן להוסיף בזמן ריצה טקסט על גבי Quad או כל משטח לצורך העניין ב Model Space?

תודה מראש,

פורסם

אינני יודע בדיוק באיזה מובן או לייתר דיוק איזו מטרה אתה רוצה להוסיף את הטקסט, אבל יש לך פונקציות כמו D3DXFont(דומה לDDRAW) וD3DXCreateText(יוצר mesh של הטקסט שאתה מגדיר). כמו כן אתה תמיד יכול לעשות render to texture אם אתה רוצה להוסיף את הטקטס בקלות יחסית לטקסטורות(i.e הוספת טקטס על צג של מחשב במשחק) בכל הייתי מסתכל על הBitmap font generator כי אולי הוא יקל על העבודה שלך.

פורסם
  • מחבר

אני רוצה ליצור משטחים שניתן לבצע עליהם טרנספורמציות כאשר הטקסט כבר עליהם, בלי לדאוג לתרגם כל פעם את המיקום ל Screen Space בעצמי, או להתחיל להתאים את גודל הטקסט כל פריים לגודל ההטלה של ה .Quad

Render to texture יכול להיות מעניין.

פורסם

Render to texture

http://www.riaz.de/tutorials/d3d16/d3d16.html

בכל מקרה אם למשל אתה רוצה להציג טקסט על המסך באופן פשוט יחסית הD3D font renderer אמור להספיק.

עריכה: בקשר לBitmap font gen:

אתה יכול ליצור את הביט מאפ עם כל האותיות שאתה צריך בעזרת תוכנות כמו אלה http://www.angelcode.com/products/bmfont http://www.lmnopc.com/bitmapfontbuilder ואז להשתמש בטקסטורות הללו(D3DXCreateTextureFromFileEx) כדי ליצור טקסט על המשטחים שאתה רוצה בעזרת פונקציות כמו ID3DXFont או CD3DFont

פורסם
  • מחבר

Danke.

עריכה:

אגב, אני אידיוט.

יש בדיוק הסבר על Render to Surface ב Managed DX Kick Start בפרק 10. :kopfpatsch:

לא יודע איך פיספסתי.

פורסם
  • מחבר

חבל על ת'רד חדש - אז שאלה נוספת בנושא.

הטקסטורה נוצרה עם הטקסט, הדבקתי אותה על Quad.

למה לכל הרוחות היא לא מוארת כאשר אני משתמש באורות?

השתמשתי ב CustomVertex מסוג PositionedTexturedNormal.

פורסם

Danke.

עריכה:

אגב, אני אידיוט.

יש בדיוק הסבר על Render to Surface ב Managed DX Kick Start בפרק 10. :kopfpatsch:

לא יודע איך פיספסתי.

כן להבין אותך לא היה קל במיוחד נראה שקצת דילגת על משהו, רצית לרנדר באופן סתמי ללא טרנספורמציה לscreen space וללא surface מוגדר.

חבל על ת'רד חדש - אז שאלה נוספת בנושא.

הטקסטורה נוצרה עם הטקסט, הדבקתי אותה על Quad.

למה לכל הרוחות היא לא מוארת כאשר אני משתמש באורות?

השתמשתי ב CustomVertex מסוג PositionedTexturedNormal.

מה בדיוק עשית, בכל מקרה אני בבית בסופש אתה תפנה אלי בICQ בערב, לעבור על קודים דרך הפורום זה גהנום.

פורסם
  • מחבר

היי, תודה על התשובה.

מצטער שלא עדכנתי, אבל כבר פתרתי את הבעיה של התאורה.

מסתבר שב MDX 2.0

Material.Diffuse מקבל ערך של Microsoft.DirectX.ColorValue ולא System.Drawing.Color. כמובן שהוא לא התלונן בקומפילציה, אבל ההחזר לא עבד. :-X

מאז כבר זרמו עוד הרבה מים בויז'ואל סטודיו, וירדתי מהבטא של MDX 2.0, ואני עובד עם הגרסה האחרונה תחת 1.1.

אגב, יש גם איזה באג מוזר ב TextureLoader, שאם אתה לא מגדיר לו במפורש מה גודל הטקסטורה, הוא יוצר לך טקסטורה בגודל 2 בחזקת X בלבד, ולא קורא את גודל הטקסטורה מהקובץ כפי שהדוקומנטציה אומרת.

אבל אני בטוח שהצרות רק מתחילות, ויהיו עוד רבות בעתיד. היום אני מתעתד לבדוק את הנושא של Alpha Blending, נראה עד כמה זה יעבור חלק.

פורסם

תסלח לי אם אני לא בדיוק זוכר אותך, אבל אם אתה אותו אחד שרצה לפתח איזה אפליקציה גראפית למערכות פשוטות יחסית, אתה צריך ממש להתחיל לבדוק באיזה פונקציות אתה משתמש.

לדוגמא

R2T זמין רק מחומרה מרמת DX8 ומעלה, או חומרת עם הרחבות OGL תואמות Pixel Shader 1.1

ובקשר לAlphablending תבדוק באיזה פורמט טקסטורה אתה משתמש, אם הטקסטורה שאתה יוצר היא בפורמט FP16 למשל אז כדי לעשות blending חומרתי תצתרך חומרת DX9 תואמת SM2.0.

פורסם
  • מחבר

כן, אני אותו אחד.

החומרה שאני מפתח עליה היא ה 945GM, והחומרה הסופית תהיה כנראה 915GM.

ה RenderToSurface עובד מצויין על המערכת.

הטקסטורות שאני עובד איתן הן 32 ביט/8ביט לערוץ + אלפא.

פורסם

אין כרטיס שיכול לעשות לך blending של FP32 בצורה חומרתית, אתה יכול לכתוב שיידר לזה אבל בוא נגיד ככה שדגימה והשוואה של ערכים בכמות הפיקסלים המדוברת היא דבר שאינו ריאלי גם בכרטיסים המתקדמים ביותר.

פורסם

אני גם לא בטוח לגמרי איזו חומרה כן יכולה לעשות FX32 בצורה חומרתית, פורמט דיי אקזוטי לדעתי, עד כמה שזכור לי GF4/3 וR300 גובלים בFX16. אני מציע לך להשאר בדברים מוכרים כמו FX8/16 FP16 וכו' או אם אתה ממש צריך איכות עם ביצועים גבוהים אז להשתמש באיזה פורמט int unsigned מורכב. בכל מקרה בלי לדעת את כל העבודה שאתה מתכנן לעשות קשה לי לייעץ לך בצורה טובה. אז נטפל בבעיות מקומיות אם וכאשר הן יצוצו.

אולם העצה הראשונית שלי עדיין תקפה, תתכנן את כל העבודה שלך, ותדאג שאתה קולע למכנה הנמוך ביותר, או שתבחר בmultiple render paths אבל אז עדיין אתה רק יכול להוסיף דברים נוספים לחומרה מתקדמת יותר.

פורסם
  • מחבר

טוב,

ניסוי קצר עם טקסטורות בפורמט A8R8G8B8 עבד מצויין.

יכול להיות שאנחנו מדברים על משהו אחר, ואני פשוט לא מכיר את הטרמינולוגיה הנכונה? מחיטוט קל ברשת אני מתרשם שהפורמט הזה מאוד פופולרי.

בנוגע לחומרה, האפליקציה מיועדת לרוץ על פלטפורמת חומרה אחת בלבד. כלומר כל הלוחות + הכרטיסים הגרפיים יהיו זהים לחלוטין, ותומכים ב DX9.

בכל מקרה, אני מוסיף אותך ל ICQ, ותודה על העזרה :)

פורסם

A8R8G8B8 זה 32bit לפיקסל לא לקומפוננט ;)

ל915 אין HWT&L אבל בהתחשב שאתה יכול לעשות הכל בvertex shader זה לא צריך להוות בעיה.

המסמך הבא יוכל לעזור לך לתכנן את העבודה שלך בצורה שתמנע בעיות תאימות: http://download.intel.com/design/chipsets/datashts/30146705.pdf

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים