Home | Printer-friendly Version | Assignment : 1 , 2 , 3 รายงานจากผลงานวิจัยในการประชุมวิชาการ SIGGRAPH 2003 เรื่อง Keyframe Control of Smoke Simulations แบ่งเป็น 3 ส่วนใหญ่ ๆ ดังนี้ อนึ่ง รายงานนี้จัดทำโดย นายภูริพันธุ์ รุจิขจร เลขประจำตัว 433 12197 21 บทนำ เมื่อไม่กี่ปีมานี้ งานทางด้านการจำลองของไหลต่าง ๆ (ลม, น้ำ, ควัน, ไฟ, ฯลฯ) ให้เหมือนจริงได้ก้าวหน้าไปอย่างมาก แต่เราก็ยังไม่สามารถควบคุมของไหลต่าง ๆ ให้เป็นไปตามที่ต้องการได้มากนัก เพราะต้องควบคุมผ่านตัวแปรต่าง ๆ ที่อยู่ในสมการของไหล (Navier-Strokes equations ซึ่งเป็น Differential equations) ซึ่งคาดเดาผลที่เกิดขึ้นจากการเปลี่ยนค่าของแต่ละตัวแปรได้ยาก
งานวิจัยนี้เสนอให้ควบคุมรูปลักษณ์ของควัน โดยให้ผู้ออกแบบกำหนด keyframe (เหมือนในโปรแกรม Macromedia Flash) แล้วก็จะคำนวณ interpolation ให้ โดยจะหาค่าแรงลมที่เหมาะสมที่จะควบคุมควันให้เป็นรูปต่าง ๆ ตาม keyframe ซึ่งทำได้โดยสร้าง Objective function ที่แสดงว่าควันใกล้รูปแบบที่ต้องการมากน้อยแค่ไหนขึ้นมา แล้วเราก็ต้องพยายามหาค่าตัวแปรต่าง ๆ ที่ช่วยลดค่า Objective function นี้ให้ได้มากที่สุด ในกรณีที่เรามี keyframe มากกว่าหนึ่งขึ้นไป (เช่น ให้ควันเปลี่ยนรูปไปเป็นเครื่องหมายถูก แล้วจึงเป็นเครื่องหมายผิด เป็นต้น) งานวิจัยนี้ก็ได้เสนอวิธี Multiple Shooting ที่ปรับปรุงใหม่ (เค้าอ้างว่าเป็นวิธที่คิดขึ้นมาเอง) เพื่อใช้ในการแบ่งปัญหาออกเป็นหลาย ๆ ส่วน เพื่อแก้ปัญหาแยกกัน แล้วจึงนำกลับมารวมกันใหม่
ผู้วิจัยได้นำแบบจำลองควันมาจากงานของ Fedkiw R. และคณะ เรื่อง Visual Simulation of Smoke (SIGGRAPH 2001) และนำแนวคิดในการควบคุมผ่าน Keyframe มาจากงานของ Porovic J. เรื่อง Interactive Design of Rigid-Body Simulations for Computer Animation (PhD Thesis 2001) รายละเอียด แบบจำลองควันประกอบไปด้วยตารางของความเร็วและความหนาแน่นของอนุภาคในแต่ละตำแหน่ง โดยเราจะคำนวณสถานะถัดไปของควันได้จากสถานะก่อนหน้า ที่มีการเปลี่ยนแปลงของปัจจัยต่าง ๆ ดังนี้ : แรงภายนอกซึ่งจะใช้้ในการควบคุมรูปร่างของควันให้เป็นไปตามที่ต้องการ, การเปลี่ยนแปลงของความเร็ว, การฟุ้งของของไหล, การเปลี่ยนแปลงของความหนาแน่น และการอนุรักษ์มวล Objective function ประกอบไปด้วย 2 ส่วน ได้แก่ ส่วนที่ใช้วัดว่าสถานะของควันตอนนี้ใกล้กับ Keyframe มากแค่ไหน (แบ่งได้อีก 2 ส่วน คือ ตารางความเร็ว และตารางความหนาแน่น) และ ส่วนที่วัดว่าใช้แรงมากเท่าไรจึงไปยังเป้าหมายที่ต้องการได้ (ยิ่งใช้แรงน้อยเท่าไรก็ยิ่งดี เพราะจะยิ่งดูเป็นธรรมชาติ) การหาค่าน้อยที่สุดของ Objective function นี้ทำได้ด้วยวิธี quasi-Newton optimization technique โดยต้องหา derivative ของ function นี้ ซึ่งต้องอาศัยการหา derivative ของปัจจัยต่าง ๆ ที่ทำให้ควันเปลี่ยนแปลงไป ที่กล่าวไปข้างต้น ซึ่งก็จะมีรายละเอียดอยู่ใน paper ไม่ขออธิบาย ณ ที่นี้ กรณีที่มีหลาย ๆ Keyframe ผู้วิจัยเสนอว่าให้ใช้วิธี Multiple shooting โดยแบ่งปัญหาให้เป็นปัญหาย่อย ๆ แล้วแยกกันคำนวณ ซึ่งถ้าเป็นวิธี Multiple shooting ทั่ว ๆ ไปแล้ว จะ interpolate ผลลัพธ์ย่อย ๆ ดังกล่าว ขณะที่ผู้วิจัยเสนอวิธี Layered multiple shooting ที่ไม่ต้องทำ interpolation
Layered multiple shooting จะแบ่งปัญหาออกเป็นส่วน ๆ ตาม Keyframe แล้วแยกกันคำนวณ ต่อมาจะกำหนดให้จุดกึ่งกลางของแต่ละส่วนเป็น Pseudokeyframe แล้วก็คำนวณอีกรอบโดยแบ่งส่วนตาม Pseudokeyframe โดยพยายามให้ match ทั้ง Keyframe และ Pseudokeyframe แล้วคำนวณสลับกันระหว่างส่วนที่แบ่งโดยใช้ Keyframe และส่วนที่แบ่งโดยใช้ Pseudokeyframe จนได้ผลละเอียดเท่าที่ต้องการ ผู้วิจัยเสนอเพิ่มเติมว่า การใช้ Parallel processing มาช่วยในการคำนวณแต่ละส่วนจะทำให้ได้ผลลัพธ์เร็วขึ้นมาก แต่ยังติดปัญหาที่ Parallel processing นั้นไม่ได้นำผลลัพธ์จากการคำนวณที่แล้วมาช่วยให้การคำนวณครั้งต่อไปได้ผลเร็วขึ้น ทำให้ Parallel processing ลู่เข้าคำตอบช้ากว่า แต่ถ้าเราใช้ Parallel processing มาคำนวณก่อนในช่วงต้น ๆ แล้วจึงใช้การคำนวณแบบปกติ หรือ Sequential processing มาคำนวณต่อก็จะทำให้หาคำตอบช่วงต้น ๆ ได้รวดเร็ว และก็ยังลู่เข้าสู่คำตอบสุดท้ายได้รวดเร็วอีกด้วย ผลลัพธ์ที่ได้จากงานวิจัยนี้เป็นไปตามที่ต้องการ แต่ในบางกรณีวิิธี quasi-Newton optimization ยังไม่สามารถหลุดจาก local minima ได้
ความคิดเห็น งานวิจัยนี้ได้เสนอแนวคิดใหม่ ๆ ที่น่าสนใจมากในการออกแบบระบบที่ซับซ้อนอย่างของไหล แต่มีการนำเสนอที่เป็น technical มากเกินไปในบางช่วง เช่น การยก Differential equation ขึ้นมาตลอดทุก ๆ หน้า โดยไม่อธิบายให้ละเอียดและชัดเจนพอ (การหาข้อมูลเพิ่มตามจากแหล่งอื่น ๆ จะช่วยได้มาก เช่น บทความเรื่อง Interacting with Smoke and Fire in Real Time ของ Joe Stam ที่มีการยกตัวอย่างและอธิบายให้เข้าใจได้ง่าย แม้แต่งานวิจัยที่ออกมาก่อนหน้าอย่าง Visual Simulation of Smoke ของ Fedkiw R. ก็อ่านเข้าใจง่ายกว่ามาก ๆ) คาดว่าผู้วิจัยคาดหวังว่าผู้อ่านงานนี้จะต้องมีความรู้เกี่ยวกับการจำลองของไหลเป็นอย่างดีแล้ว อีกส่วนหนึ่งที่เป็นข้อด้อยของงานวิจัยนี้คือ Website ของงานวิจัยนี้ ที่ไม่มีอะไรเลย นอกจากบทคัดย่อ และ link ไปยังงานวิจัย และผู้วิจัย อย่างน้อยก็น่าจะมีรูปหรือ video ตัวอย่างผลลัพธ์จากการวิจัย (ซึ่งก็น่าเห็นใจเล็กน้อย เพราะอาจเป็นงานทางการค้าของ Alias|WaveFront) Application จากงานวิจัยนี้เป็นประโยชน์อย่างมากต่อนักออกแบบต่าง ๆ ที่จะสามารถควบคุมควันได้อย่างอิสระ ไปใช้ได้ทั้งในงานทางภาพยนตร์ หรือโฆษณา (อย่างน้อยก็ดูตื่นตา่ตื่นใจดี) นอกจากนั้นวิธีนี้ยังสามารถนำไปประยุกต์ใช้กับของไหลอื่น ๆ หรือการควบคุมระบบอื่น ๆ ที่มีความซับซ้อนได้เป็นอย่างดี เช่น เกมหรืองานด้าน Flight simulation เป็นต้น
อย่างไรก็ตาม งานนี้ยังต้องการการพัฒนาอีกมาก สังเกตได้จากเวลา และทรัพยากรที่ใช้มากเกินไป (แค่ภาพไม่กี่วินาทีแต่ใช้เวลาเป็นวัน!) อาจปรับปรุงในส่วนการทำ optimization และการหา derivative ต่าง ๆ ให้เร็วขึ้น หรือเปลี่ยนไปใช้แบบจำลองของไหลจาก Navier-Stokes equations ไปเป็น inviscid incompressible Euler equations แทน ตามที่ Visual Simulation of Smoke แนะนำไว้ Reference :
|