กลับไปหน้าบทความ

อ่าน 2 นาที

การทำแผนที่โฟตอน

ใน กราฟิกคอมพิวเตอร์ การ แมปโฟตอน เป็น อัลกอริทึม การเรนเดอร์ แสงสว่างทั่วโลก แบบสองรอบที่พัฒนาโดย Henrik Wann Jensen ระหว่างปี 1995 ถึง 2001 [ 1 ] ซึ่งแก้สม การการเรนเดอร์...

การทำแผนที่โฟตอน

ในกราฟิกคอมพิวเตอร์การแมปโฟตอน เป็น อัลกอริทึมการเรนเดอร์แสงสว่างทั่วโลก แบบสองรอบที่พัฒนาโดยHenrik Wann Jensenระหว่างปี 1995 ถึง 2001 [ 1 ]ซึ่งแก้สมการการเรนเดอร์ โดยประมาณ สำหรับการรวมความสว่างของแสงณ จุดที่กำหนดในอวกาศรังสีจากแหล่งกำเนิดแสง (เช่นโฟตอน ) และรังสีจากกล้องจะถูกติดตามอย่างอิสระจนกว่าจะตรงตามเกณฑ์การยุติบางอย่าง จากนั้นจะเชื่อมต่อกันในขั้นตอนที่สองเพื่อสร้างค่าความสว่าง อัลกอริทึมนี้ใช้เพื่อจำลองปฏิสัมพันธ์ของแสงกับวัตถุประเภทต่างๆ ได้อย่างสมจริง (คล้ายกับ เทคนิค การเรนเดอร์ภาพเสมือนจริง อื่นๆ ) โดยเฉพาะอย่างยิ่ง สามารถจำลองการหักเหของแสงผ่านสารโปร่งใสเช่นแก้วหรือน้ำ (รวมถึงแสงสะท้อน ) การสะท้อนแบบกระจายระหว่างวัตถุที่ได้รับแสง การกระเจิงของแสงใต้พื้นผิวในวัสดุโปร่งแสง และผลกระทบบางอย่างที่เกิดจากอนุภาคเช่น ควันหรือไอน้ำการแมปโฟตอนยังสามารถขยายไปสู่การจำลองแสงที่แม่นยำยิ่งขึ้น เช่นการเรนเดอร์สเปกตรัมการแมปโฟตอนแบบก้าวหน้า (PPM) เริ่มต้นด้วยการติดตามรังสี จากนั้นเพิ่มจำนวนการแมปโฟตอนมากขึ้นเรื่อยๆ เพื่อให้ได้ภาพที่เรนเดอร์ได้แม่นยำยิ่งขึ้น

แตกต่างจากpath tracing , bidirectional path tracing , volumetric path tracingและMetropolis light transport การแมปโฟ ตอน (photon mapping) เป็นอัลกอริธึมการเรนเดอร์แบบ "มีอคติ"ซึ่งหมายความว่าการหาค่าเฉลี่ยของการเรนเดอร์ฉากเดียวกันจำนวนอนันต์โดยใช้วิธีนี้จะไม่ลู่เข้าสู่คำตอบที่ถูกต้องของสมการการเรนเดอร์อย่างไรก็ตาม มันเป็นวิธีการที่สม่ำเสมอ และความแม่นยำของการเรนเดอร์สามารถเพิ่มขึ้นได้โดยการเพิ่มจำนวนโฟตอน เมื่อจำนวนโฟตอนเข้าใกล้ค่าอนันต์ การเรนเดอร์จะเข้าใกล้คำตอบของสมการการเรนเดอร์มากขึ้นเรื่อยๆ

ผลกระทบ

สารกัดกร่อน

แบบจำลองแก้วไวน์ที่สร้างขึ้นโดยใช้เทคนิค Ray Tracingร่วมกับ Photon Mapping เพื่อแสดงแสงสะท้อน (Caustics)

แสงที่หักเหหรือสะท้อนจะทำให้เกิดลวดลายที่เรียกว่าคอสติกส์ (caustics ) ซึ่งมักมองเห็นได้เป็นจุดแสงที่เข้มข้นบนพื้นผิวใกล้เคียง ตัวอย่างเช่น เมื่อแสงผ่านแก้วไวน์ที่วางอยู่บนโต๊ะ แสงจะหักเหและปรากฏลวดลายของแสงบนโต๊ะ การทำแผนที่โฟตอน (Photon mapping) สามารถติดตามเส้นทางของโฟตอนแต่ละตัวเพื่อสร้างแบบจำลองว่าจุดแสงที่เข้มข้นเหล่านี้จะปรากฏขึ้นที่ใด

การสะท้อนแบบกระจาย

การสะท้อนแสงแบบกระจายตัวเกิดขึ้นเมื่อแสงจากวัตถุที่กระจายแสงชิ้นหนึ่งสะท้อนไปยังอีกชิ้นหนึ่ง วิธีการแมปโฟตอน (Photon mapping) มีความสามารถในการจัดการกับปรากฏการณ์นี้ได้เป็นอย่างดี เนื่องจากอัลกอริทึมจะสะท้อนโฟตอนจากพื้นผิวหนึ่งไปยังอีกพื้นผิวหนึ่งโดยอาศัยฟังก์ชันการกระจายการสะท้อนแบบสองทิศทาง (BRDF) ของพื้นผิวนั้น ดังนั้นแสงจากวัตถุหนึ่งที่กระทบกับอีกวัตถุหนึ่งจึงเป็นผลลัพธ์ตามธรรมชาติของวิธีการนี้ การสะท้อนแสงแบบกระจายตัวถูกจำลองขึ้นครั้งแรกโดยใช้ วิธีการคำนวณ รังสี (radiosity ) แต่การแมปโฟตอนแตกต่างออกไปตรงที่มันแยกการส่งผ่านแสงออกจากลักษณะของรูปทรงเรขาคณิตในฉาก การ รั่วไหลของสี (Color bleed)เป็นตัวอย่างหนึ่งของการสะท้อนแสงแบบกระจายตัว

การกระเจิงใต้พื้นผิว

การกระเจิงใต้พื้นผิวเป็นปรากฏการณ์ที่เห็นได้ชัดเมื่อแสงเข้าสู่วัสดุและเกิดการกระเจิงก่อนที่จะถูกดูดซับหรือสะท้อนไปในทิศทางอื่น การกระเจิงใต้พื้นผิวสามารถจำลองได้อย่างแม่นยำโดยใช้การทำแผนที่โฟตอน นี่เป็นวิธีการดั้งเดิมที่ Jensen นำมาใช้ อย่างไรก็ตาม วิธีการนี้จะช้าลงสำหรับวัสดุที่มีการกระเจิงสูง และฟังก์ชันการกระจายการสะท้อนแสงแบบกระเจิงพื้นผิวสองทิศทาง (BSSRDFs) จะมีประสิทธิภาพมากกว่าในสถานการณ์เหล่านี้

การใช้งาน

การสร้างแผนที่โฟตอน (รอบที่ 1)

ในการสร้างภาพ ด้วยเทคนิคโฟตอนแมปปิ้ง (photon mapping) อนุภาคแสงที่เรียกว่าโฟตอนจะถูกส่งออกไปจากแหล่งกำเนิดแสงไปยังฉาก เมื่อใดก็ตามที่โฟตอนตัดกับพื้นผิว จุดตัดและทิศทางที่เข้ามาจะถูกเก็บไว้ในแคชที่เรียกว่าโฟตอนแมป (photon map ) โดยทั่วไปแล้ว จะมีการสร้างโฟตอนแมปสองแผนที่สำหรับฉากหนึ่งๆ คือ แผนที่หนึ่งสำหรับแสงสะท้อน (caustics) โดยเฉพาะ และอีกแผนที่หนึ่งสำหรับแสงอื่นๆ ทั่วทั้งฉาก หลังจากตัดกับพื้นผิวแล้ว วัสดุจะกำหนดความน่าจะเป็นของการสะท้อน การดูดซับ หรือการส่งผ่าน/การหักเหของแสงวิธีการแบบมอนเตคาร์โลที่เรียกว่ารัสเซียนรูเล็ต (Russian roulette)จะถูกใช้ในการเลือกการกระทำอย่างใดอย่างหนึ่ง หากโฟตอนถูกดูดซับ จะไม่มีการกำหนดทิศทางใหม่ และการติดตามโฟตอนนั้นจะสิ้นสุดลง หากโฟตอนสะท้อนฟังก์ชันการกระจายการสะท้อนแบบสองทิศทาง ของพื้นผิว จะถูกใช้เพื่อกำหนดอัตราส่วนของความสว่างที่สะท้อนออกมา สุดท้าย หากโฟตอนส่งผ่าน ฟังก์ชันสำหรับทิศทางของมันจะถูกกำหนดขึ้นอยู่กับลักษณะของการส่งผ่าน

เมื่อสร้างแผนที่โฟตอนเสร็จแล้ว (หรือระหว่างการสร้าง) โดยทั่วไปจะจัดเรียงในลักษณะที่เหมาะสมที่สุดสำหรับอัลกอริธึมเพื่อนบ้านที่ใกล้ที่สุด k ตัวเนื่องจากเวลาในการค้นหาโฟตอนขึ้นอยู่กับการกระจายตัวเชิงพื้นที่ของโฟตอน เจนเซนสนับสนุนการใช้kd-treeแผนที่โฟตอนจะถูกจัดเก็บไว้ในดิสก์หรือในหน่วยความจำเพื่อใช้งานในภายหลัง

การเรนเดอร์ (รอบที่ 2)

ในขั้นตอนนี้ของอัลกอริธึม แผนที่โฟตอนที่สร้างขึ้นในรอบแรกจะถูกนำมาใช้เพื่อประมาณค่าความสว่างของแต่ละพิกเซลในภาพผลลัพธ์ สำหรับแต่ละพิกเซล จะมีการติดตามรังสีของฉากจนกว่าจะพบพื้นผิวที่ตัดกันที่ใกล้ที่สุด

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

เพื่อให้ได้ค่าประมาณความสว่างโดยตรงที่แม่นยำ จะลากเส้นรังสีจากจุดตัดไปยังแหล่งกำเนิดแสงแต่ละแหล่ง ตราบใดที่เส้นรังสีไม่ตัดกับวัตถุอื่น แหล่งกำเนิดแสงนั้นจะถูกนำมาใช้ในการคำนวณความสว่างโดยตรง สำหรับค่าประมาณความสว่างโดยอ้อม จะใช้แผนที่โฟตอนในการคำนวณค่าความสว่างที่ได้รับ

โดยส่วนใหญ่แล้ว การสะท้อนแบบสเปคูลาร์สามารถคำนวณได้โดยใช้กระบวนการติดตามรังสี (เนื่องจากกระบวนการนี้จัดการกับการสะท้อนได้ดี)

การคำนวณค่าความสว่างของพื้นผิวจากแสงสะท้อน (caustics) จะใช้แผนที่โฟตอนของแสงสะท้อนโดยตรง จำนวนโฟตอนในแผนที่นี้ต้องมีขนาดใหญ่เพียงพอ เนื่องจากแผนที่นี้เป็นแหล่งข้อมูลเดียวเกี่ยวกับแสงสะท้อนในฉาก

สำหรับการส่องสว่างทางอ้อมแบบนุ่มนวล ค่าความสว่างจะคำนวณโดยใช้แผนที่โฟตอนโดยตรง อย่างไรก็ตาม การคำนวณส่วนนี้ไม่จำเป็นต้องมีความแม่นยำเท่ากับการคำนวณส่วนโค้งแสง ดังนั้นจึงใช้แผนที่โฟตอนโดยรวมแทน

การคำนวณค่าความสว่างโดยใช้แผนที่โฟตอน

ในการคำนวณค่าความสว่างของพื้นผิว ณ จุดตัด จะใช้แผนที่โฟตอนที่จัดเก็บไว้ในแคช โดยมีขั้นตอนดังนี้:

  1. รวบรวมโฟตอนที่อยู่ใกล้ที่สุดจำนวน N ตัว โดยใช้ฟังก์ชันค้นหาเพื่อนบ้านที่ใกล้ที่สุดบนแผนที่โฟตอน
  2. ให้ S เป็นทรงกลมที่บรรจุโฟตอนทั้ง N ตัว
  3. สำหรับโฟตอนแต่ละตัว ให้หารปริมาณฟลักซ์ (โฟตอนจริง) ที่โฟตอนดังกล่าวแสดงด้วยพื้นที่ของ S แล้วคูณด้วยBRDFที่ใช้กับโฟตอนดังกล่าว
  4. ผลรวมของผลลัพธ์เหล่านั้นสำหรับแต่ละโฟตอนแสดงถึงความสว่างรวมของพื้นผิวที่สะท้อนกลับจากจุดตัดของพื้นผิวในทิศทางของรังสีที่ตกกระทบ

การเพิ่มประสิทธิภาพ

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

การเปลี่ยนแปลง

  • แม้ว่าการทำแผนที่โฟตอนจะถูกออกแบบมาเพื่อใช้งานร่วมกับโปรแกรมเรย์เทรเซอร์เป็นหลัก แต่ก็สามารถขยายไปใช้กับโปรแกรมเรนเดอร์แบบสแกนไลน์ได้ เช่นกัน
  • การให้แสงสว่างทั่วโลกโดยใช้แผนที่โฟตอน
  • การสังเคราะห์ภาพเสมือนจริงโดยใช้การแมปโฟตอน ISBN 1-56881-147-0
  • บทนำเกี่ยวกับการทำแผนที่โฟตอนจากสถาบันเทคโนโลยีวูสเตอร์ (Worcester Polytechnic Institute)
  • อคติในการเรนเดอร์
  • กระดาษซิกกราฟ
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Photon_mapping&oldid=1257901015 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การทำแผนที่โฟตอน

ใน กราฟิกคอมพิวเตอร์ การ แมปโฟตอน เป็น อัลกอริทึม การเรนเดอร์ แสงสว่างทั่วโลก แบบสองรอบที่พัฒนาโดย Henrik Wann Jensen ระหว่างปี 1995 ถึง 2001 [ 1 ] ซึ่งแก้สม การการเรนเดอร์...

สารกัดกร่อน

แสง ที่หักเห หรือ สะท้อน จะทำให้เกิดลวดลายที่เรียกว่า คอสติกส์ (caustics ) ซึ่งมักมองเห็นได้เป็นจุดแสงที่เข้มข้นบนพื้นผิวใกล้เคียง ตัวอย่างเช่น เมื่อแสงผ่านแก้วไวน์ที่วางอยู่บนโต๊ะ แสงจะหักเหและปรากฏลวดลายของแสงบนโต๊ะ การทำแผนที่โฟตอน (Photon mapping)...

การสะท้อนแบบกระจาย

การสะท้อนแสงแบบกระจายตัว เกิดขึ้นเมื่อแสงจากวัตถุที่กระจายแสงชิ้นหนึ่งสะท้อนไปยังอีกชิ้นหนึ่ง วิธีการแมปโฟตอน (Photon mapping) มีความสามารถในการจัดการกับปรากฏการณ์นี้ได้เป็นอย่างดี เนื่องจากอัลกอริทึมจะสะท้อนโฟตอนจากพื้นผิวหนึ่งไปยังอีกพื้นผิวหนึ่งโดยอาศัย...

การกระเจิงใต้พื้นผิว

การกระเจิงใต้พื้นผิว เป็นปรากฏการณ์ที่เห็นได้ชัดเมื่อแสงเข้าสู่วัสดุและเกิดการกระเจิงก่อนที่จะถูกดูดซับหรือสะท้อนไปในทิศทางอื่น การกระเจิงใต้พื้นผิวสามารถจำลองได้อย่างแม่นยำโดยใช้การทำแผนที่โฟตอน นี่เป็นวิธีการดั้งเดิมที่ Jensen นำมาใช้ อย่างไรก็ตาม...