Thai Blender Wiki
Advertisement
TODO
  • ใช้ Blender 2.5 อ้างอิงแทน การ upload screenshot ควรระบุเวอร์ชันให้ชัดเจน
  • ไว้เนื้อหานิ่งแล้วค่อยทำส่วน footer สำหรับหน้าก่อน/หน้าต่อไป
  • เพิ่มส่วนเกม
  • ยุบรวมส่วน Blender เข้ากับส่วน 3D computer graphics โดยเพิ่มส่วน User Interface แยกไว้เป็นบท Blender 101
จัดการเมนู
Suzanne Monkey UV Mapping

ภาพจำลองลักษณะการคลี่ UV ออกเป็น เกาะ UV โดยใช้อัลกอริธึมแบบ ABF++ และ LSCM

ยูวีแม็พ (UV mapping)[]

UV mapping อยู่ในกระบวนการสร้างแบบจำลองสามมิติ หมายถึงการสร้าง map เพื่อโยงแกน 2 มิติ (แกน U และ V ) เข้าหาข้อมูล 3 มิติ (แกน X Y และ Z) ตามระบบพิกัดคาร์ทีเซียน UV อาจถูกสร้างจากการใช้อัลกอริธึมคำนวณโดยซอฟต์แวร์คอมพิวเตอร์ หรืออาจทำขึ้นโดยคนก็ได้ แบบจำลอง 3 มิติหนึ่งๆอาจมี UV ได้หลายรูปแบบขึ้นกับความต้องการ โดยทั่วไปมักใช้ในการจัดวางภาพ 2 มิติลงบนพื้นผิว 3 มิติ เช่นการทำ texture หรือในบางกรณีบาง UV ก็มีหน้าที่ใช้ถ่ายโอนข้อมูลจากแบบจำลองสามมิติไปยังรูป 2 มิติก็ได้ เช่นการใช้วิธีระบายสีโดยตรงลงบนแบบจำลอง 3 มิติ

Texture mapping[]

Texture mapping อาจหมายถึงการใช้ UV map หรือการหาความสัมพันธ์อื่น ๆ เพื่อคำนวณว่าตำแหน่งบน face (3 มิติ) ใด ๆ ควรจะไปอ้างอิงค่าสีจากจุดไหนบนแผ่น texture ซึ่งเป็นภาพ 2 มิติ ทั้งนี้ค่าสีบน texture อาจจะเป็นค่าสีจริงที่จะนำไปเรนเดอร์ หรืออาจเป็นค่าเพื่อประโยชน์อื่นที่ไม่ใช่ค่าสี เช่นอาจเป็นค่าที่ใช้ในการเฉลี่ยน้ำหนักสีระหว่าง texture สี 2 texture ค่า normal หรือค่าความสูงของพื้นผิวเช่นในการทำ displacement map ก็ได้

Displacement mapping[]

Displacement mapping

Displacement mapping

Displacement mapping เป็นการใช้ heightmap ปรับความสูงของพื้นผิวแบบจำลองสามมิติ เช่นใช้ค่าความสว่างบน heightmap เคลื่อนตำแหน่ง vertex ของแบบจำลองไปตามแกน normal ของ vertex ถ้าสว่างมากก็เคลื่อนมาก สว่างน้อยก็เคลื่อนน้อย เป็นต้น โดย heightmap ที่ใช้อาจอยู่ในรูปแบบของเทกซ์เจอร์ และอาจอ้างอิงตำแหน่งโดยใช้กระบวนการ UV mapping ประโยชน์ประการหนึ่งของ displace mapping คือใช้สร้างรายละเอียดพื้นผิว ในลักษณะใกล้เคียงกับ normal mapping หรือ bump mapping หรืออาจใช้ในการเปลี่ยนรูปทรงของแบบจำลองเพื่อให้ได้รูปร่างที่ต้องการก็ได้

การใช้งาน displacement mapping มักจำกัดอยู่ในการเรนเดอร์ภาพนิ่งและวีดิทัศน์ มากกว่าการใช้งานในแบบ real-time เช่นในเกมคอมพิวเตอร์สามมิติเมื่อเทียบกับเทคนิคอื่น ๆ เช่น bump หรือ normal mapping เพราะ displacement mapping จำเป็นต้องมีโพลีกอนอยู่ จริง ต่างจากวิธีข้างต้นที่ใช้การเปลี่ยนแปลงการสะท้อนแสงของรายละเอียดพื้นผิว (texture) ดังนั้นหากต้องการใช้ในการเพิ่มรายละเอียดพื้นผิวก็จำเป็นต้องสร้างโพลีกอนเพิ่ม เช่นการใช้ micropolygon หรือการ subdivide ทำให้ใช้เวลาในการประมวลผลมากขึ้นแต่มีข้อดีคือให้ความสมจริง เพราะโพลีกอนที่ถูกสร้างขึ้นใหม่สามารถทำให้เกิดเงาจริงขึ้น (self-shadow)

นอร์มอลแมป (normal mapping)[]

เปรียบเทียบโมเดลที่ใช้ normal map

(a): นอร์มอลแมพ สร้างจากโมเดล (b) และใช้ UV จาก (c) โดยค่าสีใน 3 channel (RGB) ของแต่ละ pixel จะถูกนำมาเปลี่ยนเป็นค่า XYZ เพื่อนิยามค่าเวกเตอร์ของ normal ในแต่ละจุดบนพื้นผิวของโพลีกอน
(b): โมเดลประกอบขึ้นจากสามเหลี่ยม (หรือ tri) 78,642 ชิ้น
(c): โมเดลที่ถูกลดรายละเอียดจาก (b) เหลือสามเหลี่ยม 768 ชิ้น
(d): โมเดลเดียวกับ (c) 768 ชิ้น แต่เรนเดอร์โดยใช้นอร์มอลแมพจากภาพ (a)

normal mapping เป็นการใช้ texture กำหนดค่านอร์มอลบนแต่ละจุดบนโพลีกอนชิ้นหนึ่งๆ โดยจะทำให้การสะท้อนแสงตรงจุดนั้นเปลี่ยนไป ซึ่งจากหลักการนี้ทำให้เราสามารถสร้างภาพลวงตา เพื่อช่วยให้โมเดลสามมิติที่มีความละเอียดต่ำดูเหมือนมีรายละเอียดมากขึ้นทั้งที่มีจำนวนโพลีกอนเท่าเดิม

การสร้าง normal map อาจทำได้โดยการใช้แบบจำลองสองชุด ชุดแรกเป็นโมเดลละเอียดสูงที่อาจสร้างขึ้นโดยซอฟต์แวร์สำหรับทำ digital sculpt เพื่อให้รายละเอียดที่สมจริง ชุดที่สองเป็นโมเดลที่ถูกลดความละเอียดจากโมเดลแรก จนมีความละเอียดต่ำเหมาะสมกับงานโดยเฉพาะงานที่ต้องการความเร็วในการประมวลผลสูง เช่นในเกมคอมพิวเตอร์ โมเดลชุดนี้อาจเป็นโครงโมเดลก่อนจะนำไปเพิ่มรายละเอียดให้กลายเป็นโมเดลแรกก็ได้ ขึ้นกับขั้นตอนการสร้างโมเดล เมื่อได้โมเดลทั้งสองชุดแล้ว จึงคลี่ UV map จากโมเดลชุดที่สองหรือตัวที่มีความละเอียดต่ำ จากนั้นจึงคำนวนค่า normal จากพื้นผิวของโมเดลที่มีความละเอียดสูง แล้วนำไปบันทึกลงใน normal map โดยอิงตำแหน่งผ่าน UV map ที่คลี่เอาไว้

บทความที่เกี่ยวข้อง[]

Advertisement