UV Mapping 3D Model for realistic image and speedup time
กรรณิกา เย็นประสิทธิ์, อานนท์ ขาวละเอียด และ ไพโรจน์ สมุทรักษ์
บทคัดย่อ
เกมส์และแอนิเมชัน 3 มิติในปัจจุบันมีความน่าสนใจเป็นอย่างมาก การสร้างตัวละคร 3 มิติ การสร้างฉาก 3 มิติ เป็นส่วนหนึ่งที่สำคัญของกระบวนการสร้างแอนิเมชันและการสร้างเกมส์ ในบางลักษณะงานการออกแบบโมเดล 3 มิติจะมีการออกแบบลักษณะสมจริงและมีรายละเอียดจำนวนมาก ทำให้เวลาในการประมวลผลภาพใช้เวลานานและใช้ทรัพยากรในการประมวลผลภาพสูงตามไปด้วย ดังนั้นงานวิจัยนี้จึงเสนอแนวทางการสร้างโมเดลโดยใช้เทคนิคพื้นผิวภาพ UV เพื่อการประมวลผลที่รวดเร็วและสมจริงมากยิ่งขึ้น โดยทำการสร้างโมเดลตัวละคร จำนวน 5 ตัวละคร และฉาก 3 มิติ จำนวน 2 ฉาก และวัดเวลาในการประมวลผลภาพสุดท้าย
คำสำคัญ : โมเดล 3 มิติ, uv mapping
1. บทนำ
1.1 ความเป็นมาและความสำคัญของปัญหา
การสร้างแอนิเมชันมีขั้นตอนการสร้างโมเดล 3 มิติ การใส่รายละเอียดให้กับโมเดล เช่น พื้นพิว (material) ลวดลาย (texture) แสงเงา(light and shadow) เป็นต้น มีส่วนทำให้การเร็นเดอร์ผลงานใช้เวลานาน หรือ การสร้างเกมบนเครื่องเล่นเกมที่มีทรัพยากรอยู่อย่างจำกัด จะใช้โมเดล 3 มิติที่มีรายละเอียดไม่มาก หรือทำการลดการแสดงผลของโมเดลให้รายละเอียดน้อยลง ปัจจุบันมีหลาหลายเทคนิควิธีในการสร้างโมเดล 3 มิติให้มีความสมจริง รายละเอียดของโมเดล 3 มิติครบถ้วน ทั้งพื้นพิว แสงเงา เทคนิคการใช้ UV mapping เป็นวิธีการหนึ่ง ช่วยในการแสดงผลลัพธ์ของโมเดล 3 มิติ ที่มีรายละเอียดสูงและใช้ทรัพยากรเครื่องไม่มาก มีการพัฒนามาจากการกำหนดพื้นผิวให้วัตถุ 3 มิติแบบแผนที่ mapping โดยมีงานวิจัย A. Baumberg ปี ค.ศ. 2002 มีการนำเสนอฟังก์ชันถ่วงน้ำหนักของการคำนวณหาพื้นผิวให้กับวัตถุ 3 มิติ และมีผลงานวิจัยอื่นๆ ต่อมา มีการนำมาพัฒนาให้กับโปรแกรมการสร้างโมเดล 3 มิติ เช่น โปรแกรม 3d studio max โปรแกรม Autodesk Maya เป็นต้น เป็นเทคนิคที่ใช้ในการสร้างเกม อย่างแพร่หลาย
งานวิจัยนี้จึงนำเสนอการสร้างโมเดล 3 มิติโดยใช้เทคนิคการใช้ UV mapping ให้กับโมเดลฉากและโมเดลตัวละคร 3 มิติ ทำการทดลองวัดผลลัพธ์ของภาพ 3 มิติให้มีลักษณะสมจริงและคุณลักษณะใกล้เคียงกับการกำหนดพื้นผิวของวัตถุ 3 มิติ บทความนี้ประกอบด้วย ทฤษฎีทางด้าน mapping ของโมเดล 3 มิติ งานวิจัยที่เกียวข้อง วิธีการ ผลการทดลอง และสรุปผล รวมถึงงานที่จะพัฒนาต่อไป
2. ทฤษฎีและงานวิจัยที่เกี่ยวข้อง
2.1 ทฤษฎีการใช้ texture mapping
Texture mapping เป็นกระบวนการนำพื้นผิว 2 มิติ ลงบนพื้นผิว 3 มิติ หรือการนำพื้นผิว 3 มิติเป็นพื้นผิว 2 มิติ เพื่อใช้ในการระบายสีให้วัตถุ หรือเป็นการกำหนดแสงเงา โดยมีสมการดังนี้
x(u,v)
r(u, v) = y(u,v)
z(u,v)
กำหนดให้
u และ v เป็นแกนของพื้นผิว 2 มิติ
x y และ z เป็นแกนของพื้นผิว 3 มิติ
3D Model (x,y,z) UV Mapping
รูปที่ 1 การใช้ UV mapping กับโมเดล 3 มิต รูปทรงสี่เหลี่ยม (cube) [1]
แหล่งที่มาของภาพ
http://wiki.povray.org/content/File:RefImgBoxmap.gif
การทำให้ UV mapping เป็นการสร้างรูปหลายเหลี่ยมที่สร้างเป็นวัตถุ 3 มิติ จะเป็นการกำหนดพื้นผิวโดยการทาสีในแต่ละรูป เรียกว่า UV texture map กระบวนการทำแผนที่ UV เป็นกระบวนการกำหนดพิกเซลในภาพเพื่อแมปพื้นผิวบนรูปหลายเหลี่ยม โดยการทำสำเนาชิ้นส่วนสามเหลี่ยมของแผนที่ภาพและวางลงบนรูปสามเหลี่ยมบนวัตถุ UV เป็นทางเลือกหนึ่งสำหรับการแม็ปแผนที่ ใช้คู่ของพิกัด X, Y, Z หรือการเปลี่ยนแปลงตำแหน่งใด ๆ แทนที่พื้นที่ทางเรขาคณิตของวัตถุ แต่การคำนวณการแสดงผลใช้พิกัดพื้นผิวของ UV เพื่อใช้กำหนดพื้นผิวสามมิติ
2.2 งานวิจัยที่เกี่ยวข้อง
Ed Catmull [2] วิจัยและพัฒนา Z-buffer และ Texture Mapping สร้างอัลกอริทึม เกี่ยวกับความลึกของวัตถุ 3 มิติ และใช้ พื้นผิว texture ในการประยุกต์ใช้กับค่าสี
ปี ค.ศ. 1973 Bui-Toung Phong[3] นำเสนอเทคนิค Phong Shading เป็นเทคนิคการระบายสีให้กับวัตถุ 3 มิติ หรือเรียกว่า normal vector interpolation shading เป็นการเฉลี่ยนระหว่างค่า surface normal และภาพ rasterized polygon
Martin Newell [4] สร้างวัตถุ 3 มิติ คือ กาน้ำชา Utah Teapot เป็นโมเดลมาตรฐานสำหรับวิชาคอมพิวเตอร์กราฟิก ใช้ในการอ้างอิงรูปแบบหรือตัวอย่งในการสร้างโมเดล 3 มิติ รวมถึงการเรนเดอร์ผลงาน การจัดแสง เงาของโมเดล 3 มิติ
ปี ค.ศ. 1978 James Blinn [5] พัฒนาการแม็บภาพ เรียก Bump Mapping เป็นเทคนิคในการจำลอง bump ไปยังพื้นผิววัตถุ 3 มิติ ใช้การคำนวณระยะการเดินทางของแสง ผลลัพธ์ที่ได้มีความสมจริงของพื้นผิว
3. วิธีการดำเนินงาน
งานวิจัยนี้ทำการทดลองสร้างโมเดล 3 มิติ โมเดลตัวละคร และโมเดลฉาก สร้างพื้นผิว 3 มิติและใช้เทคนิค UV mapping ทำการเรนเดอร์ภาพผลลัพธ์ โดยใช้โปรแกรม 3D Blender[6] มีขั้นตอนดังต่อไปนี้
ขั้นตอนที่ 1 ทำการออกแบบตัวละคร 3 มิติ ฉาก โมเดล 3 มิติ
ขั้นตอนที่ 2 การวิเคราะห์ฉากและตัวละคร 3 มิติ จัดหาโปรแกรมในการใช้สร้างโมเดล 3 มิติ
ขั้นตอนที่ 3 การออกแบบ ทำการออกแบบสตอรี่บอร์ด ทำการออกแบบตัวละคร 3 มิติ กำหนดด้านหน้า ด้านข้างของตัวละคร ทำการออกแบบฉาก 3 มิติ ด้านหน้า ด้านข้าง รูปตัด
ขั้นตอนที่ 4 การสร้างโมเดล 3 มิติ
– สร้างโมเดลตัวละคร และฉาก 3 มิติ ด้วยโปรแกรม 3D Blender
– ใช้เทคนิค UV Mapping กับโมเดลตัวละคร/ฉาก 3 มิติ กำหนด seam กาง UV เพนท์ UV นำ UV มาใส่ให้โมเดล 3 มิติ
– ใส่กระดูกและการเคลื่อนไหวให้กับโมเดลตัวละคร
– ทำการโพสท่าให้กับตัวละคร เพื่อหาข้อบกพร่องและทำการปรับปรุงโมเดลตัวละคร
รูปที่ 2 ตัวอย่างภาพร่างตัวละคร
รูปที่ 3 ตัวอย่างภาพร่างฉาก 3 มิติ
4. ผลการดำเนินงาน
ผลการวิจัยโดยใช้โปรแกรม 3D Blender สร้างตัวละครและฉาก 3 มิติ ได้ผลดังแสดงในรูปที่ 4 โมเดลตัวละคร โดยใช้เทคนิค uv mapping ดังแสดงในรูปที่ 5 และรูปที่ 6 แสดงภาพผลลัพธ์ของฉาก ซึ่งใช้ภาพ texture แสดงในรูปที่ 7 ทำพื้นผิวให้วัตถุ 3 มิติ
รูปที่ 4 ภาพผลลัพธ์ตัวละคร
รูปที่ 5 UV mapping ของตัวละคร
รูปที่ 6 ภาพผลลัพธ์ฉาก 3 มิติ
รูปที่ 7 texture ที่ใช้ในฉาก 3 มิติ
5. สรุปผล
ในการทดลองได้ทำการสร้างตัวละครและฉาก 3 มิติ โดยใช้เทคนิค uv mapping เพื่อใช้ในการสร้างแอนิเมชัน และลดการประมวลผลของเครื่องคอมพิวเตอร์ที่ใช้ในการสร้างภาพผลลัพธ์ ระยะเวลาในการสร้างแอนิเมชันลดลง คุณภาพของภาพผลลัพธ์ที่ได้ มีความใกล้เคียงกับโมเดล 3 มิติที่กำหนดพื้นผิวและวัตถุให้มีความสมจริง
งานที่ต้องพัฒนาต่อไป จะเป็นการสร้างขั้นตอนการ mapping ให้มีความรวดเร็วและเสมือนจริงเพิ่มมากขึ้น
6. เอกสารอ้างอิง
[1] A. Baumberg, Blending images for texturing
3d models, in: BMVC 2002, Canon Research
Center Europe, 2002.
[2] Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces (PDF) (PhD thesis). University of Utah.
[3] Bui Tuong Phong, Illumination of Computer-Generated Images, Department of Computer Science, University of Utah, UTEC-CSs-73-129, July 1973
[4] Newell, Martin (1975). The Utilization of Procedure Models in Digital Image Synthesis (PhD thesis). University of Utah.
[5] Blinn, James F. “Simulation of Wrinkled Surfaces”, Computer Graphics, Vol. 12 (3), pp. 286-292 SIGGRAPH-ACM (August 1978)
[6] _____.ออนไลน์. Blender 3D: Noob to Pro/UV Map Basics, https://en.wikibooks.org/wiki/ Blender_3D: _Noob_to_Pro/UV_Map_Basics