Voice in the Gentle Wind

ธันวาคม 12, 2007

ซันเปิดตัว Project SceneGraph

Filed under: javaFX, ria — deans4j @ 7:17 am

ซันประกาศโอเพนซอร์สโครงการ SceneGraph โดยมันจะถูกนำมาใช้เป็นเอนจิ้นการทำ scene-graph ใน JavaFX Script

ความสามารถการทำ scene-graph เป็นคุณสมบัติที่สำคัญในงานแสดงผลกราฟิก เรามักจะพบเห็นการประยุกต์ใช้ scene-graph ในเกมยุคใหม่หรือการทำงานร่วมกับรูปภาพเวกเตอร์อยู่ทั่วไป อธิบายพอสังเขป scene-graph เป็น data structure แบบหนึ่ง มักนำเสนอในรูปแบบต้นไม้ (Tree) จะมีโหนดต่างๆ ซ้อนอยู่ภายใน การกระทำที่เกิดขึ้นกับโหนดกราฟิกรูปภาพใดๆ จะส่งผลกระทบต่อโหนดลูกของมันเสมอ ยกตัวอย่างในทางปฏิบัติ การโปรแกรม Swing ถือว่าใช้เทคนิก scene graph แบบง่ายๆ ภายใน container จะมี component ลูกซ้อนอยู่ เมื่อกระทำอะไรกับ container (ขยาย, หด, เปิดปิดการแสดงผล) จะส่งผลกระทบต่อไปยัง component ที่เป็นโหนดลูกของตัวเองเสมอ (ขยาย ยืดหด แสดงผลตาม)

ประโยชน์ของการทำงานในมุมมอง scene-graph จะช่วยให้เราโปรแกรมในมุมมองระดับที่สูงกว่า (เช่น การเล่นกับเอฟเฟกต์ โดยบอกให้โหนดนั้นหมุนเอียง 45 องศา ภายใน 2 วินาที โดยมีความเร่งเท่ากับ 2 หน่วย แทนการกำกับการวาดภาพใหม่ทั้งหมดทีละขั้นตอน) การนำเทคนิก scene-graph มาใช้ไม่ใช่เรื่องใหม่แต่อย่างใด ใน Swing มีโปรเจกต์ Timing Framework ที่ถูกออกแบบมาให้ช่วยแก้ปัญหานี้กับ Swing component โดยเฉพาะ ส่วนโปรเจกต์ SceneGraph จะใช้หลักการเดียวกันแต่ (ปัจจุบัน) สามารถประยุกต์ใช้กับกราฟิก 2D รูปภาพ หรือข้อความอื่นๆ ได้ด้วย โดยไม่ต้องฝังเทคนิก scene-graph ลงในสถาปัตยกรรม (physically) เหมือน Swing แต่ใช้ในรูปแบบมุมมองการคิดตามตรรกะ (logically) เพื่อความยืดหยุ่นในการปรับมุมมองและการประยุกต์ใช้เทคนิกขั้นสูงอื่นๆ กับโหนดต่างๆ ได้ง่ายกว่า

ก่อนหน้านี้ JavaFX Script ภายในใช้ Jazz เป็น scene-graph เอนจิ้น แต่เนื่องจาก Jazz หยุดการพัฒนาไปแล้ว และทีมงานต้องการใช้ประโยชน์เต็มที่จากอุปกรณ์กราฟิกฮาร์ดแวร์ และคุณสมบัติพิเศษที่มีใน 3D เอนจิ้นที่อยู่เบื้องล่าง (Direct3D, OpenGL) เลยเป็นที่มาของการสร้าง SceneGraph ขึ้นมาเอง

ความเร็วของ JavaFX Script กำลังถูกพัฒนาขึ้นเรื่อยๆ โปรเจกต์ JavaFX Script Compiler ขณะนี้ก็ผ่านก้าวแรกที่สำคัญไปแล้ว อันจะทำให้ JavaFX Script สามารถใช้ประโยชน์จาก Hotspot ใน JVM ได้อย่างเต็มที่ แทนการ interpret แบบเดิมๆ ส่วนเรื่องเครื่องมือการสร้างผลผลิตจาก JavaFX Script นั้น ที่ได้ข่าวมาตอนนี้กำลังซุ่มทำอยู่ คาดว่างาน JavaOne ปีหน้าคงได้เห็นกัน

ที่มา – Project SceneGraph

[update – จากที่พิจารณาอีกทีแล้วพบว่า Timing Framework แม้มันจะช่วยให้การสร้างเอฟเฟกต์ต่างๆ ง่ายขึ้นเยอะ (กำกับแต่เฉพาะว่าต้องการให้วาดอะไร ไม่ต้องบอกวิธีวาดอย่างไร) แต่ก็ยังไม่ได้โปรแกรมในมุมมองที่เป็น scene ยังคงวาดไปตรงๆ ซ้ำๆ ทุกครั้งที่ต้องการ ซึ่งถ้าเป็น scene-graph จริงๆ แล้วแต่ละ scene จะต้องถูกบันทึกไว้เป็นช็อตๆ แล้วเราโปรแกรมกับแต่ละ scene ได้ เท่าที่ไล่ดู API และตัวอย่างการใช้ SceneGraph แล้วพบว่ามันครอบ Timing Framework ไว้อีกชั้นนี่เอง เจ๋งมากๆ!!! ]

Advertisements

6 ความเห็น »

  1. เยี่ยมครับ ว่างเมื่อไหร่จะลองจับ JavaFX ทันที

    แต่ตอนนี้ขอทำงานกับ Blend + WPF ก่อน 🙂

    ความเห็น โดย .:: m3rLinEz ::. — ธันวาคม 12, 2007 @ 6:56 pm

  2. รอเครื่องมือครับ

    ความเห็น โดย GMz — ธันวาคม 16, 2007 @ 4:40 pm

  3. ไม่มีสรุปข่าว ตลอดปี 50 เหรอครับ?
    เห็๋นในทีวีเค้า ฮิตกันจัง

    ความเห็น โดย ibirdboy — มกราคม 2, 2008 @ 11:30 am

  4. Oh! หายไปนานเลยแวะมาตามอ่านข่าวคราวใหม่ๆซักหน่อย..

    ความเห็น โดย ShijiemiS — มกราคม 9, 2008 @ 11:50 pm

  5. สวัสดีครับ … แอบเห็นที่ Duocore ครับ

    เรื่อง Development Life Cycle นั้นเดี๋ยวไว้เว็บ Phase ใหม่ออกแล้วจะทำไว้ให้ดูกันครับ … ไม่ยากอย่างที่คิดครับ : )

    ขอบคุณครับ สวัสดีครับ

    ความเห็น โดย adamy — มีนาคม 27, 2008 @ 9:27 am

  6. deans4j ไม่เขียน blog ต่อแล้วเหรอครับอยากอ่านครับ

    ความเห็น โดย sdayu — พฤศจิกายน 10, 2010 @ 4:38 pm


RSS feed for comments on this post. TrackBack URI

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

บลอกที่ WordPress.com .

%d bloggers like this: