DCSIMG
April 2008 - Posts - Maxim

April 2008 - Posts

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


 

(מכאן והילך אעשה שימוש במושג: "Rasterization" = ראסטריזציה = הפיכת תמונה ממוחשבת למפת סיביות)

טכנולוגיות ציור פונטים (Font Rendering)

ראסטריזציה פשוטה, ללא החלקה

זהוי צורה הכי בסיסית של ראסטריזציה, ציור פשוט של קוי התווים ללא החלקה מסוג כלשהו. שיטה זו הכי מהירה (כי זה דורש פחות חישובים למיקום הטקסט על המסך). גישה זו בעלת חיסרון, כאשר מדובר בפונטים קטנים, חלק מן התווים יהיה קשה לזהות. מספר גדול של גופנים (בעיקר מסוג True-Type או Script) כוללים בתוכם אזורי תווים עם "רמזים" שעוזרים למערכת ראסטר להחליט איכן הם המקומות הבעייתיים בתצוגה של פונטים קטנים, כאן ייעשה שימוש בחלופות כמו תמונות קטנות (small bitmaps) של אותם תווים בעייתיים (גופנים שבנויים מתמונות בד"כ משתייכים ל- system fonts).

ראסטריזציה עם החלקה, ללא רמזים

זו גישה יותר מורכבת מהקודמת, אך סטנדרטית ומגיעה מתוכנות גראפיקה מסורתיות. אלגוריתם החלקה עובר על כל פיקסל בחלק החיצוני של האות ומשנה לו דרגת שקיפות (ללא קשר להשתייכותו לקו אופקי, אנכי או אלכסוני), בנוסף מוסיף לידו פיקסל נוסף שמקבל צבע שלו עם דרגה יותר גבוהה של שקיפות. למשל: כאשר מצוייר אות שחור על גבי רקע לבן, אז כל פיקסל צריך להיות מלא באופן אידיאלי בצבע שחור עם שקיפות של 50% (ז"א אפור), לכן אנו רואים מן מסגרת אפורה מסביב לכל אות. פעולה פשוטה כמו זו מביאה לתוצאות לא כ"כ איכותיות, מתקבלים תווים עם מריחה (אפקט זה גם מתקבל בתמונות דחוסות כמו פורמט JPEG). בעיה נוספת קיימת באותיות בעלות קוים אלכסוניים ברוחב של פיקסל בלבד, אבל בגלל הזוית הוא נופל בדיוק בין שני פיקסלים, אז על המסך נראה אותיות עם קוים אלכסוניים בעובי של שני פיקסלים עם מספר פיקסלים אפורים נוספים מסביב. תופעות אלה גרמו לפיתוח שיטות החלקה חילופיות ואיכותיות יותר.

ראסטריזציה עם החלקה, ועם רמזים

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

ראסטריזציה בשיטת מיפוי "sub-pixel" עבור מסכי LCD

מרבית מסכי המחשב כוללים פיקסלים אשר בנויים מתתי פיקסלים (בד"כ כל אחד מייצג צבע בסיס כמו אדום, ירוק וכחול; שלשתם מורכבים יחד כדי להפיק את כל המגוון של צבעים - מודל של RGB). במקרים מסויימים (כמו במסכים דקים - LCD או אחרים) אפשר לנצל עובדה זאת, להדליק רק צבע מסויים של הפיקסל מאשר את כולו, זה יכול להגדיל משמעותית רזולוציה אפקטיבית של המסך. טכניקה זאת נקראת Sub-Pixel Rendering; מיקרוסופט מיישמת אותה באלגוריתם של Clear-Type (גם סימן מסחרי רשום).

בתמונה מימין ניתן לראות חלק מוגדל של מסך LCD שעליו מצויירת מילה "sample" ע"י שימוש ב-sub-pixel rendering. אם נתרחק מן התמונה אז נראה שצבע האותיות נהפך ללבן, כך המסך עובד - שילוב של מספר צבעים שסמוכים אחד לשני מפורשים על ידינו כצבע מסויים. עובדה זו מנוצלת גם בהחלקת פונטים. בשיטה זאת אין צורך להוסיף פיקסלים נוספים, כאן משנים צבע של תת-פיקסל וכך עובי הקו נשמר קבוע. טכניקה זו יותר אלגנטית מהקודמות. ניתן לציין שלא כל המסכים עם פיקסלים שמורכבים משלש תתי-פיקסלים מתאימים, ישנם מסכי LCD שבנוים מגבישים מלבניים (מסכים אלה בד"כ נועדו לשימוש כסטנדים - לוחות מידע), כאן ההחלקה לא תראה באופן איכותי; במקרה זה ייעשה שימוש בטכניקות החלקה אחרות.


קטע טקסט ללא החלקה:

קטע טקסט עם החלקה:

החלקת פונטים במערכות הפעלה שונות:

font smoothing in diff. os 

(כאן ניתן לראות בהגדלה איך בוצעה ההחלקה של מילה "bnet")


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


Posted by Maxim | 1 comment(s)
תגים:, , ,

.theprodukkt

אני רוצה לספר על פרויקט מיוחד במינו בשם ".theprodukkt" שמתבצע ע"י צוות מפתחי תוכנה מתנדבים מאירופה (בעיקר מגרמניה).
מדובר על פרויקט בתחום תלת-מימד (3D), שמטרתו לייצר כלי מיוחד ליצירה (generation) של טקסטורות לתלת-מימד (משחקים, הדמיות, סצנות אנימציה וכו').home

מהי טקסטורה (במשחקי מחשב)?

נניח ציירתם או בניתם בית מקרטון (קופסה פשוטה עם גג משולש) ואתם רוצים שקירותיו ייראו עשויים מלבנים חומות (כאן נכנס המושג "טקסטורה"), אילו בניתם מקרטון, תוכלו להדביק תמונה עם ציור לבנים, לצייר לבנים או להדביק ממש לבנים קטנות. אם ציירתם, אז תוכלו לצייר את הלבנים, או לגזור תמונה שטוחה עם הדפסה של לבנים ולהביקה בהתאם לצורה/זווית של קירות. במחשבים גם ניתן לצייר בית וגם ניתן "להדביק" תמונה עם לבנים על קירותיו. תמונה עם לבנים נקראת "טקסטורה".
זהו הסבר די מופשט, במחשבים העניין לא פשוט, הצמדת טקסטורה לקירות הבית דורשת חישובים מתמטיים לא פשוטים (למשל יש להטות זווית התמונה בהתאם לזווית קירות הבית - מטריצת הקיר עם תבניות הלבנים צריכה להתבש בהתאם לצורה של קיר וכו').

מה מיוחד בפרויקט ".theprodukkt"?Half-Life 2

- כמה זיכרון (נפח אחסון) תופס (במגהבייטים או ג'יגהבייטים) משחק מחשב תלת-ממדי עם כל הקבצים אחרי ההתקנה (כמו "Half Life 2", "Doom 3", או "Halo 3")?
- בממוצע, מחשק מחשב מודרני נפרס על פני מספר דיסקים של DVD, משחק "Half Life 2" למשל, תופס אצלי במחשב כ- 4GB משטח אחסון של דיסק קשיח.
- כמה מתוך נפח הנ"ל תופסות הטקסטורות?
- במשחקי מחשב תלת-ממדים מודרניים התוכן (טקסטורות, קבצי קול, מוסיקה וסרטונים), תופס הרבה נפח. לפי הבדיקה שלי בתיקייה של "Half Life 2" הטקסטורות (בעיקר קבצי תמונות) תופסות כ- 1GB (כ- 25%).

כלי שצוות ".theprodukkt" מפתח הנו ".werkkzeug3" (הם נותנים כל מני שמות גרמניים מוזרים לפרויקטים שלהם) מספק יכולת לבנייה של טקסטורות למשחקי מחשב. טקסטורות אלו אינן מבוססות על תמונות bitmap אלה מיוצרות בזמן ריצה, ז"א אותו קיר לבנים יקבל טקסטורה דמוית לבנים תוך כדי בניה של שלבי המחשק או בזמן התצוגה של הבית.

a screenshot of .werkkzeug3, showing a texture together with the operators that produce it.
(תצלום מסך של ".werkkzeug3", מציג טקסטורה מרונדרת עם פרמטרים שקובעים את העיצוב שלה)


כיצד "מציירים" (מחוללים) את הטקסטורה של הלבנים?

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

 
(תמונות עם דוגמאות של טקסטורות לבנים)

כלי של שצוות ".theprodukkt" פיתח אינו יחיד במינו, ישנם כלים נוספים שמחוללים טקסטורות, רוב הכלים מחוללים טקסטורות bitmap, שזהו חיסרון מסוים מבחינת גודל קבצי המשחק, תבנית אינה תלת-ממדית (ז"א חסרים מאפיינים של עומק, צורתיות וכו'). בתמונות הנ"ל ניתן לראות קירות שמכוסים במרטיצות לבנים, מטריצות מורכבות מתבניות תלת-ממדיות של לבנים, למעשה ישנו שימוש במספר של תבניות לבנים, מיקום הלבנים והשתלבותם נעשה באופן רנדומלי, כל לבנה מעוצבת עם מאפיינים ייחודיים שלהם על מנת שיהיה גוון בטקסטורה. ניתן לראות את העומק ואת הצורתיות המעוותת של כל לבנה, משחק האורות והצבעים על פני הטקסטורה הנו מאוד משמעותי - זה נותן תחושה של עולם יותר אמיתי. אילו טקסטורה הייתה מסוג bitmap, לא היה ניתן ליישם את כל הדברים הללו.

"ציור" הלבנים נעשה ע"י כרטיס גראפי (GeForce ודומים לו) או ע"י ה- CPU, כל תבנית של מטריצה מרונדרת כאובייקט תלת-ממדי עם פרמטרים של צבעים, גובה, רוחב, עומק, ועוד. ישנן תבניות שכן מורכבות מתמונות bitmap שמשמות להן למילוי (במקרה של לבנים אפשר לבנות אובייקט תלת-ממדי עם מילוי של bitmap), במקרה זה "מלבישים" או "משטחים" את התמונה על פני התבנית הצורתית. כרטיס גראפי מרנדר את הטקסטורות בהתאם להגדרות של המטריצה, לשם כך נדרשים חישובים רבים וככל שטקסטורה מורכבת יותר, יידרשו יותר חישובים, ז"א יהיה צורך בחומרה חזקה/מהירה יותר. מנוע שמבצע את הרינדור בעזרת הכרטיס הגראפי יכול להיות DirectX או OpenGL, במקרה של ".theprodukkt" נעשה שימוש ב- DirectX, כאשר טקטורות מרונדרות בשלב טעינת סצינות המשחק, כל טקסטורה נבנית ע"י CPU של המחשב נטענת לזיכרון RAM ומשם נעשית קריאה לטקסטורה בזמן אמת (בזמן תצוגת האובייקט בשלב מחשק) ע"י DirectX שתפקידו "להלביש" את הטקסטורה על המשטח המיועד.

scene designer 
(werkkzeug מספק יכולת עיצוב טקטורות עבור אובייקטים או סצנות שלמות, התוצר הסופי - טקטורות bump-texture עבור מנוע רינדור)


צוות ".theprodukkt" מספק כלים נוחים וקלים לבנייה של שלבי המחשק עם טקסטורות מורכבות, כאשר התוצר הסופי (קבצי ההרצה כמו EXE) לא תופס יותר מ- 90-250 קילובייט!
-
כן, קראתם נכון, משחק שלם עם טקסטורות, מספר שלבים (עם סצנות מורכבות), AI, דמויות, מוסיקה ועוד תופס בסה"כ 96K!

להלן מספר דוגמאות לפרויקטים של ".theprodukkt":

Farbrausch debris demo

חייב לציין, שלמרות קובץ הרצה קטן, משחק די זולל משאבים של המחשב 

(דמו של הפרויקט המדגים את היכולות המדהימות של הכלים - הכול נכנס לקובץ EXE של 180K)

.kkrieger


(משחק יריות תלת-ממדי עם מספר שלבים, דמויות תלת ממדיות, עולמות, קול ועוד - הכול נכנס לקובץ EXE של 96K)

 project genesis


 (דמו מדהים ע"י Conspiracy - הכול נכנס לקובץ EXE של 64K)

נכון להיום הגראפיקה לא מביאה להתפעלות וגם המשחקים לא שופעים בחדשנות, אבל אם ניקח עובדה שהכול נארז לקובץ EXE בעל ממדים מצחיקים של 64-96-186 קילובייט אז אפשר לתת להם קרדיט גדול. הכוון שלהם הוא משחקי תלת-ממד בסלולארי. שם עדיין צריכים לחסוך מאוד במשאבים המנוצלים, משחקי מחשב תלת ממדיים נכנסו חזק לתחום הסלולארי, ".theprodukkt" מציע אלטרנטיבה טובה:


אם יש לכם שאלות בנוגע ל"איך הם עושים זאת?", תוכלו לקבל תשובות לחלק מהן כאן.

- על פי מה שלמדתי באתר שלהם, מוסיקה נכנסה בפורמט MIDI על מנת לחסוך מקום, אומנם קבצים בפורמט זה אינם יכולים להכיל קול אנושי או אפקטים מסוימים, נותנים מענה הולם למוסיקת רקע וסאונד שמתורגם מתווים דיגיטאליים ע"י כרטיס קול. טקסטורות תמונות bitmap אין, הכול מרונדר במנוע של המשחק בזמן טעינת שלבי המחשק (רינדור הטקסטורות נעשה ע"י ה- CPU), לשם ציור הגרפיקה נעשה שימוש ב- DirectX, פונטים מגיעים ממערכת ההפעלה. לא מצאתי מידע אודות סביבת הפיתוח של כלי שלהם, אני מניח שקוד מקומפל מ- ++C, עדיין אין לי מושג איך הוא קטן כ"כ (בהתחשב שמשחק צריך לכלול אלפי שורות קוד שמטפלים בהגדרת אובייקטים, טקסטורות, קול, בינה מלאכותית ועוד) , תוכנית פשוטה של הדפסת "שלום עולם" שכתבתי ב- ++C לוקחת כ- 24K (יחד עם כל ה- headers המיותרים), מה שבטוח את הקוד הם לא כותבים באסמבלר וגם אם יש דחיסה כלשהי בתוך ה- EXE אז עדיין הקובץ יוצא מאוד קטן.

 
(תצלום מסך של משחק תלת מימדי במכשיר סלולארי)

::: .theprodukkt, היה נעים להכיר :::

בהמשך, ראו פוסט נוסף על פרויקט "בלנדר" בנושא" כלים לפיתוח תלת-ממד".
 
Technorati Tags: ,,,,,
Posted by Maxim | with no comments

עפ"י סדר פרסומם:


יש זוכה בשאלת הטריוויה עם זכייה בפיצה משפחתית בחסות טק-אד 2008

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

נועה חדד ראשונה ענתה נכון על השאלה וזכתה בפיצה משפחתית של "של פיצה הט". כל הכבוד!

(Wednesday, April 09, 2008 10-00 PM)


לייבבלוגינג: The Hitchhiker's Guide to WPF Data Binding

מרצה: תומר שמם

יום שכולו WPF - אולם כנען במלון הילטון - כל ההרצאות בנושא WPF ...

תומר העביר אחלה הרצאה על data binding in WPF, בעזרת דוגמא "אקווריום ווירטואלי" שכולו בנוי ב- WPF ...

(Tuesday, April 08, 2008 4:40 PM)


מרצים: תמיר חסון ואלכס גולש

תארו לכם שקיבלתם חלקים של לגו: מה שתעשו עם החלקים הללו תלוי בדימיונכם, כישורייכם והכלים (חלקי הלגו) שיוכלו להתאים אחד לשני בקלות ...

אם יש בידיכם כלים מתאימים, כישורים ודימיון, אז תוכלו לקבל תוצאה כזאת ...

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

(Tuesday, April 08, 2008 3:20 PM)


הראשון שיענה על השאלה הנ"ל יזכה בפיצה משפחתית של פיצה-הט (עם תוספות): מה רואים בתמונה הגזורה הזאת, איזה קשר יש לה לטק-אד 2008 באילת ואיפה היה אפשר לצלם אותה?

התמונה ... (רמז: חפשו תמונות באחד הפוסטים שלי על טק-אד 2008)

בתאבון ;-)

(Tuesday, April 08, 2008 8:00 AM)


היה פשוט WOW, אין לי מילים, מדהים, הפקה שרק חברות כמו מיקרוסוםט יודעות לעשות (וגם: כל הכבוד ל- HP על החסות)...

- אין לי מושג איך אני (או אנשים אחרים) יקומו מחר בבוקר להרצאות...

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

- מי שלא היה בקטע של הריקודים אז הוא לא היה In right condition... >> מרגריטות על הבר מאיזה ערבוב של משהו היו עושים לכם את זה, העיקר לעבור בשלום את הנסיעה באוטובוס למלון...

(Tuesday, April 08, 2008 2:45 AM)


טק-אד 2008: אירוע "דיגיטל מארקט"

אתמול כתבתי על ההכנות לאירוע הנ"ל והיום אני מעלה מספר תמונות שהספקתי לעשות...

דוכנים של חברות הי-טק / טכנולוגיה שונות ...

ה- Networking, בתאוריה האנשים אמורים להחליף כאן כרטיסי ביקור, אך למעשה נעשה כאן Promoting של חברות טכנולוגיות שונות שנתנו חסות לטק-אד. בגדול היה FUN וכל חברה עשתה תחרויות וחילקה פרסים, מספר אנשים קיבלו פרסים על זכייה בתחרות שתיית בירה ...

בחוץ, שולחנות עם אוכל ו"זולות" לישיבה (תארו לכם 3,500 חנונים מנסים להיות קוליים) ...

(Monday, April 07, 2008 8:00 PM)


לייבבלוגנינג: Building a ServiceHost for your WCF Services - The Right Way!

מרצה: אייל ורדי

(Monday, April 07, 2008 3:20 PM)


לייבבלוגינג: Multiprocessing and the Parallel Extensions for .Net

מרצים: אסף שלי וגיא בן-חיים

מהם Parallel Extensions (הרחבות של VS2005/8 לעיבוד מקבילי) או Parallel Computing (עיבוד מקבילי)?

(א) עיבוד מקבילי - יכולת הרצה של משימות (tasks) במקביל אודות ליכולות של חומרה (מעבד), מערכת הפעלה ויישום שאנו בונים על מנת לספק יכולות כאלה. בקיצור, אתם יכולים לבנות שתי פונקציות ולהריתן במקביל ע"י ניצול של יותר ממעבד אחד או מעבד אחד בעל מספר ליבות או לחילופין יש מעבדים בעלי ליבה אחת שמדמים Multithreading.

(ב) הרחבות לעיבוד מקבילי - אלה מחלקות מוכנות שמגיעות בתת חבילה של דוט-נט 3.5 שתפקידן לספק לנו יכולת תכנות לניצול של עיבוד מקבילי. בקיצור: במקרה ויש לכם מעבד מרובה ליבות אתם יכולים להשתמש במחלקה "Parallel" על מנת להריץ פונקציות (או יותר נכון delegates של פונקציות) על גבי מספר מעבדים בו-זמנית ...

(Monday, April 07, 2008 11:00 AM)


לייבבלוגינג: כעת באירוע של "דיגיטל מארקט" של טק-אד 2008 * סיכום של דמו פתיחה של טק-אד

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

עיצוב המצגות בסגנון האתר ... יוסי וליאור עושים פוזות למצלמה ...

מנכ"ל מיקרוסופט (מדבר על מקבלי ההחלטות ויודע בתכלס שמי שיקבע בסוף זה המפתחים שהוא רואה באולם הזה) ...

(Sunday, April 06, 2008 11:52 PM)


לייבבלוגינג: אני בהרצאה של ד"ר יעקב על UI ו- UX כמובן

הרצאה של 16:45: So, You Have to Build a New GUI. What Technology and UX Would You Select?

מרצה ד"ר יעקב גרינשפן ואמיר שבט ממיקרוסופט.

ההרצאה אינה טכנית ופונה למנהלים שהם שאמורים להחליט לגבי בחירת הטכנולוגיה (מחר אני אהיה בהרצאה של תמיר חסון שהיא תעסוק ב- WPF ויתר הדברים הקוליים שיש ב- UI בקט-אד הזה ומקווה לראות קוד בייחוד XAML), אבל ... >> UI + UX >> ה- babies שלי... ואני לא מפספס אף הרצאה של ד"ר יעקב ...

בהרצאה מדובר על כל המהפכה האחרונה שקרתה בתחום - UI. איך זה משפיע על חיינו ואיך ממשקים של מיקרוסופט כמו אופיס משפיע על העיצובים העכשוויים שמפותחים ע"י חברות שונות, לקוחות רוצים ממשקים דמויי אאוטלוק, אופיס, וורד - מיקרוסופט מוכנה להסתכן בפיתוח ממשקים חדשים ולקוחות יצטרכו "להתרגל" אליהם, אבל זוהי תוצאה של מחקר ופיתוח רבי שנים ובסוף כולם יעתיקו את זה (אני לא נכנס כאן לוויכוח מי מעתיק ממי, אבל המון ממשקים יותר מדי דומים לאופיס) ...

(Sunday, April 06, 2008 6:00 PM)


לייבבלוגינג: אני בהרצאה על חידושים בויזואל בייסיק 9.0

עד 15:00 הייתי בכנס מפתחים - דמואים של פתיחה; היה אינפורמטיבי ומאוד מושקע (אך די מעייף) - אכתוב על זה בפוסט נפרד (יש מדי פעם בעיות חיבור לאינטרנט אלחוטי, לכן יתכן עיקוב בלייבבלוגינג).

הרצאה ראשונה שלי היום: A Lap Around Visual Studio 2008 IDE and VB 9.0 (תחום של פלטפורמת פיתוח)

מרצה Lisa Feigenbaum (מגיעה אלינו היישר מצוות פיתוח של VB)

{ נכון, VB, אם כל הסטיגמות והחיוכים של מפתחי #C, כשהם שומעים שיש מישהו שעדיין מפתח ב- VB  }

לכל המעוניינים בקרו באתר של טק-אד 2008 כדי לראות את מצגת ההרצאה.

- כל החידושים של דוט-נט 3.5-3.0 נכנסו לוידאול בייסיק 9.0, ה- intellisence, refactoring, LinQ ויתר ה"קללול" נכנסו גם ל- IDE של VS2008 עבור VB. יש המון דברים חדשים שאין עדיין ב- #C (ימותו הקנאים, זוכרים איך אנשי #C רצו שיהיה להם ביטוי with וכל ההשלמות האוטומטיות של VB?)

בגרסה החדשה למשל אפשר לכתוב XML בתוך שורות הקוד של VB באותו IDE (פיצ'ר זה לשמל הרבה יותר מסובך ב- #C) ...

(Sunday, April 06, 2008 4:30 PM)


לייבבלוגינג: תמונות מכנס הבלוגרים באילת

~ שוב כיף ~ !!!

  • ב- 11:00 היה מפגש הבלוגרים של מיקרוסופט ישראל - קיבלנו מתנות ...

  • המפגש היה במלון הרודס ...

  • מיכל - מנחת המפגש ...

  • כולם עסוקים בלפרק את המתנות ...

תהנו :)

העדכונים בהמשך ...

(Sunday, April 06, 2008 12:00 PM)


ניסיון של לייבלוגינג: נחיתה רכה * הליכה "קצרה" לביזנס סנטר * ההכנות בעיצומן...

~ איזה כיף ~ !!!

אני באילת - לא הייתי כאן שש שנים!

טיסה קצרה - קליטה מהירה במלון - הליכה לביזנס סנטר בהרודס... מחכים למפגש הבלוגרים ב- 11:00 ...

כמה בלוגרים מאושרים תפסו "Guitar Hero" ...

ההכנות של בניית הדוכנים בעיצומן ...

(Sunday, April 06, 2008 10:00 AM)


לפני טק-אד 2008: אחת ההצעות שלי לחולצת הבלוגרים

נחשו מי הגיע למסיבה עם חולצה דומה:

 
(האם אני נביא?)

(Sunday, March 30, 2008 7:30 PM)


לפני טק-אד 2008: הצעות לעיצוב חולצת הבלוגרים

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

במהלך המפגש שאלו את דעתנו על עיצוב חולצות הבלוגרים של מיקרוסופט-ישראל ורוב בחרו בחולצה עם הסיסמא הסקסית "give me a blog job", אם זכרתי נכון. החלטתי להציע עיצובים נוספים. עשיתי 10 סקיצות עיצוב לחולצות ויכול להיות שמשהו יוכל להתאים ...

 

 

 

(PS: מעצב אופנה לא ייצא ממני...)

(Monday, February 25, 2008 7-00 PM)


Is Steve Coming to Tech-Ed 2008?

(Friday, February 15, 2008 10:00 AM)


אלה הפוסטים שכתבתי בנושא "טק-אד 2008"... יש פוסט מסכם בתנור, אעלה אותו ברגע שיהיה מוכן ... תהנו :)

חג אביב שמח וכשר לכווווולם!!!

מאחל המון בריאות, הצלחה, אושר ועושר!

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


טכנולוגיות תצוגה - סקירה

היסטוריה ומוטיבציה

lcd_vs_crt

כאשר מחשבים חוברו למסכים נוצרו מספר טכנולוגיות לתצוגת מידע טקסטואלי על גבי המסך. מסכי מחשב עד אמצע שנות התשעים היו בעצם מסכי טלויזיה (CRT) ללא היפרבנד (hyperbend - רכיב אלקטרוני המסוגל לאחסן בזיכרון מספר רב של הערוצים עפ"י נתונים שונים, כמו תדר, עוצמה וכו'). באמצע שנות התשעים (יחד עם התפתחות של מחשבים ניידים) החלה חדירה של מסכים בטכנולוגיה שמבוססת על גבישים נוזליים (בדומה ל- LCD).


מתוך ויקיפדיה:

CRT - Cathode ray tube

- שפופרת קרן קתודית, היא מתמר המשמש במסכי צפייה, וממיר אותות חשמליים לתמונה. ממציאה היה קרל פרדיננד בראון, אשר בנה שק"ק לראשונה עוד ב-1897.

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

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

 

LCD - Liquid crystal display

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

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

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

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


קצת סקירה היסטורית (מתוך האתר של אוניברסיטת ת"א - קורס טיפוגראפיה):

הצגת טקסט על מסכי מחשב וטלוויזיה

my laptop resolution

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

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

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

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

Linux Ubuntu Screen Resolution

הפתרון השני, שנמצא בשימוש גם היום, מבוסס על רמזים (hints). הרמזים הינם מידע אודות צורת האות בנוסף לקווי המתאר שלה. התוכנית במחשב שתפקידה לייצר את תבניות הפיקסלים של אותיות משתמשות במידע הנוסף על מנת לייצר תבניות פיקסלים קרובות יותר לכוונת מעצב האות. בגופני פוסט-סקריפט, שפותחו ראשונים, הרמזים הינם הצהרתיים. מעצב האות מצהיר על תכונות מסויימות של האות, והמחשב משתמש בהצהרות הללו על מנת להציג את האות. למשל, המעצב יכול להכריז ששני החללים הלבנים בתוך האות הלטינית m (או באות העברית "ש" (שין)) צריכים להיות בגודל שווה. הצהרה כזו תגרום למחשב לבחור את רוחב החללים להיות שניהם שני פיקסלים, או שניהם שלושה, אבל לא אחד שניים ואחד שלושה, גם אם השוואתם מביאה לרוחב אות לא נכון.

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

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

טכנולוגיה אחרת פותחה על מנת להתמודד עם ה"מדרגות" שקווים אלכסוניים יוצרים כאשר הם מוצגים במספר פיקסלים נמוך. הטכנולוגיה, שנקראת החלקת גופנים (font smoothing או ant-aliasing) מציגה את האות לא רק בשחור ולבן, אלא גם בגווני ביניים. פיקסל שמכוסה כולו על ידי קווי המתאר של האות יצבע בשחור, פיקסל שכולו מחוץ לאות יצבע בלבן. אבל פיקסל רבוע ש-25% ממנו מכוסה על ידי האות יצבע באפור בהיר, ערבוב של 25% שחור עם 75% לבן. באופן מפתיע אולי, הצגה כזו נראית לעין האנושית נכונה יותר מאשר הצגה בשחור ולבן בלבד, למרות שאנו יודעים שהעצם שמוצג הוא שחור על רקע לבן. החלקה כזו משפרת את מראה האות, בייחוד כאשר אין רמזים איכותיים, אבל גם כאשר יש כאלו. מאידך, החלקה הופכת את שולי האות לאפורים והאות נראית לעין מטושטשת. מייקרוסופט, למשל, משתמשת בגופנים שמוחלקים רק מגודל מסויים, בסביבות 11 נקודות. גופנים עם רמזים איכותיים, כמו Arial, מזיזים את קווי המתאר לפני ההחלקה לגבולות של פיקסלים במידת האפשר, ובגופנים כאלה שוליים של קווים אופקיים לחלוטין או אנכיים לחלוטין יוצגו תמיד בשחור ולבן, גווני אפור יחליקו רק קווים אלכסוניים או מעוגלים. זהו המצב האידאלי בהחלקת גופנים.

resolution_in_vista

לאחרונה פותחו טכנולוגיות החלקה מתקדמות יותר עבור מסכי LCD, שבהם כל פיקסל מורכב למעשה משלושה פיקסלים מלבניים קטנים זה לצד זה, אחד ירוק, אחד כחול, ואחד אדום. ניתן לסיים קו אנכי של אות בגבול בין שני תתי פיקסלים כאלה. הפיקסל האחרון של האות, שבו דלוק תת פיקסל אחד או שניים, הוא פיקסל צבעוני, ולא שחור או אפור, אבל על ידי שינוי הצבע של פיקסלים סמוכים ניתן לבטל את תחושת הצבע שהפיקסל הזה מקרין. הטכנולוגיה הזו מגדילה פי שלוש את הרזולוציה בכיוון האופקי, ומאפשרת להשיג תחושת חדות גבוהה לטקסט. במסכי שפופרת קתודות אין הפרדה מרחבית טובה בין הצבעים בכל פיקסל ולא ניתן, ככל הנראה, להשתמש בטכנולוגיה זו. מיקרוסופט כללה טכנולוגיה זו בחלונות XP, תוך שימוש בשם המסחרי Clear-Type, וחברת אדובי כללה את הטכנולוגיה בגרסה 5 של אקרובט.

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

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

השפעה אחרת, אם כי מוגבלת בינתיים, היא עיצוב גופנים במיוחד עבור מסכי מחשב. הגופנים הידועים ביותר מסוג זה הם הגופנים הלטיניים (כולל יוונית וקירילית) Georgia ו-Verdana, שחברת מייקרוסופט הזמינה במיוחד לצורך זה אצל מעצב אותיות מנוסה, ושהרמזים שלהם הוכנו באופן קפדני. גופנים לטיניים אחרים מטיפוס זה הם Agfa Screen ו-Tiresias. גופנים מיוחדים לקריאות על מסכים מפותחים גם עבור מכשירים עם מסכים קטנים, כמו טלפונים סלולריים ומחשבי כף יד.

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


מושג נוסף שקשור לטכניקות תצוגה:

פקטור-קאל: זהו פרמטר אשר משמש להגדרת רזולוציה אפקטיבית של התקן תצוגה ספציפי. מספר זה נמדד לראשונה ב-1934 על ע"י מהנדס ראידמונד ד. קל ושותפיו.

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

הפעלת החלקה של גופנים במערכת הפעלה Windows XP:

xp_font_smoothing

הפעלת החלקה של גופנים במערכת הפעלה Windows Vista:

vista_font_smoothing

השוו טקסטים עם/ללא החלקה של גופנים (טכנולוגית החלקה Clear Type):

font_smoothing_compare

סיקור טכניקות שונות של החלקת הפונטים

כפי שתיארתי ישנה בעיית תצוגה ידוע של פונטים (בעיה דומה ישנה למספר אובייקטים גראפיים נוספים). ישנה הבעיה "לצייר" פונט בצורה ברורה, חלקה ויפה. מסך מחשב מורכב מפיקסלים ואלה יחידות תצוגה הכי קטנות, כל פיקסל "מצויר" על ידי קרן קתודות על גבי מנורות קטנות של מסך CRL או ע"י שינוי במצב גבישים של מסך LCD.

ציור האותיות על גבי המסך ניתן להשוות לציור האותיות על נייר משבצות או להרכבת האותיות מקוביות. אם נרכיב אותיות מריבועים, כאשר כל ריבוע מייצג פיקסל אחד, נראה שאין אפשרות לצייר אות בצורה חלקה. בחלק מן השפות (כמו שפות עם כתב לטיני) יש תווים שניתן לצייר ע"י קווים ישרים, כאן ניתן להסתפק בהרכבת הריבועים אחד אחרי השני ותווים יצויירו ברמה יחסית טובה, הבעיה מתחילה עם ציור תווים שיש בהם קווים אלכסוניים שלאחר ההרכבה ייראו כמו זיגזגים שמורכבים מריבועים קטנים, אילו היינו תמיד משתמשים בטקסטים בגודל הנמוך מ-11 נקודות פר אינץ' אז העין שלנו לא הייתה מבחינה בבעיה, יש מה שנקרא אפקט השלמה עפ"י הזיכרון, המוח האנושי מסוגל להשלים את המידע החסר, במקרה זה הוא משלים קו מזוגזג לקו אלכסוני נקי. הבעיה מתחילה עם טקסטים שמצויירים בגודל העולה על 11 נקודות, כאן מוחנו מסרב לבצע ת ההשלמה ולא נראה ניקיון אסתטי בתצוגה כזאת.

על מנת לפתור בעיית תצוגה הנ"ל נעשה שימוש במספר טכניקות של החלקת הפונטים. רוב הטכניקות עושות שימוש בהשלמת הפיקסלים לקוים אלכסוניים ולקשתות. כל הטכניקות מבוססות תוכנה, ללא קשר מהיכן היא מופעלת. חלק מאלגוריתמים של החלקה מיושמים במנועים גראפיים של מערכות הפעלה וחלק ביישומים שרצים במערכות הפעלה.
אציין ש- WPF עושה שימוש בשני אלגוריתמים:
(1) Clear-Type שמובנה במערכות הפעלה החל מ-MS Windows XP;
(2) החלקת פונטים של מנוע גראפי DirectX שמשתמש במאיץ גראפי לשם כך.

דוגמא לאותיות לועזיות שמורכבות מריבועים שחורים:

text_in_bricks

דוגמא מופשטת לקטע של קו אלכסוני עם החלקה בסיסית:

vertical_line_zoom


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

Posted by Maxim | with no comments

 

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

נועה חדד ראשונה ענתה נכון על השאלה וזכתה בפיצה משפחתית של "של פיצה הט". כל הכבוד!

מרצה: תומר שמם

יום שכולו WPF - אולם כנען במלון הילטון - כל ההרצאות בנושא WPF...

תומר העביר אחלה הרצאה על data binding in WPF, בעזרת דוגמא "אקווריום ווירטואלי" שכולו בנוי ב- WPF עם data binding:

IMG_5411 IMG_5412

פוסט של תומר בנושא דומה: Data Binding for Pure CLR Objects.

WPF מספק מנגנון עשיר ל- Data Binding בצורה חלקה ואטומטית, כלי פיתח MS Blend תומך באפשרות של "איגודי מידע" בצורה של "גרור ושחרר":

IMG_5413 

האקווריום ואזורי החלוקה של GUI עם Databinding:

IMG_5416 

מסגרת אדומה: תצוגה מקדימה של טמפרטורת האקווריום, databinding to temperature property in sensor.
מסגרת צהובה: property grid, מציג מאפייני אובייט שמכיל שדות עם פרמטרים שונים של מצב האקווריום, אין databinding - עובד על עיקרון ה- property grid כמו בדוט-נט 2.0.
מסגרת ירוקה: פאנל דינאמי, מציג את התמונה העכשווית של האקווריום ואת ה- list שמשתנה בהתאם להגדרות, databinding to dynamic aquarium sensors and other props.

בתמונה, באזור הדינאמי, רואים את ה- LIST שמתנה בהתאם לבחירה:

IMG_5414

תומר דיבר על הקלות שבשימוש ב- databinding:

IMG_5409

(ה- zoomer של הקוד - פיצ'ר מגניב)

לסיכום: אחלה הרצאה, הועברה בצורה חלקה, מובנת והמון אנשים פתחו עיניים לכוון ה- databinding in WPF.

 

תהנו ותמשיכו לעקוב :)

מרצים: תמיר חסון ואלכס גולש

 


 

תארו לכם שקיבלתם חלקים של לגו:

 

מה שתעשו עם החלקים הללו תלוי בדימיונכם, כישורייכם והכלים (חלקי הלגו) שיוכלו להתאים אחד לשני בקלות...

אם יש בידיכם כלים מתאימים, כישורים ודימיון, אז תוכלו לקבל תוצאה כזאת:

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

 


 

תמיר ואלכס הראו לנו בהרצאה איך ניתן לבנות משהו מגניב ע"י שימוש באבני ביניין שאנו כבר רגילים עם תוספת מגניבה שהיא XNA Framework.

IMG_5388

ההרצאה עוסקת בתחום של Gaming שנעשה על גבי מספר פלטפורמות (על כך בהמשך הפוסט) וע"י שימוש בטכנולוגיות שונות שלא היינו מדיימנים לעצמנו שניתן לחבר ביניהם.

ההרצאה הייתה מאוד מושקעת ונעשה שימוש בהמון ציוד (מחשבים נייחים וניידים עם מערכות הפעלה של מיקרוסופט, אפל ולינוקס, טלפון סלולרי עם Windows Mobile 6.0, קונסולת XBOX ועוד המון חומרה נוספת ש"דאגה" לחבר את כל זה). יחסית לכמות הציוד, מורכבות המצגת ותכנים - היו מעט מאוד תקלות במהלך המצגת.

תמיר ואלכס הראו לנו איך לבנות משחק מחשב ברשת, שיהיה ניתן להריץ במספר מערכות הפעלה ולשחק ברשת בזמן אמת.

 

לפי המתכון שהוצג בהרצאה, תערבבו את כל אלה:

  +   + + +

+   +   +  +   + WPF + עוד ...

ותקבלו = Crossplatform XNA Game, שרץ על Sylverlight, על שרת IIS 7.0 ו/או אפאצ'י, ניתן לשחק בו ב- windows vista, בדפדפני איטנרט (שתומכים בטכנולוגיה של sylverlight) שיכולים לרוץ במ"ה של מיקרוסופט, לינוקס ואפל.

IMG_5393

בהרצאה הוצגה חבילת פיתוח XNA של מיקרוסופט, בעזרת חבילה זאת ניתן לבנות משחקי מחשב מבוססי DirectX, שיכולים לרוץ ב- Windows XP/Vista או ב- XBOX. חבילה נועדה לפיתוח מהיר של מחשקי מחשב בעזרת כלים מובנים אשר מאפשרים לבנות אלמנטים של מחשק ביתר קלות.

בהרצאה הוצג משחק מחשב "מירוץ מכוניות" שמדמה מירוץ מכוניות זהירות על גבי מפה של גוגל-מפס:

IMG_5396

תמיר ה"רקדן":

IMG_5407

המשחק כאמור נבנה ב- sylverlight והיה צורך לבצע networking שאינו טרוויאלי כ"כ בגרסת 1.0, כאן היה צורך לבנות מנגנון מבוסס javascript ש"ידבר" עם השרת בעזרת אובייקט אסינכרוני של AJAX:

IMG_5394

משחק רץ בדפדפן של לינוקס:

IMG_5396

משחק רץ בדפדפן של טלפון נייד (windows mobile 6.0):

IMG_5399 

IMG_5403

שימוש ב- MS Windows LIVE Services לצורך הדמיית נסיעת מכונית בעיר:

IMG_5405

היו המון מחשבים, מכשירים, חומרה שתמכה בכל הסיפור:

IMG_5392

לסיכום אומר שאהבתי את ההרצאה, הייתה מאוד עשירה בתוכן, הוצגו המון טכנולוגיות והשילובים המטורפים ביניהם (Linix + ASP.Net ועוד), פוסט זה לא יספיק על מנת לתאר את כל מה שראינו שם...

תהנו ומתשיכו לעקוב :)

 

הראשון שיענה על השאלה הנ"ל יזכה בפיצה משפחתית של פיצה-הט (עם תוספות):

מה רואים בתמונה הגזורה הזאת, איזה קשר יש לה לטק-אד 2008 באילת ואיפה היה אפשר לצלם אותה?

התמונה:

image

(רמז: חפשו תמונות באחד הפוסטים שלי על טק-אד 2008)

 

בתאבון ;-)

היה פשוט WOW, אין לי מילים, מדהים, הפקה שרק חברות כמו מיקרוסוםט יודעות לעשות (וגם: כל הכבוד ל- HP על החסות)...

- אין לי מושג איך אני (או אנשים אחרים) יקומו מחר בבוקר להרצאות...

 

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

 

- מי שלא היה בקטע של הריקודים אז הוא לא היה In right condition... >> מרגריטות על הבר מאיזה ערבוב של משהו היו עושים לכם את זה, העיקר לעבור בשלום את הנסיעה באוטובוס למלון...

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

 

תהנו ותמשיכו לעקוב ;-)

אירוע "Digital Market" באילת

 

אתמול כתבתי על ההכנות לאירוע הנ"ל והיום אני מעלה מספר תמונות שהספקתי לעשות...

דוכנים של חברות הי-טק / טכנולוגיה שונות:

IMG_5349 IMG_5350

ה- Networking, בתאוריה האנשים אמורים להחליף כאן כרטיסי ביקור, אך למעשה נעשה כאן Promoting של חברות טכנולוגיות שונות שנתנו חסות לטק-אד. בגדול היה FUN וכל חברה עשתה תחרויות וחילקה פרסים, מספר אנשים קיבלו פרסים על זכייה בתחרות שתיית בירה:

IMG_5351 IMG_5352

בחוץ, שולחנות עם אוכל ו"זולות" לישיבה (תארו לכם 3,500 חנונים מנסים להיות קוליים):

IMG_5353 IMG_5354 IMG_5355

דוכנים של אינטל (ליאור שוב עושה פוזות למצלמה):

 IMG_5356 IMG_5357

  IMG_5359 IMG_5360 

IMG_5358

(שוב המצלמה הדפוקה, או שאני צלם דפוק, צילמתי שם מכוניות פורמולה, אבל לא מצאתי שום זכר בכרטיס זיכרון של המצלמה)

תהנו ותמשיכו לעקוב :)

מרצה: אייל ורדי

אייל צולל פנימה ל- WCF:

 IMG_5368 IMG_5371

יציאה ממודל העבודה עם WCF Configuration Files קבועים:

IMG_5369

המון פעמים יש צורך לקנפגערוץ  WCF עם binding שונה, או להחליט על סוג התקשרות (One-Way/Two-Way).

טיפול בחריגות שקורות בזמן ריצה ( כמו Exceptions in WebHttpBinding) ע"י Exceptions Channel Dispatcher:

IMG_5370 

שמירת Persistent State בשירות WCF, בניית CASH לשמירת מצב בזמן השימוש בקשר WCF:

 IMG_5372

אחד הדברים שהמון מפתחים התלוננו עליו היה - Saving the session state in WCF, בהרצאה הוסבר שכן ניתן לבנות מנגנון דומה גם ב- WCF.

בעיית ה- serialization (המרת טיפוסי מידע לתאימות עבור WCF, I/O, ו/או Remoting):

 IMG_5373

בגדול, WCF נותן לנו פתרון לכל אותם הדברים שהיינו משקיעים בהם המון שעות פיתוח (כמו sockets networking, http communications, web services, ועוד). מעבר המידע בין client ו- host מתבצע בצורה "עטופה", ז"א מפתחים לא צריכים לדאוג להעביר מידע בי-ביט, אלא אפשר להעביר אובייקטים שלמים בתנאי שהם מתאימים ל- serialization rules. אייל הסביר כיצד ניתן למנוע בעיות של סריאליזציה בתכנון נכון של מחקלות מסוג DataContract שאנו נעביר בין client ו- host.

עוד נושא שעלה בהרצאה: ממשקי מחקלות ServiceContract משותפים בין Host ו- Client, הוסבר מדוע VS2008 כותב את ה- interfaces פעמים, DataContact Serializer - עם anonymous types.

ביטול הצורך לשתף interface יחיד בין Host ו- Client ע"י ביטול ה- coupling ושימוש ביכולות החדשות של תת-חבילה WCF בדוט-נט 3.5, שימוש ב- attributes על מנת לעזור להנגשה של interface בין host ו- client.

ה- visualizer שהוצג בהרצאה:

 

לפי דעתי הייתה אחלה הרצאה, תהנו ותמשיכו לעקוב :)

מרצים: אסף שלי וגיא בן-חיים

(שוב מצטער על איכות הצילום, תמונות ווידאו ברמה גבוה תוכלו למצוא באתר הרשמי של טק-אד 2008)

IMG_5361

מהם Parallel Extensions (הרחבות של VS2005/8 לעיבוד מקבילי) או Parallel Computing (עיבוד מקבילי)?

בקצרה:

(א) עיבוד מקבילי - יכולת הרצה של משימות (tasks) במקביל אודות ליכולות של חומרה (מעבד), מערכת הפעלה ויישום שאנו בונים על מנת לספק יכולות כאלה. בקיצור, אתם יכולים לבנות שתי פונקציות ולהריתן במקביל ע"י ניצול של יותר ממעבד אחד או מעבד אחד בעל מספר ליבות או לחילופין יש מעבדים בעלי ליבה אחת שמדמים Multithreading.

(ב) הרחבות לעיבוד מקבילי - אלה מחלקות מוכנות שמגיעות בתת חבילה של דוט-נט 3.5 שתפקידן לספק לנו יכולת תכנות לניצול של עיבוד מקבילי. בקיצור: במקרה ויש לכם מעבד מרובה ליבות אתם יכולים להשתמש במחלקה "Parallel" על מנת להריץ פונקציות (או יותר נכון delegates של פונקציות) על גבי מספר מעבדים בו-זמנית.

כך למשל מריצים לולאה שעושה משהו כבד בתהליך נפרד בליבה (מעבד) נפרדת:

IMG_5365

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

אני זז להרצאה הבאה...

תהנו ותמשיכו לעקוב :)

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

(שוב סליחה על איכות הצילום שלי)

עיצוב המצגות בסגנון האתר:

IMG_5291

יוסי וליאור עושים פוזות למצלמה:

IMG_5288 IMG_5283

מנכ"ל מיקרוסופט (מדבר על מקבלי ההחלטות ויודע בתכלס שמי שיקבע בסוף זה המפתחים שהוא רואה באולם הזה):

IMG_5294 IMG_5295

הויידר ;-) - Vader Kiriaty

IMG_5298

הנה רבוטיי, רק אתמול התחלתם להשלים פערים בדוט-נט 3.0, קבלו עכשיו את דוט-נט 3.5, ולא בטוח שעד סוף האירוע מיקרוסופט לא תודיע כי בחודש הבא תצא חבילה של דוט-נט 3.8 ;-)

IMG_5300

אישית, אני לא יכול לראות יותר את LinQ:

IMG_5305

מה שכן, הזכירו לי להכנס לקטע של Paralel Processing:

IMG_5304

(צריך להתחיל לנצל את היכולות של מעבדים מרובי ליבות)

וכמובן WPF:

IMG_5306

(אל תפספסו מחר את ההרצאה של תמיר חסון)

הוצגה גם טכנולוגיה מעניינת (Deep Zoom):

IMG_5311

מכאן המשכתי להרצאה הבא...

תהנו ותמשיכו לעקוב :)

הרצאה של 16:45: So, You Have to Build a New GUI. What Technology and UX Would You
Select? -מרצה ד"ר יעקב גרינשפן ואמיר שבט ממיקרוסופט.

ההרצאה אינה טכנית ופונה למנהלים שהם שאמורים להחליט לגבי בחירת הטכנולוגיה (מחר אני אהיה בהרצאה של תמיר חסון שהיא תעסוק ב- WPF ויתר הדברים הקוליים שיש ב- UI בקט-אד הזה ומקווה לראות קוד בייחוד XAML), אבל ... >> UI + UX >> ה- babies שלי... ואני לא מפספס אף הרצאה של ד"ר יעקב ...

דרך הגב, זוהי הרשימה של ההרצאות (לא סופית, אני מתכוון לשנותה כדי לבוא גם להרצאה של דוד מאור):

image

אחזור להרצאה:

IMG_5322 IMG_5324 IMG_5325 IMG_5326 IMG_5327 IMG_5329 IMG_5318 IMG_5319 IMG_5320

(יש delay בין תחילת כתיבת הפוסט לבין פרסומו, כי משום מה עדיין יש בעיות התחברות לאינטרט)

בהרצאה מדובר על כל המהפכה האחרונה שקרתה בתחום - UI. איך זה משפיע על חיינו ואיך ממשקים של מיקרוסופט כמו אופיס משפיע על העיצובים העכשוויים שמפותחים ע"י חברות שונות, לקוחות רוצים ממשקים דמויי אאוטלוק, אופיס, וורד - מיקרוסופט מוכנה להסתכן בפיתוח ממשקים חדשים ולקוחות יצטרכו "להתרגל" אליהם, אבל זוהי תוצאה של מחקר ופיתוח רבי שנים ובסוף כולם יעתיקו את זה (אני לא נכנס כאן לוויכוח מי מעתיר ממי, אבל המון ממשקים יותר מדי דומים לאופיס).

- הסברים לתמונות הנ"ל בפוסט נפרד, עלו לי כמה רעיונות לביקורת על UI-UX של ימינו...

לדוגמא: זאת אפליקציה שלנו שפיתחנו ב- 3D לפני כשנתיים, תפקידה להמחיש את מהלכי משחק הכדורגל בזמן אמת ו/או ע"י הקלטה של מקרואים, זאת אפליקציה מהדור החדש שההתקדמות בטכנולוגיות UI מביאה לנו:

סוף היום שלי, הולך לנוח בחדר...

תהנו :) וצפו לעדכונים בהמשך ...

More Posts Next page »