การเรนเดอร์ภาพด้วยคอมพิวเตอร์
| บทความนี้ไม่มีการอ้างอิงจากเอกสารอ้างอิงหรือแหล่งข้อมูล โปรดช่วยพัฒนาบทความนี้โดยเพิ่มแหล่งข้อมูลน่าเชื่อถือ เนื้อหาที่ไม่มีการอ้างอิงอาจถูกคัดค้านหรือนำออก |
การเรนเดอร์ภาพด้วยคอมพิวเตอร์ หรือ เรนเดอร์ริง (อังกฤษ: rendering) ยังคงเรียกว่า "การสร้างภาพจากแบบจำลอง" หรือ "การสร้างเป็นภาพสุดท้าย" คือกระบวนการสร้างภาพสองมิติจากแบบจำลองกราฟิกในระบบ โดยเริ่มจากการนำเข้าแบบจำลองกราฟิกซึ่งจะบรรยายวัตถุสองมิติ หรือสามมิติโดยบอกโครงสร้างข้อมูลของวัตถุสามมิติ อันประกอบด้วยข้อมูลเชิงเรขาคณิต ได้แก่พิกัด มุมมอง พื้นผิวลวดลาย และข้อมูลเกี่ยวกับความสว่าง และคำนวณเพื่อแสดงผลลัพธ์เป็นภาพสองมิติบนจอ ซึ่งจะเป็นภาพแบบดิจิทัล (ภาพเชิงเลข) หรือ ภาพแบบจุดภาพ (ภาพแรสเตอร์) ทั้งนี้การเรนเดอร์ภาพไม่ได้จำกัดอยู่เฉพาะการให้แสงและเงา ในบางกรณีก็หมายถึงการให้สี หรือการให้เส้น โดยไม่ต้องมีการให้แสงเงาก็ได้
เนื้อหา |
หลักการทำงาน [แก้]
ในการให้แสงและเงาการเรนเดอร์จะทำการคำนวณค่าสี และความสว่าง ณ ตำแหน่งต่าง ๆ บนแบบจำลอง โดยใช้หลักการคำนวณหาจุดตกกระทบของแสงจากแหล่งกำเนิด หลังจากนั้นจึงเข้าสู่กระบวนการสร้างให้เป็นจุดภาพหรือ แรสเตอไรเซชั่น (Rasterization)ซึ่งจะเป็นการฉาย (Project)แบบจำลองลงบนระนาบสองมิติ ก่อนส่งค่าไปแสดงบนจอภาพ กระบวนการนี้เป็นขั้นตอนสุดท้ายในสายท่อกราฟิก หรือ กราฟิกไปป์ไลน์ (Graphic Pipeline)โดยจะให้ผลลัพธ์เป็นการแสดงรูปหรือการเคลื่อนไหวที่สร้างขึ้น
ความเป็นมา [แก้]
ในทางคอมพิวเตอร์กราฟิกกระบวนการสร้างภาพจากแบบจำลองเริ่มเป็นประเด็นสำคัญในการศึกษาตั้งแต่ยุค 1970 เนื่องจากความซับซ้อนของเรขภาพคอมพิวเตอร์ โดยกระบวนการนี้มีความสำคัญในแง่ต่าง ๆ เช่น คอมพิวเตอร์เกม การจำลอง เทคนิคพิเศษทางภาพยนตร์หรือโทรทัศน์ และ การออกแบบการสร้างภาพมโนทัศน์ ส่วนซอฟต์แวร์สำเร็จรูปบ้างก็รวมเข้ากระบวนการนี้กับซอฟต์แวร์สำหรับสร้างแบบจำลอง และสร้างแอนิเมชัน บ้างก็แยกเป็นซอฟต์แวร์เฉพาะต่างหาก อีกทั้งยังสามารถหาได้ในรูปแบบของซอฟต์แวร์ไม่จำกัดลิขสิทธิ์ ซึ่งขั้นตอนของการสร้างตัวเรนเดอร์ หรือ ตัวสร้างภาพจากแบบจำลองนั้นอาศัยการรวมศาสตร์ต่าง ๆ หลายแขนงเช่น ฟิสิกส์ของแสง การรับรู้ด้านการมองเห็น คณิตศาสตร์ และ วิศวกรรมซอฟต์แวร์
กรณีของกราฟิกส์สามมิติ การสร้างภาพจากแบบจำลองนั้นเป็นกระบวนการที่ทำได้ช้า และกินเวลาในการคำนวณมาก (เช่นขั้นตอนการสร้างภาพยนตร์) ซึ่งสามารถใช้กราฟิกฮาร์ดแวร์เร่งความเร็วการประมวลผลสามมิติแบบทันกาลเข้าช่วยได้ (เช่นการเพิ่มความเร็วของเกม) ซึ่งคำภาษาอังกฤษว่า"เรนเดอร์"ได้มาจากศัพท์ที่หมายถึงขั้นตอนการลงแสงและเงาภาพของศิลปินหรือ หรือ อาร์ทิส เรนเดอริ่ง (Artist Rendering)แต่ในทางคอมพิวเตอร์กราฟิกขั้นตอนนี้กินความกว้างกว่าดังที่ได้อธิบายไว้
การเรนเดอร์แบบไบแอส (Biased) และ อันไบแอส (Unbiased) [แก้]
โดยทั่วไปซอฟต์แวร์ที่ใช้ในงานเรนเดอร์จะแบ่งเป็นสองกลุ่มหลัก ได้แก่กลุ่มที่ใช้เทคนิคการเรนเดอร์แบบไบแอส (biased) และแบบอันไบแอส (unbiased) โดยในกลุ่มที่เรียกว่า unbiased จะมีการคำนวณแสงที่ซับซ้อนและใช้เวลานานกว่ากลุ่ม biased และเป็นที่นิยมในการใช้เรนเดอร์ภาพนิ่ง ลักษณะของซอฟต์แวร์ในกลุ่มนี้คือยิ่งให้เวลามาก ภาพก็ยิ่งออกมาดูสมจริง ส่วนกลุ่ม biased นิยมใช้สำหรับการเรนเดอร์ภาพเคลื่อนไหวเพราะกินเวลาน้อยกว่ามากในแต่ละเฟรม และให้ผลที่ค่อนข้างดี เทคนิคที่สำคัญในกลุ่มนี้เช่น photon mapping นอกจากนี้ การเรนเดอร์แบบ biased ยังอาจเปิดช่องให้ผู้สร้างงานบิดเบือนความจริงเพื่อประโยชน์ในเชิงศิลปะได้ง่ายกว่าแบบ unbiased ที่กระบวนการต่างๆล้วนมีเพื่อสร้างภาพให้สมจริงถึงที่สุด จะอย่างไรก็ดี ซอฟต์แวร์สำหรับเรนเดอร์บางตัวก็มีคุณลักษณะจากทั้งสองกลุ่มเทคนิค ดังนั้นการทำความเข้าใจลักษณะเฉพาะของเทคนิคต่างๆจะช่วยให้ผู้สร้างงานสามารถเลือกปรับแต่งคุณลักษณะของซอฟต์แวร์ให้ทำงานตรงตามความต้องการและตรงต่อเวลาได้มากที่สุด และอยู่เหนือแนวคิดที่ว่าจะต้องเลือกใช้การเรนเดอร์ภาพแบบ biased หรือ unbiased
เรนเดอร์ฟาร์ม (Render farm) [แก้]
การเรนเดอร์ภาพที่ซับซ้อนมากๆหรือภาพเคลื่อนไหวจะกินเวลานานกว่าภาพที่มีองค์ประกอบง่ายๆหรือภาพเดี่ยวๆ ซอฟต์แวร์ที่ใช้ในการเรนเดอร์จึงอาจได้รับการออกแบบเพิ่มเติมมาเพื่อให้สามารถแบ่งงานให้กับคอมพิวเตอร์หลายเครื่องหรือเครื่องเดียวแต่หลายหน่วยประมวลผลกลาง (CPU) ช่วยกันเรนเดอร์เพื่อให้งานเสร็จเร็วยิ่งขึ้น การแบ่งงานนี้อาจเป็นการแบ่งภาพเดียวออกเป็นภาพเล็กๆแล้วกระจายงานให้แต่ละหน่วยประมวลผล ซึ่งเหมาะกับการเรนเดอร์ภาพนิ่ง หรืออาจแบ่งออกเป็นช่วงเวลาหรือเฟรมสำหรับงานแอนิเมชัน มักเรียกกลุ่มของคอมพิวเตอร์หลายๆเครื่องที่ช่วยกันเรนเดอร์ภาพว่าเรนเดอร์ฟาร์ม (render farm)
rendering equation [แก้]
ในตำแหน่งและทิศทางหนึ่งๆ แสงขาออก หรือ outgoing light (Lo) จะเท่ากับผลรวมของแสงที่ถูกปล่อย หรือ emit (Le) กับที่ถูกสะท้อนออกมา โดยแสงที่ถูกสะท้อนออกมาคือผลรวมของผลคูณแสงขาเข้า หรือ incoming light (Li) จากทุกทิศทางกับการสะท้อนของพื้นผิว (bidirectional reflectance distribution function) และมุมขาเข้า
