ผลต่างระหว่างรุ่นของ "รายงาน SIGGRAPH Asia 2009"
(ไม่แสดง 24 รุ่นระหว่างกลางโดยผู้ใช้ 3 คน) | |||
แถว 12: | แถว 12: | ||
== ตัวอย่างงานวิจัย == | == ตัวอย่างงานวิจัย == | ||
− | + | ขอยกตัวอย่างงานวิจัยสองซึ่งอยู่ในสาขาการสร้างภาพจากโมเดลทางคณิตศาสตร์ (rendering) อันเป็นปัญหาที่สำคัญมากหนึ่งปัญหาทางคอมพิวเตอร์กราฟิกส์ ในปัจจุบันนักวิจัยทาง rendering พยายามพัฒนาอัลกอริทีึมที่มีประสิทธิภาพสูงเพื่อจำลองการเดินทางของแสงในฉากที่มีความซับซ้อน เช่น มีจำนวนแหล่งกำเนิดแสงจำนวนมาก มีการสะท้อนไปมาของแสงในฉากหลายครั้ง หรือมีพื้นผิวของวัตถุในฉากเป็นผิวมันวาว เป็นต้น | |
=== Micro-Rendering for Scalable, Parallel Final Gathering === | === Micro-Rendering for Scalable, Parallel Final Gathering === | ||
แถว 21: | แถว 21: | ||
คณะผู้เขียนงานวิจัยได้เสนออัลกอริทีมที่สามารถลดเวลาการทำ final gathering ของ pixel แต่ละ pixel ลง โดยเรียกอัลกอริทีมของตนว่า micro-rendering เนื่องจากมันเป็นการพยายามวาดฉากที่ pixel แต่ละ pixel เห็น แต่ไม่กินเวลามากเหมือนกับการทำ rendering ทั่วไป อัลกอริทึมมีหลักในการทำงานดังต่อไปนี้ | คณะผู้เขียนงานวิจัยได้เสนออัลกอริทีมที่สามารถลดเวลาการทำ final gathering ของ pixel แต่ละ pixel ลง โดยเรียกอัลกอริทีมของตนว่า micro-rendering เนื่องจากมันเป็นการพยายามวาดฉากที่ pixel แต่ละ pixel เห็น แต่ไม่กินเวลามากเหมือนกับการทำ rendering ทั่วไป อัลกอริทึมมีหลักในการทำงานดังต่อไปนี้ | ||
− | * '''การแทนฉากด้วยจุด''' เมื่ออัลกอริทึมได้รับฉากซึ่งประกอบด้วยพื้นผิวต่างๆ มาเป็นข้อมูลเข้า มันจะสุ่มจุดขึ้นมาจำนวนหนึ่งจากพื้นผิวเหล่านี้ และจะใช้จุดเหล่านี้แทนฉากทั้งฉากในการคำนวณต่อไป จุดแต่ละจุดจะทำหน้าที่เป็นตัวแทนของพื้นผิวที่อยู่ใกล้ๆ จุดนั้น กล่าวคือเวลาทำการคำนวณการกระจายตัวของแสงในฉาก เราจะคิดว่าจุดเป็นแผ่นวงกลมแบนๆ ซึ่งมีพื้นที่เท่ากับพื้นที่พื้นผิวต่างๆ รอบๆ จุดนั้น และแผ่นวงกลมนี้หันหน้าไปในทิศทางเดียวกับเวกเตอร์ตั้งฉากของพื้นผิวที่จุดจุดนั้น | + | * '''การแทนฉากด้วยจุด''' เมื่ออัลกอริทึมได้รับฉากซึ่งประกอบด้วยพื้นผิวต่างๆ มาเป็นข้อมูลเข้า มันจะสุ่มจุดขึ้นมาจำนวนหนึ่งจากพื้นผิวเหล่านี้ และจะใช้จุดเหล่านี้แทนฉากทั้งฉากในการคำนวณต่อไป จุดแต่ละจุดจะทำหน้าที่เป็นตัวแทนของพื้นผิวที่อยู่ใกล้ๆ จุดนั้น กล่าวคือเวลาทำการคำนวณการกระจายตัวของแสงในฉาก เราจะคิดว่าจุดเป็นแผ่นวงกลมแบนๆ ซึ่งมีพื้นที่เท่ากับพื้นที่พื้นผิวต่างๆ รอบๆ จุดนั้น และแผ่นวงกลมนี้หันหน้าไปในทิศทางเดียวกับเวกเตอร์ตั้งฉากของพื้นผิวที่จุดจุดนั้น หลังจากสุ่มจุดขึ้นมาแล้วอัลกอริทึมจะทำการสร้างต้นไม้ทวิภาคเต็ม (full binary tree) ครอบจุดพวกนี้ไว้ โดยให้จุดต่างๆ เป็นใบไม้ (leaf) ส่วนโหนดภายใน (internal node) ของต้นไม้จะให้แทนพื้นผิวที่เกิดจากการรวมพื้นผิืวของจุดต่างๆ ที่อยู่ภายในต้นไม้ย่อยที่มีโหนดภายในโหนดนั้นเป็นราก (root) |
− | |||
* '''Micro-buffer''' เวลาทำการคำนวณสีของแต่ละ pixel อัลกอริทึมจะจองหน่วยความจำที่มีลักษณะเป็นตารางขนาดเล็กไม่เกิน 24 คูณ 24 ช่อง เรียกว่า micro-buffer เอาไว้ แต่ละช่องของ micro-buffer จะตรงกับรังสีหนึ่งรังสีที่ยิงออกจาก pixel โดยจะมีการเก็บโหนดในต้นไม้ในข้อที่แล้วที่ีอยู่ใกล้ pixel มากที่สุดตามทิศทางรังสีที่ยิงออกไป | * '''Micro-buffer''' เวลาทำการคำนวณสีของแต่ละ pixel อัลกอริทึมจะจองหน่วยความจำที่มีลักษณะเป็นตารางขนาดเล็กไม่เกิน 24 คูณ 24 ช่อง เรียกว่า micro-buffer เอาไว้ แต่ละช่องของ micro-buffer จะตรงกับรังสีหนึ่งรังสีที่ยิงออกจาก pixel โดยจะมีการเก็บโหนดในต้นไม้ในข้อที่แล้วที่ีอยู่ใกล้ pixel มากที่สุดตามทิศทางรังสีที่ยิงออกไป | ||
− | + | * '''Importance Warping''' ในการหาสีของจุดหนึ่งจุดนั้นจะต้องมีการนำแสงจากสิ่งแวดล้อมมา convolve กับ''ฟังก์ชันการกระจายการสะท้อนแสงสองทิศทาง'' (Bidirectional Reflectance Distribution Function ย่อว่า BRDF) ซึ่งตามหลักการแล้้วหากต้องการให้ผลการคำนวณมีความแม่นยำ เราจะต้องทำกาีรสุ่มตัวอย่างของแสงจากสิ่งแวดล้อมให้ถ้าหากในทิศทางใด BRDF มีค่าสูงก็ให้มีความน่าจะเป็นในการสุ่มแสงจากสิ่งแวดล้อมมากขึ้นตามไปด้วย (เทคนิคนี้เรียกว่าการทำ importance sampling) คณะผู้ทำงานวิจัยเสนอว่าให้นำฟังก์ัชัน BRDF ของพื้นผิว ณ pixel ไปกำหนดรังสีที่ตรงกับแต่ละช่องใน micro-buffer โดยให้ทิศทางที่ค่า BRDF สูงมีจำนวนรังสีสูง | |
− | * '''การทำ final gathering''' | + | * '''การทำ final gathering''' อ้ัลกอริทึมจะทำการคำนวณโหนดในต้นไม้ทวิภาคที่ใกล้กับ pixel ตามทิศทางของรังสีที่ตรงกับช่องแต่ละช่องของ micro-buffer โดยทำการค้นหาทางลึก (depth first search) ในต้นไม้ทวิภาคของจุด สำหรับแต่ละโหนดที่อัลกอริทึมเดินไปถึง มันจะตัดสินใจว่าแผ่นวงกลมที่เก็บอยู่ในโหนดนั้นใหญ่พอที่จะคลุมมุมตันเล็กๆ รอบๆ รังสีจาก pixel หรือไม่ ถ้าใช้มันจะเลือกโหนดนั้นเป็นโหนดที่ใกล้ที่สุด แต่ถ้าไม่ใช่ มันจะเข้าไปสำรวจลูกของโหนดนั้นต่อไป หลังจากสามารถคำนวณโหนดที่ใกล้ที่สุดของช่องแต่ละช่องแล้ว อัลกอริทึมจะดึงแสงที่แปล่งออกมาจากแผ่นวงกลมท่โหนดที่ใกล้ที่สุดมา แล้วนำแสงเหล่านั้นไป convolve กับ BRDF ได้เป็นสีของ pixel นั้น |
− | === | + | คณะผู้วิจัยได้ implement อัลกอริทึมข้างต้นเป็นโปรแกรมที่ใช้หน่วยประมวลผลกราฟิกส์ (GPU) และทำการทดลองใช้อัลกอริทึมสร้างภาพของฉากที่มีขนาดใหญ่พอสมควร (จำนวนจุดที่สุ่มตัวอย่างประมาณหนึ่งล้านจุด) และพบว่าอัลกอริทึมสามารถสร้างภาพที่มีคุณภาพสูง และมีปรากฏการณ์แสงสะท้อนไปมาในฉากหลายรอบ ได้ในความเร็วประมาณ 1.1 เฟรมต่อวินาที แสดงให้เห็นว่าอัลกอริทึมนี้มีประสิทธิภาพสูงกว่าอัลกอริทึมการทำ final gathering แบบเดิมที่อาจใช้เวลาเป็นชั่วโมงในการสร้างภาพจากฉากเดียวกัน |
− | + | ||
+ | ==== References ==== | ||
+ | # Ritschel, T., Engelhardt, T., Grosch, T., Seidel, H., Kautz, J., and Dachsbacher, C. ''Micro-rendering for scalable, parallel final gathering.'' In ACM SIGGRAPH Asia 2009 Papers (Yokohama, Japan, December 16 - 19, 2009). SIGGRAPH Asia '09. | ||
== คอร์สเกี่ยวกับคอมพิวเตอร์กราฟิกส์ == | == คอร์สเกี่ยวกับคอมพิวเตอร์กราฟิกส์ == | ||
− | + | การบรรยายภายใต้หัวข้อของคอร์สใน SIGGRAPH Asia ปีนี้มีการบรรยายในเรื่องที่น่าสนใจอยู่หลายเรื่อง รายละเอียดข้างล่างนี้เป็น 3 คอร์สที่ขอนำมาเป็นตัวอย่างของคอร์สที่ได้ถูกนำเสนอในปีนี้ | |
− | + | ||
− | + | ==== สร้างสแกนเนอร์สามมิติของตนเอง (Build Your Own 3D Scanner: Optical Triangulation for Beginners) ==== | |
− | + | โดย Douglas Lanman และ Gabriel Taubin | |
+ | |||
+ | ผู้บรรยายของคอร์สในเรื่องนี้คือ นาย Douglas Lanman ซึ่งเป็นนักศึกษาระดับปริญญาเอกของ Brown University และ นาย Gabriel Taubin ซึ่งเป็นรองศาสตราจารย์ของคณะวิศวกรรมศาสตร์และวิทยาการคอมพิวเตอร์จากมหาวิทยาลัยเดียวกัน การบรรยายนี้ได้ให้หลักการทางคณิตศาสตร์ที่จำเป็น ซอฟแวร์ และวิธีการวางตำแหน่งโปรเจคเตอร์กับกล้อง เพื่อใช้ในการสร้างสแกนเนอร์สามมิติของตนเองขึ้นมาใช้งาน โดยทั่วไปแล้วเทคโนโลยีสแกนเนอร์สามมิติถูกจัดแบ่งออกเป็น 2 ลักษณะคือ ประเภทที่ใช้เทคโนโลยีแบบ active และเทคโนโลยีแบบ passive สแกนเนอร์ที่ใช้เทคโนโลยีแบบ active จำเป็นต้องใช้แหล่งกำเนิดความส่องสว่างที่อยู่ภายใต้การควบคุมของเครื่องสแกนเนอร์ โดยที่สแกนเนอร์ใช้แถบลำแสงเลเซอร์ฉายไปตกกระทบที่วัตถุเพื่อให้กล้องบันทึกภาพแถบลำแสงนี้แล้วถูกนำไปใช้เพื่อค้นหาพิกัดที่สามารถนำมาประมาณรูปลักษณะของวัตถุนั้นได้ ส่วนสแกนเนอร์ที่ใช้เทคโนโลยีแบบ passive จะไม่อาศัยความสามารถในการควบคุมความส่องสว่างของแหล่งกำเนิดแสง แต่อาศัยข้อมูลอย่างอื่นเพิ่มเติม อาทิเช่น รูปภาพที่ถูกบันทึกด้วยเทคนิค Stereoscopic Imaging เป็นต้น | ||
+ | |||
+ | '''''...still editing...''''' | ||
+ | |||
+ | ==== Casting Shadows in Real Time ==== | ||
+ | ==== Theory and Methods of Lightfield Photography ==== | ||
== ตัวอย่างงานจาก Emerging Technologies : Robot Musician == | == ตัวอย่างงานจาก Emerging Technologies : Robot Musician == |
รุ่นแก้ไขปัจจุบันเมื่อ 19:07, 8 กุมภาพันธ์ 2553
เนื้อหา
เกี่ยวกับงาน
งาน SIGGRAPH Asia 2009 (http://www.siggraph.org/asia2009) เป็นงานสัมมนาทางวิชาการและแสดงนวัตกรรมทางคอมพิวเตอร์กราฟิกส์ ซึ่งจัดขึ้นในระหว่างวันที่ 16-19 ธันวาคม พ.ศ. 2552 ณ เมืองโยโกฮามา ประเทศญี่ปุ่น ภายในงานมีกิจกรรมที่หลากหลายดังต่อไปนี้
- การนำเสนอผลงานวิจัย ส่วนใหญ่มีเนื้อหาเกี่ยวกับการประยุกต์ใช้คอมพิวเตอร์เพื่อสร้างสื่อวิทัศน์ โดยเน้นการสร้างภาพนิ่งและภาพยนตร์สามมิติ นอกจากนี้ยังมีการนำเสนองานวิจัยทางด้านความสามารถในการมองเห็นของมนุษย์ (perception) และการประยุกต์ใช้คอมพิวเตอร์กับการถ่ายภาพ (computational photography) อีกด้วย งานวิจัยที่ได้รับคัดเลือกให้นำเสนอในงาน SIGGRAPH Asia 2009 จะถูกตีพิมพ์ลงใน special issue ของ ACM Transaction on Graphics ซึ่งเป็นวารสารวิชาการที่ได้รับการยอมรับและอ้างอิงถึงมากที่สุดในด้านคอมพิวเตอร์กราฟิกส์ และมี impact factor มาที่สุดเป็นอันดับที่ 5 ของวารสารทางวิทยาการคอมพิวเตอร์ทั้งหมดในปี พ.ศ. 2551 [1] อนึ่ง ในงานนอกจากจะมีการนำเสนอผลงานวิจัยเต็มแล้ว ยังมีการแสดงโปสเตอร์และการแสดงผลงานความยาวสั้น (sketches) อีกด้วย
- คอร์สเกี่ยวกับคอมพิวเตอร์กราฟิกส์ โดยมีนักวิจัยทางคอมพิวเตอร์กราฟิกส์ชั้นนำ ตัวแทนจากบริษัทเกี่ยวกับเทคโนโลยีคอมพิวเตอร์ มาให้ความรู้ที่หลากหลาย ตั้งแต่ความรู้ทางเทคนิคเกี่ยวกับหัวข้อวิจัย ความรู้เกี่ยวกับการเขียนโปรแกรมขั้นพื้นฐาน ไปจนถึงทักษะในการสร้างภาพยนตร์สั้น ถ่ายภาพ และการพากย์เสียงในภาพยนตร์การ์ตูน
- เทคโนโลยีใหม่ (Emerging Technologies) จะเป็นการนำเสนอผลงานสั้นๆที่นำเอาเทคนิดด้านคอมพิวเตอร์กราฟิกส์และด้านปฏิสัมพันธ์มาผสมผสานระหว่างเทคโนโลยี มนุษย์ สังคม และสิ่งแวดล้อม เช่น เทคโนโลยีการสัมผัส (haptic technology) เพื่อให้ผู้ใช้ได้รับรู้ถึงข้อมูลผ่านการสัมผัส หนึ่งในตัวอย่างผลงานของการใช้เทคโนโลยีการสัมผัสในงานประชุมครั้งนี้ได้ช่วยให้ผู้พิการทางสายตาสามารถรับรู้ถึงสิ่งกีดขวางล่วงหน้าได้ Emerging Technologies นี้คล้ายกับงานแสดงศิลปะแต่เน้นไปทางงานวิจัยทางเทคโนโลยีมากกว่า
- โปรแกรมสำหรับนักการศึกษา ประกอบด้วย (1) การนำเสนอผลงานวิจัยทางด้านการศึกษาทางด้านคอมพิวเตอร์กราฟิกส์ หรือการใช้คอมพิวเตอร์กราฟิกส์ช่วยจัดการศึกษา (2) การนำเสนอแนวทางการศึกษาด้านคอมพิวเตอร์กราฟิกส์ของบริษัทหรือสถาบันศึกษาต่างๆ และ (3) การแสดงปาฐกถาของผู้ทรงคุณวุฒิ
- งานออกร้าน ของบริษัทที่เกี่ยวข้องกับคอมพิวเตอร์กราฟิกส์ เช่น Nvidia, Intel, และ Square-Enix และสถาบันการศึกษาที่มีหลักสูตรทางคอมพิวเตอร์กราฟิกส์ เช่น มหาวิทยาลัยเทคโนโลยีโตเกียว, มหาวิทยาลัยเคโอ, และมหาวิทยาลับ Academy of Art เป็นต้น
- งานแสดงศิลปะ ซึ่งโดยมากเป็นสื่อประสมที่ผู้ใช้สามารถจับต้องและมีปฏิสัมพันธ์ด้วยได้ เช่น การจำลองสิ่งมีชีวิตเสมือนซึ่งเคลื่อนที่มาเต็มบริเวณหน้าจอเมื่อผู้ใช้ส่งเสียง (http://artificialnature.mat.ucsb.edu/) เป็นต้น
- การฉายอนิเมชันที่สร้างจากคอมพิวเตอร์ งาน SIGGRAPH เปิดให้บริษัททำอนิเมชันและนักศึกษาทางศิลปะส่งภาพยนตร์อนิเมชันมาประกวด ภาพยนตร์ที่ได้รับคัดเลือกจำนวนหนึ่งจะถูกนำไปฉายในหอประชุมใหญ่ในตอนเย็นของทุกวันที่มีงานประชุม อีกส่วนหนึ่งจะนำไปฉายเป็นรอบๆ ในห้องขนาด 60 ที่นั่งตลอดทั้งวัน
ตัวอย่างงานวิจัย
ขอยกตัวอย่างงานวิจัยสองซึ่งอยู่ในสาขาการสร้างภาพจากโมเดลทางคณิตศาสตร์ (rendering) อันเป็นปัญหาที่สำคัญมากหนึ่งปัญหาทางคอมพิวเตอร์กราฟิกส์ ในปัจจุบันนักวิจัยทาง rendering พยายามพัฒนาอัลกอริทีึมที่มีประสิทธิภาพสูงเพื่อจำลองการเดินทางของแสงในฉากที่มีความซับซ้อน เช่น มีจำนวนแหล่งกำเนิดแสงจำนวนมาก มีการสะท้อนไปมาของแสงในฉากหลายครั้ง หรือมีพื้นผิวของวัตถุในฉากเป็นผิวมันวาว เป็นต้น
Micro-Rendering for Scalable, Parallel Final Gathering
โดย Tobias Ritschel, T. Engelhardt, T. Grosch, Hans-Peter Seidel, Jan Kautz, และ Carsten Dachsbacher
งานวิจัยชิ้นนี้พัฒนาอัลกอริทึมความเร็วสูงสำหรับการทำ final gathering ซึ่งเป็นเทคนิคสำหรับการสร้างรูปภาพซึ่งมีคุณภาพสูงหลังจากได้มีการคำนวณการกระจายตัวของแสดงในฉากอย่างหยาบๆ แล้ว การทำ final gathering นั้นเป็นการหาสีของ pixel แต่ละ pixel ในภาพ โดยการพยายามหาว่าจุดนั้นได้รับแสงความเข้มเท่าไหร่จากสิ่งแวดล้อมบ้าง (เพื่อที่ในท้ายที่สุดจะได้ทราบว่าวัตถุ ณ จุดนั้นจะสะท้อนแสงอะไรกลับออกมา) กล่าวคือเป็นการพยายามตอบคำถามว่าหากมีผู้สังเกตคนหนึ่งยืนอยู่ที่จุดที่ตรงกับ pixel นั้นแล้ว ผู้สังเกตคนนั้นเมื่อมองไปรอบตัวแล้วจะเห็นภาพอะไร ในทางปฏิบัติจะมีการยิงรังสีจำนวนมาก (โดยปกติแล้วจะใช้ 256 รังสีขึ้นไป) จากจุดในฉากที่ตรงกับ pixel ไปในทิศทางต่างๆ รอบตัวจุดนั้น แล้วหาว่ารังสีนั้นไปตัดกับวัตถุใดในฉาก แล้วจึงคิดว่าแสงที่วัตถุที่ถูกรังสีตัดเป็นวัตถุแรกเปล่งออกมาเป็นแสงที่ผู้สังเกตเห็นเมื่อมองไปในมุมเดียวกับรังสีที่ยิง อย่างไรก็ดี การทำ final gathering มักใช้เวลานานมากเนื่องจากการคำนวณว่ารังสีตัดกับวัตถุใดเป็นวัตถุแรกในฉากที่ใหญ่นั้นทำได้ช้า และเมื่อมีรังสีจำนวนมากประกอบกับ pixel จำนวนมากยิ่งทำให้กระบวนการโดยรวมช้าลงไปอีก
คณะผู้เขียนงานวิจัยได้เสนออัลกอริทีมที่สามารถลดเวลาการทำ final gathering ของ pixel แต่ละ pixel ลง โดยเรียกอัลกอริทีมของตนว่า micro-rendering เนื่องจากมันเป็นการพยายามวาดฉากที่ pixel แต่ละ pixel เห็น แต่ไม่กินเวลามากเหมือนกับการทำ rendering ทั่วไป อัลกอริทึมมีหลักในการทำงานดังต่อไปนี้
- การแทนฉากด้วยจุด เมื่ออัลกอริทึมได้รับฉากซึ่งประกอบด้วยพื้นผิวต่างๆ มาเป็นข้อมูลเข้า มันจะสุ่มจุดขึ้นมาจำนวนหนึ่งจากพื้นผิวเหล่านี้ และจะใช้จุดเหล่านี้แทนฉากทั้งฉากในการคำนวณต่อไป จุดแต่ละจุดจะทำหน้าที่เป็นตัวแทนของพื้นผิวที่อยู่ใกล้ๆ จุดนั้น กล่าวคือเวลาทำการคำนวณการกระจายตัวของแสงในฉาก เราจะคิดว่าจุดเป็นแผ่นวงกลมแบนๆ ซึ่งมีพื้นที่เท่ากับพื้นที่พื้นผิวต่างๆ รอบๆ จุดนั้น และแผ่นวงกลมนี้หันหน้าไปในทิศทางเดียวกับเวกเตอร์ตั้งฉากของพื้นผิวที่จุดจุดนั้น หลังจากสุ่มจุดขึ้นมาแล้วอัลกอริทึมจะทำการสร้างต้นไม้ทวิภาคเต็ม (full binary tree) ครอบจุดพวกนี้ไว้ โดยให้จุดต่างๆ เป็นใบไม้ (leaf) ส่วนโหนดภายใน (internal node) ของต้นไม้จะให้แทนพื้นผิวที่เกิดจากการรวมพื้นผิืวของจุดต่างๆ ที่อยู่ภายในต้นไม้ย่อยที่มีโหนดภายในโหนดนั้นเป็นราก (root)
- Micro-buffer เวลาทำการคำนวณสีของแต่ละ pixel อัลกอริทึมจะจองหน่วยความจำที่มีลักษณะเป็นตารางขนาดเล็กไม่เกิน 24 คูณ 24 ช่อง เรียกว่า micro-buffer เอาไว้ แต่ละช่องของ micro-buffer จะตรงกับรังสีหนึ่งรังสีที่ยิงออกจาก pixel โดยจะมีการเก็บโหนดในต้นไม้ในข้อที่แล้วที่ีอยู่ใกล้ pixel มากที่สุดตามทิศทางรังสีที่ยิงออกไป
- Importance Warping ในการหาสีของจุดหนึ่งจุดนั้นจะต้องมีการนำแสงจากสิ่งแวดล้อมมา convolve กับฟังก์ชันการกระจายการสะท้อนแสงสองทิศทาง (Bidirectional Reflectance Distribution Function ย่อว่า BRDF) ซึ่งตามหลักการแล้้วหากต้องการให้ผลการคำนวณมีความแม่นยำ เราจะต้องทำกาีรสุ่มตัวอย่างของแสงจากสิ่งแวดล้อมให้ถ้าหากในทิศทางใด BRDF มีค่าสูงก็ให้มีความน่าจะเป็นในการสุ่มแสงจากสิ่งแวดล้อมมากขึ้นตามไปด้วย (เทคนิคนี้เรียกว่าการทำ importance sampling) คณะผู้ทำงานวิจัยเสนอว่าให้นำฟังก์ัชัน BRDF ของพื้นผิว ณ pixel ไปกำหนดรังสีที่ตรงกับแต่ละช่องใน micro-buffer โดยให้ทิศทางที่ค่า BRDF สูงมีจำนวนรังสีสูง
- การทำ final gathering อ้ัลกอริทึมจะทำการคำนวณโหนดในต้นไม้ทวิภาคที่ใกล้กับ pixel ตามทิศทางของรังสีที่ตรงกับช่องแต่ละช่องของ micro-buffer โดยทำการค้นหาทางลึก (depth first search) ในต้นไม้ทวิภาคของจุด สำหรับแต่ละโหนดที่อัลกอริทึมเดินไปถึง มันจะตัดสินใจว่าแผ่นวงกลมที่เก็บอยู่ในโหนดนั้นใหญ่พอที่จะคลุมมุมตันเล็กๆ รอบๆ รังสีจาก pixel หรือไม่ ถ้าใช้มันจะเลือกโหนดนั้นเป็นโหนดที่ใกล้ที่สุด แต่ถ้าไม่ใช่ มันจะเข้าไปสำรวจลูกของโหนดนั้นต่อไป หลังจากสามารถคำนวณโหนดที่ใกล้ที่สุดของช่องแต่ละช่องแล้ว อัลกอริทึมจะดึงแสงที่แปล่งออกมาจากแผ่นวงกลมท่โหนดที่ใกล้ที่สุดมา แล้วนำแสงเหล่านั้นไป convolve กับ BRDF ได้เป็นสีของ pixel นั้น
คณะผู้วิจัยได้ implement อัลกอริทึมข้างต้นเป็นโปรแกรมที่ใช้หน่วยประมวลผลกราฟิกส์ (GPU) และทำการทดลองใช้อัลกอริทึมสร้างภาพของฉากที่มีขนาดใหญ่พอสมควร (จำนวนจุดที่สุ่มตัวอย่างประมาณหนึ่งล้านจุด) และพบว่าอัลกอริทึมสามารถสร้างภาพที่มีคุณภาพสูง และมีปรากฏการณ์แสงสะท้อนไปมาในฉากหลายรอบ ได้ในความเร็วประมาณ 1.1 เฟรมต่อวินาที แสดงให้เห็นว่าอัลกอริทึมนี้มีประสิทธิภาพสูงกว่าอัลกอริทึมการทำ final gathering แบบเดิมที่อาจใช้เวลาเป็นชั่วโมงในการสร้างภาพจากฉากเดียวกัน
References
- Ritschel, T., Engelhardt, T., Grosch, T., Seidel, H., Kautz, J., and Dachsbacher, C. Micro-rendering for scalable, parallel final gathering. In ACM SIGGRAPH Asia 2009 Papers (Yokohama, Japan, December 16 - 19, 2009). SIGGRAPH Asia '09.
คอร์สเกี่ยวกับคอมพิวเตอร์กราฟิกส์
การบรรยายภายใต้หัวข้อของคอร์สใน SIGGRAPH Asia ปีนี้มีการบรรยายในเรื่องที่น่าสนใจอยู่หลายเรื่อง รายละเอียดข้างล่างนี้เป็น 3 คอร์สที่ขอนำมาเป็นตัวอย่างของคอร์สที่ได้ถูกนำเสนอในปีนี้
สร้างสแกนเนอร์สามมิติของตนเอง (Build Your Own 3D Scanner: Optical Triangulation for Beginners)
โดย Douglas Lanman และ Gabriel Taubin
ผู้บรรยายของคอร์สในเรื่องนี้คือ นาย Douglas Lanman ซึ่งเป็นนักศึกษาระดับปริญญาเอกของ Brown University และ นาย Gabriel Taubin ซึ่งเป็นรองศาสตราจารย์ของคณะวิศวกรรมศาสตร์และวิทยาการคอมพิวเตอร์จากมหาวิทยาลัยเดียวกัน การบรรยายนี้ได้ให้หลักการทางคณิตศาสตร์ที่จำเป็น ซอฟแวร์ และวิธีการวางตำแหน่งโปรเจคเตอร์กับกล้อง เพื่อใช้ในการสร้างสแกนเนอร์สามมิติของตนเองขึ้นมาใช้งาน โดยทั่วไปแล้วเทคโนโลยีสแกนเนอร์สามมิติถูกจัดแบ่งออกเป็น 2 ลักษณะคือ ประเภทที่ใช้เทคโนโลยีแบบ active และเทคโนโลยีแบบ passive สแกนเนอร์ที่ใช้เทคโนโลยีแบบ active จำเป็นต้องใช้แหล่งกำเนิดความส่องสว่างที่อยู่ภายใต้การควบคุมของเครื่องสแกนเนอร์ โดยที่สแกนเนอร์ใช้แถบลำแสงเลเซอร์ฉายไปตกกระทบที่วัตถุเพื่อให้กล้องบันทึกภาพแถบลำแสงนี้แล้วถูกนำไปใช้เพื่อค้นหาพิกัดที่สามารถนำมาประมาณรูปลักษณะของวัตถุนั้นได้ ส่วนสแกนเนอร์ที่ใช้เทคโนโลยีแบบ passive จะไม่อาศัยความสามารถในการควบคุมความส่องสว่างของแหล่งกำเนิดแสง แต่อาศัยข้อมูลอย่างอื่นเพิ่มเติม อาทิเช่น รูปภาพที่ถูกบันทึกด้วยเทคนิค Stereoscopic Imaging เป็นต้น
...still editing...
Casting Shadows in Real Time
Theory and Methods of Lightfield Photography
ตัวอย่างงานจาก Emerging Technologies : Robot Musician
ในการประชุมวิชาการ SIGGRAPH Asia 2009 นั้น หนึ่งในเทคโนโลยีน่าสนใจที่ครอบคลุมทั้งวิทยาการด้านคอมพิวเตอร์และศิลปศาสตร์ก็คือหุ่นยนต์นักดนตรี ซึ่งพัฒนาโดยทีม Robotic Musicianship Group ศูนย์เทคโนโลยีทางดนตรี (Center for Music Technology) ของสถาบันเทคโนโลยีจอร์เจีย (Georgia Institute of Technology) ซึ่งนำทีมโดยศาสตราจารย์ Gil Weinberg
หุ่นยนต์เล่นดนตรีของทีมนี้ไม่ใช่การโปรแกรมหุ่นยนต์ให้เล่นเครื่องดนตรีอย่างโดดๆ แต่เป็นการสร้างหุ่นยนต์ซึ่งสามารถเล่นดนตรีไปพร้อมๆกับมนุษย์ได้ หุ่นยนต์สามารถฟังดนตรีที่มนุษย์เล่น จับจังหวะและทำนองของดนตรี จากนั้นก็สามารถเล่นตามมนุษย์ได้อย่างกลมกลืนกัน นอกจากนี้หุ่นยนต์ยังสามารถสร้างสรรค์เสียงดนตรีด้วยตนเองในขณะที่กำลังเล่นอยู่ โดยใช้พื้นฐานจากสไตล์เพลงที่มนุษย์เล่นได้ด้วย ทักษะการเล่นดนตรีโดยปรับเปลี่ยนโน้ตขณะที่เล่นเลยนั้นในทางดนตรีเรียกว่า improvisation ซึ่งเป็นทักษะชั้นสูงที่มักใช้กันในดนตรีประเภทแจ๊ส
เทคโนโลยีที่สามารถทำให้หุ่นยนต์เล่นดนตรีไปพร้อมมนุษย์ได้นั้นมีดังนี้
การจับจังหวะ (Beat Detection)
จังหวะเป็นพื้นฐานของดนตรี ดังนั้นการที่หุ่นยนต์จะเล่นดนตรีไปพร้อมกับมนุษย์ได้อย่างพร้อมเพรียงนั้น ต้องสามารถจับจังหวะของดนตรีที่มนุษย์เล่นได้ก่อน ทีมวิจัย Robotic Musicianship ได้สร้างหุ่นยนต์เล่นกลองที่ชื่อ Haile ขึ้นมาเพื่อทดสอบโปรแกรมการจับจังหวะที่ทีมได้พัฒนาขึ้น โดยให้มนุษย์เล่นกลองแล้วให้ Haile ตีกลองของตนเองให้เข้าจังหวะ จากวิดิโอซึ่งบันทึกภาพการทดสอบ Haile ช่วงแรกๆนั้น ถ้ากลองที่มนุษย์ตีนั้นมีจังหวะที่ช้าและไม่ซับซ้อน Haile จะสามารถตีกลองให้เข้าจังหวะได้ แต่ถ้ามนุษย์เล่นจังหวะที่เร็วและซับซ้อนมากขึ้น อาจทำให้ Haile งงและตีกลองไม่ถูกจังหวะได้ ต่อมาทางทีมได้พัฒนา Haile ให้จับจังหวะได้ดีขึ้น และสามารถ improvise ได้ จนสามารถเล่นคู่กับมนุษย์ได้ (หุ่นยนต์และมนุษย์เล่นกลองตัวเดียวกัน โดยสับกันเล่นในลักษณะส่งต่อเพลงกัน) ล่าสุดนั้นได้มีการแสดงคอนเสิร์ตกลองโดยมี Haile เป็นหนึ่งในผู้เล่นร่วมกับมนุษย์อีก 4 คน ในตัวอย่างวิดิโอ Haile สามารถเล่นกลองควบคู่ไปกับมนุษย์ได้และสามารถจบเพลงพร้อมๆกับมนุษย์ได้อีกด้วย
การจับท่วงทำนองเพลงและความกลมกลืนของเพลง (Melodic and Harmonic Detection)
หุ่นยนต์ตัวที่สองที่ทางทีมได้่พัฒนาขึ้นนั้นชื่อ Shimon ซึ่งสามารถเล่นมาริมบาได้ (Marimba: เครื่องดนตรีเคาะเข้าจังหวะ ซึ่งมีแผงไม้หรือเหล็กที่ใช้ในการสร้างเสียง คล้ายๆระนาดไทย) เนื่องจากมาริมบานั้นสามารถเล่นโน้ตได้ ดังนั้นการเล่นจะมีความซับซ้อนกว่ากลองซึ่งเป็นเครื่องเคาะจังหวะเท่านั้น Shimon สามารถฟังเสียงดนตรีที่มนุษย์เล่นและวิเคราะห์ได้ว่ามนุษย์กำลังเล่นเพลงสไตล์ไหน จากนั้น Shimon จะสร้างโน้ตดนตรีใหม่ของท่วงทำนองเดิมในสไตล์ที่มนุษย์กำลังเล่นอยู่ และเล่นออกมาเป็นเพลงได้ รูปที่ 2: Shimon จาก http://gtcmt.coa.gatech.edu/?p=628
การวิเคราะห์สไตล์การเล่นเพลงของมนุษย์นั้น ใช้เทคนิค Hidden Markov Model เพื่อสร้างแบบจำลองของดนตรีสไตล์ต่างๆ (ทางทีมวิจัยเน้นการเล่นดนตรีประเภทแจ๊สเป็นหลัก โดยสร้างโมเดลการเล่นดนตรีของนักดนตรีแจ๊สแต่ละคน) โดยใช้เพลงที่นักดนตรีเล่นเป็นข้อมูลเข้าในการสร้างโมเดล เมื่อ Shimon ได้ยินดนตรี จะนำท่วงทำนองและจังหวะมาวิเคราะห์ตามโมเดลว่าคล้ายกับของนักดนตรีคนใด ส่วนการสร้างท่วงทำนองใหม่นั้น ใช้หลักการของ Genetic Algorithm ในการหาผลลัพธ์(ท่วงทำนอง)ใหม่ที่เข้ากันกับโมเดลที่วิเคราะห์มาในขั้นต้น
นอกจากนี้ Shimon ยังถูกสร้างขึ้นมาเพื่อเล่นดนตรีไปคู่กับมนุษย์ โดยหุ่นยนต์สามารถส่งเพลงต่อให้มนุษย์ได้ด้วยโดยการใช้ visual cue ทีมวิจัยได้สร้าง Shimon โดยสร้างส่วนหัวให้ขยับและโยกขึ้นลงซ้ายขวาได้ Shimon จะโยกหัวตามจังหวะเพลง และสามารถโยกหัวไปทางมนุษย์เพื่อให้มนุษย์เล่นเพลงต่อได้ด้วย
Shimon ได้ร่วมเล่นดนตรีกับมนุษย์รวมไปถึงเล่นดนตรีควบคู่ไปกับ Haile อีกด้วย (โดยมีมนุษย์เล่นด้วย)
จุดน่าสนใจเรื่องการเขียนโปรแกรม improvisation คือปัจจุบัน Shimon และ Haile สามารถ improvise ได้จากจังหวะและท่วงทำนอง (Rythm and Melody) แต่ยังไม่สามารถจับ Chord Progression ได้ และยังไม่สามารถ improvise จากข้อมูลส่วนนี้ได้ ผู้วิจัยได้อธิบายว่าการจับคอร์ดนั้นยากกว่าการจับเมโลดีมาก เพราะเป็นการเล่นโน้ตหลายตัวพร้อมๆกัน
การควบคุม Shimon ผ่านอุปกรณ์พกพา
ทางทีมวิจัยได้คิดค้นวิธีเล่นดนตรีคู่ไปกับ Shimon แม้ว่ามนุษย์ผู้นั้นจะเล่นดนตรีไม่ได้ โดยได้สร้างโปรแกรมบนเครื่อง iPhone ที่ชื่อ ZOOZbeat ซึ่งโดยตัวมันเองนั้นเป็นโปรแกรมดัดแปลงเสียงดนตรี ผู้ใช้สามารถกำหนดท่วงทำนองเพลงลงไปในโปรแกรม และสามารถดัดเสียงหรือจังหวะของเพลงนั้นได้ด้วยการขยับ iPhone (ทำให้เกิดการเปลี่ยนแปลงใน accelerometer ใน iPhone) โปรแกรมจะสร้างท่วงทำนองใหม่ขึ้นมาจากของเดิม โปรแกรมเดียวกันนี้สามารถส่งข้อมูลเพลงนั้นไปให้ Shimon ผ่าน network ได้ และ Shimon จะ improvise เพลงจากท่วงทำนองที่มนุษย์แต่งขึ้น นอกจากนี้มนุษย์ยังสามารถควบคุมการ improvise ของ Shimon ได้ว่าจะให้มีจังหวะเร็วช้า หรือให้ใช้สไตล์การเล่นของใครอีกด้วย
References
- GTCMT > Robotic Musicianship Groups [ออนไลน์] เข้าถึงจาก http://gtcmt.coa.gatech.edu/?p=137 เมื่อ 21 ม.ค. 2553
ตัวอย่างงานจาก Sketches : SixthSense
เป็นงานวิจัยที่พัฒนาโดย Mr. Pranav Mitra ภายใต้การดูแลของ Professor Pattie Maes จาก MIT Media Lab
SixthSense เป็น interface ที่ควบคุมโดยท่าทาง (gesture) ที่สามารถสวมใส่ได้ ลักษณะอุปกรณ์เป็นสายคล้องคอที่มีกล้องถ่ายรูป ไมโครโฟน ลำโพงและเครื่องฉายวีดิทัศน์ รวมอยู่ด้วยกัน มีขนาดเล็กสามารถพกพาได้ อุปกรณ์สามารถจับภาพที่คุณเห็น และ พิจารณาจากท่าทางที่สื่อสารตามธรรมชาติของคุณเสมือนคุณมีปฎิสัมพันธ์กับวัตถุจริง แล้วทำงานต่างๆ เช่น คุณกางนิ้วออกต่อกันเป็นลักษณะกรอบรูป อุปกรณ์จะแปลผลท่าทางแล้วสามารถถ่ายภาพโดยอัตโนมัติโดยคุณไม่ต้องกดปุ่ม หรือเมื่อคุณวาดวงกลมที่ข้อมือเพื่อดูเวลาอุปกรณ์ก็จะฉายภาพนาฬิกาบนข้อมือของคุณ คุณสามารถหาข้อมูลที่คุณต้องการโดยแสดงท่าทางธรรมชาติ ในการสั่งงานให้อุปกรณ์เชื่อมต่อไปยังอินเตอร์เน็ตเพื่อค้นหาข้อมูลที่คุณต้องการมาแสดง ในการแสดงผลคุณสามารถแสดงบนวัตถุที่อยู่รอบตัวเช่น ผนัง กระดาษ กระดาษหนังสือพิมพ์ ซึ่ง ผลที่แสดงเหล่านี้จะรวมเข้าด้วยกันกับสิ่งแวดล้อมในโลกทางกายภาพ เช่นคุณสามารถเล่นเตะบอลเสมือนที่เป็นภาพแสดงจากเครื่องฉายภาพกับเพื่อนคุณขณะโดยสารบนรถไฟใต้ดิน โดยภาพลูกบอลถูกแสดงที่พื้นรถไฟฟ้า หรือคุณสามารถแสดงรูปถ่ายต่างๆให้เพื่อนดูที่ผนังห้อง รวมถึงการค้นหา ย่อ ขยายภาพ เลือกภาพ เป็นต้น 
ที่มาของรูป http://www.media.mit.edu/research/groups/1461/sixthsense
วิดีทัศน์ http://www.wired.com/epicenter/2009/02/ted-digital-six
ตัวอย่างงานจาก Sketches : การติดตามตำแหน่งโดยใช้ RFID ในสิ่งทอ
หนึ่งในการนำเสนอผลงานความยาวสั้น (sketches) ที่น่าสนใจก็คือ การนำเอาเทคโนโลยี RFID ไปถักทอผสมผสานกับเนื้อผ้าเพื่อใช้ในระบบติดตามตำแหน่ง (Development of an RFID Textile for Location-Aware Systems) งานวิจัยนี้เป็นงานของมหาวิทยาลัยโตเกียว (University of Tokyo) ที่พัฒนาร่วมกับศูนย์เทคโนโลยีทางอุตสาหกรรมเมืองฟูกูมิ (Industrial Technology Center of Fukumi Prefecture)
ในปัจจุบัน ทั้งทางในงานภาคอุตสาหกรรมและงานวิจัยได้นำเทคโนโลยี RFID มาใช้ในระบบติดตามตำแหน่งอย่างแพร่หลาย เช่น ในการติดตามตำแหน่งพัสดุ สินค้า หรือ ตัวบุคคล เป็นต้น การติดตามตำแหน่งโดยใช้ RFID นี้จะมีอุปกรณ์หลักสองอย่างคือ RFID tag และ RFID reader โดยที่ RFID tag จะเก็บข้อมูลของสิ่งที่เราต้องการติดตาม เช่น รหัสประจำตัวของบุคคล รหัสสินค้า เป็นต้น ส่วน RFID reader จะเป็นอุปกรณ์ที่ใช้ในการอ่านและประมวลผลข้อมูลที่อยู่ใน RFID tag
โดยปกติแล้ว RFID tag จะอยู่กับสิ่งที่ถูกติดตาม เช่น ในการติดตามตำแหน่งของบุคคล บุคคลนั้นๆจะมีบัตรประจำตัวที่มี RFID tag ฝังอยู่ในบัตร หรือ ในการติดตามตำแหน่งของสินค้า RFID tag จะถูกฝังอยู่ในป้ายสินค้า ส่วนอุปกรณ์ RFID reader จะถูกติดตั้งตามสถานที่ต่างๆ เช่น หน้าห้องสำคัญที่อนุญาตให้คนที่มี RFID tag เท่านั้นเข้าออกได้ หรือ ตรงทางออกของร้านขายสินค้าเพื่อให้แน่ใจว่าผู้ที่ออกจากร้านได้จ่านเงินค่าสินค้าแล้ว
ในสถานการณ์ดังกล่าวขั้นต้น ระบบที่มีอยู่จะสามารถรองรับความต้องการได้ เนื่องจากไม่จำเป็นต้องรู้ถึงตำแหน่งของสิ่งของหรือบุคคลโดยละเอียด แต่ในบางสถานการณ์ เช่น ในโรงพยาบาล แพทย์อาจต้องการติดตามตำแหน่งของคนไข้โดยละเอียด ต้องการศึกษาลักษณะการเดินของคนไข้ ซึ่งอาจทำให้ต้องติดตั้ง RFID reader เป็นจำนวนมากและสิ้นเปลืองค่าใช้จ่าย ทางทีมวิจัยจึงได้ปรับเปลี่ยนวิธีการติดตามตำแหน่ง โดยการนำเอา RFID tag จำนวนมากไปไว้ที่สิ่งแวดล้อมแทน เนื่องจาก RFID tag นั้นถูกกว่า RFID reader มาก ในงานวิจัยชิ้นนี้ RFID tag ได้ถูกสอดแทรกเข้าไปในพรมที่พื้น และ RFID reader จะถูกฝังไว้ที่รองเท้าของผู้ถูกติดตาม ตามรูปที่ 1 และ RFID reader นี้จะติดตอกับเครื่องคอมพิวเตอร์ โดยผ่านการสื่อสารทาง Bluetooth
การสอดแทรก RFID tag เข้าไปที่สิ่งทอหรือพรมนี้ เริ่มจากการนำ RFID tag ไปแทรกในเส้นด้ายแล้วนำเส้นด้ายนี้ไปทอออกมาเป็นสิ่งทอ RFID tag ที่ถูกแทรกลงไปในพรมมีขนาด 1.5 mm x 51.5 mm ซึ่งเป็น RFID tag ที่เล็กที่สุดที่มีขายในขณะที่ทีมได้ทำวิจัย และความหนาแน่นของ RFID tag คือ 100 tag ต่อตารางเมตร การสอดแทรก RFID tag เข้าไปในสิ่งทอยังเป็นงานที่ยากอยู่ เนื่องจากการทอจะมีการบิดเส้นด้าย และการบิดเส้นด้ายนี้ได้ทำลาย RFID tag บางตัว ทางทีมวิจัยจึงปรับการทอเพื่อไม่ให้มีการบิดเส้นด้าย และในที่สุดสามารถนำสิ่งทอที่มี RFID tag มาทำเป็นพรมมาใช้ในการทดลองการติดตามตำแหน่ง ผลการวิจัยได้แสดงให้เห็นว่า การติดตามตำแหน่งในลักษณะนี้สามารถได้ข้อมูลตำแหน่งของผู้ใช้ได้อย่างถูกต้องและละเอียดขึ้น สามารถรู้ถึงทิศทางและลักษณะการเคลื่อนไหวว่า เดินเป็นเส้นตรงหรือเดินเฉไปมา ดังรูปที่ 2
References
- Ueoka, R., Masuda, A., Murakami, T., and Hirose, M. Development of RFID textile for location aware system. In ACM SIGGRAPH ASIA 2009 Sketches, Yokohama, Japan, December 16 - 19, 2009.
- Ueoka, R., Masuda, A., Murakami, T., Miyayama, H., Takeuchi, H., Hashimoto, K., and Hirose, M. Development of RFID Textile and Human Activity Detection Applications. In Proceedings of the 3rd international Conference on Virtual and Mixed Reality: Held As Part of HCI international 2009, San Diego, CA, July 19 - 24, 2009.