พื้นที่ การแสดงผล วิธีการที่ใช้โดยทั่วไปในวิดีโอเกมเรียกว่า แรสเตอร์ or อัลกอริทึมของจิตรกร . แต่ด้วยการมาของ เรย์ติดตาม or เรย์ติดตาม ตามเวลาจริงเรากำลังเข้าใกล้ยุคที่มีการเอาชนะข้อ จำกัด เดิม ๆ อย่างสิ้นเชิง ด้วยการมาถึงของ เอเอ็มดี's RDNA2 และคอนโซลรุ่นใหม่เป็นที่ชัดเจนว่าเราไม่ได้เผชิญกับแฟชั่นที่ผ่านไปและนั่นคือเหตุผลที่เราอธิบายข้อดีของวิธีการแสดงภาพแบบใหม่นี้
การติดตามรังสีที่เราเริ่มเห็นในเกมไม่ใช่การใช้การติดตามรังสีที่ใช้ในภาพยนตร์ในปัจจุบันอย่างสมบูรณ์เนื่องจากจะช้าเกินไป แต่เป็นการรวมกันของเทคนิคการแรสเตอร์ที่ใช้มาจนถึงตอนนี้นอกเหนือจาก Ray Tracing เพื่อแก้ปัญหาบางอย่างที่ไม่สามารถแก้ไขได้ด้วยการแรสเตอร์
แนวคิดคือการแทนที่เทคนิคการแรสเตอร์แบบเดิม ๆ โดย Ray Tracing อย่างก้าวหน้าและค่อยเป็นค่อยไป แต่ถึงกระนั้นก็ตาม NVIDIAซึ่งเป็น บริษัท ที่ส่งเสริมเทคโนโลยีนี้มากที่สุดในช่วงไม่กี่ปีที่ผ่านมาในแง่ของการตลาดได้กำหนดวันที่สำหรับจุดเริ่มต้นของการสิ้นสุดการเปลี่ยนจากการแรสเตอร์เป็น Ray Tracing a ภายในปี 2023
นั่นคือเหตุผลที่ในช่วงหลายปีที่ผ่านมาเกมต่างๆจะใช้สิ่งที่เราเรียกว่า Hybrid Ray Tracing หรือ Ray Tracing แบบเรียลไทม์ซึ่งประกอบด้วยการรวมการแรสเตอร์ที่ใช้จนถึงปัจจุบันในเกมเพื่อแสดงฉากร่วมกับ Ray Tracing เพื่อแก้ปัญหาภาพบางอย่างที่ไม่สามารถทำได้ แก้ไขโดยการแรสเตอร์
นั่นหมายความว่าเกมจะละทิ้งการแรสเตอร์ทีละน้อยและ GPU ที่อยู่ในกราฟิกการ์ดของเราจะค่อยๆเปลี่ยนไปตามอุดมคตินั้น
Rasterized เทียบกับ Ray Tracing
ในการแรสเตอร์เราอัปเดตค่าสีของพิกเซลบนหน้าจอแล้วอัปเดตพิกเซลนั้นอีกครั้ง นั่นหมายความว่าต้องอัปเดตพิกเซลเดียวหลายครั้งในฉากเดียว
ในทางกลับกันด้วยการติดตามรังสีจะไม่มีการกำหนดค่าสีของพิกเซลจนกว่ารังสีจะเสร็จสิ้นทั้งวิถีดังนั้นข้อมูลในบัฟเฟอร์ภาพจะได้รับการอัปเดตเพียงครั้งเดียว
ความแตกต่างนี้ซึ่งอาจเล็กน้อยมีความสำคัญเนื่องจากการแรสเตอร์โดยการอัปเดตค่าของพิกเซลในบัฟเฟอร์ภาพอย่างต่อเนื่องซึ่งเก็บไว้ในหน่วยความจำของกราฟิกต้องใช้แบนด์วิดท์ขนาดใหญ่มากในการแสดงฉากแต่ละฉากที่ซับซ้อนมากขึ้น
ไปป์ไลน์การติดตามรังสีไฮบริด
ไม่ว่าเราจะใช้ Vulkan, DirectX 12 Ultimate หรือ API ประเภทอื่นก็ตามขั้นตอนและลำดับของสิ่งเหล่านี้จะเหมือนกันเสมอ
- เรย์ เจเนอเรชัน เชเดอร์: จะต้องเรียกใช้ shader นี้ทุกครั้งที่เราต้องการให้วัตถุในฉากปล่อยรังสีชนิดหนึ่งออกมา
- Intersection Shader: มัน เป็นเงาที่คำนวณจุดตัดระหว่างรังสีกับวัตถุเลิกใช้งานเนื่องจากหน่วยตัดกันเช่น RT Core ของ NVIDIA ทำงานนี้ควบคู่กันไปและมีประสิทธิภาพมากขึ้น
- ความละเอียดเฉดสี: พวกเขา เป็นประเภทของโปรแกรม shader ที่ใช้กับวัตถุโดยขึ้นอยู่กับผลลัพธ์ของการตัดกันเรียกว่า miss shader, hit shader ที่ใกล้ที่สุด, hit shader ฯลฯ ทั้งหมดไม่ทำงานพร้อมกันเนื่องจากจุดตัดให้ หนึ่งผลลัพธ์
เนื่องจาก GPU ที่เราใช้ในระบบของเราสำหรับ Ray Tracing ขาดพลังสิ่งที่ทำคือการใช้งานขั้นต่ำโดย จำกัด ปริมาณรังสีที่ประกอบเป็นฉากและระดับการเรียกซ้ำ
การจัดแสงทางอ้อมข้อดีของการติดตามรังสี
แม้จะมีการปรับปรุงอย่างต่อเนื่องใน GPU พลังและความสามารถในการตั้งโปรแกรมในช่วงสองทศวรรษที่ผ่านมาทั้งหมดใช้อัลกอริทึมเดียวกันในการแสดงฉากฉากที่เรียกว่าอัลกอริทึมแรสเตอร์
อัลกอริทึมนี้ดีพอหากเราต้องการแสดงฉากด้วยแสงโดยตรงนั่นคือแหล่งกำเนิดแสงที่ตกกระทบบนวัตถุ แต่ไม่มีวัตถุเหล่านี้สร้างแหล่งกำเนิดแสงชนิดใด ๆ ด้วยตัวเองในทางอ้อมซึ่งเป็นจุดเริ่มต้น ที่จะกระจุยโดยสิ้นเชิงเนื่องจากรูปแบบการส่องสว่างมี จำกัด
ในทางกลับกันการติดตามรังสีจะเกี่ยวข้องกับเส้นทางของแสงในฉากและคำนึงถึงพฤติกรรมและวิถีของมันด้วย
" เราเข้าใจว่าเป็นแสงทางอ้อมซึ่งเกิดจากวัตถุเมื่อแหล่งกำเนิดแสงตรงมาตกกระทบ ".
ปัญหามาจากวิธีการเรนเดอร์ที่การแรสเตอร์ไม่ได้คำนึงถึงเส้นทางของแสงดังนั้นเมื่อพูดถึงการแสดงพฤติกรรมของสิ่งนี้เมื่อส่งผลกระทบต่อวัตถุจึงต้องหาวิธีการทดแทนเนื่องจาก ขาดข้อมูลในที่เกิดเหตุ
แผนที่เงาตัวอย่างของข้อ จำกัด ของการแรสเตอร์
มากกว่าหนึ่งครั้งการเล่นวิดีโอเกมจะทำให้คุณอยากละสายตาเพราะเงาในเกม เหตุผลก็คือ GPU ต้องทำงานพิเศษเพื่อให้เข้าใจว่าเงาจะเป็นอย่างไรเนื่องจากไม่มีข้อมูล
สิ่งที่ทำได้คือการแสดงฉากให้สมบูรณ์อีกครั้ง แต่ถ่ายวัตถุที่สร้างเงาเป็นกล้องของฉากใหม่และเก็บเฉพาะบัฟเฟอร์ความลึกเป็นแผนที่เงาเท่านั้น
คุณจินตนาการถึงพลังที่ต้องใช้ในการคำนวณเงาของวัตถุทั้งหมดในฉากหรือไม่? โปรดทราบว่าด้วยการแรสเตอร์ค่าของพิกเซลจะได้รับการอัปเดตอย่างต่อเนื่องในขณะที่การติดตามรังสีจะไม่เกิดปัญหานี้เนื่องจากจะอัปเดตเมื่อรังสีเดินทางผ่านฉากทั้งหมดเท่านั้น
สิ่งหนึ่งที่เกิดขึ้นเพื่อแก้ไขโดยการติดตามรังสีคือแผนที่เงาและไม่เพียง แต่สิ่งเหล่านี้เท่านั้น แต่ยังรวมถึงการสะท้อนของวัตถุการหักเห ฯลฯ
เอฟเฟกต์ทั้งหมดนี้เริ่มถูกถ่ายโอนไปยัง Ray Tracing เนื่องจากข้อเท็จจริงที่ว่าการแรสเตอร์ไม่สามารถแก้ปัญหาภาพเหล่านี้ได้ด้วยคำจำกัดความเดียวกัน
อีกวิธีหนึ่งที่นักพัฒนาสามารถเอาชนะข้อ จำกัด ของการแรสเตอร์ได้คือการใช้แผนที่แสงเงาและ / หรือการสะท้อนแบบคงที่ ตัวอย่างเช่นสิ่งที่พวกเขาทำคือวางเงาคงที่บนพื้นที่งานซึ่งได้รับการคำนวณไว้ล่วงหน้าและเงาเหล่านี้ไม่ได้เป็นแบบไดนามิกและไม่เปลี่ยนแปลงเมื่อมีการเปลี่ยนแปลงของแสงอย่างต่อเนื่อง
ข้อดีอีกประการหนึ่ง: การเป็นตัวแทนของวัสดุ
องค์ประกอบที่สำคัญอีกอย่างในการแสดงฉาก 3 มิติที่เหมือนจริงคือการแสดงวัสดุที่พฤติกรรมของแสงมีผลด้วยและเนื่องจากการแรสเตอร์มีรูปแบบของแสงที่ จำกัด มากจึงทำให้วัตถุในฉาก 3 มิติไม่ปรากฏขึ้น ควรจะเป็น.
ต้องคำนึงว่าวัสดุแต่ละประเภทแสดงด้วยผลหารการหักเหของแสงซึ่งก็คือปริมาณแสงที่พวกมันเปล่งออกมาและอยู่ในช่วง 0 ถึง 1 ผลหารการหักเหของแสงสูงสุดคือพื้นผิวแบบกระจกที่จะสะท้อนรังสีเต็มรูปแบบและค่าต่ำสุดคือวัตถุที่ดูดซับแสงทั้งหมดและไม่หักเห เมื่อรังสีของแสงกระเด็นออกจากวัตถุพวกมันจะมีระดับพลังงานติดตัวและเมื่อถึงศูนย์รังสีจะหยุดเดินทางในฉาก
ทุกครั้งที่รังสีกระทบวัตถุในกรณีที่เราทำให้วัตถุนั้นปล่อยผลิตภัณฑ์รังสีทางอ้อมของจุดตัดผ่านเครื่องสร้างรังสีจะออกมาพร้อมกับระดับพลังงานที่เทียบเท่ากับรังสีที่ตกกระทบบนวัตถุก่อนหน้านี้ โดยผลหารการหักเหของวัตถุ
ข้อดีอย่างหนึ่งของ Ray Tracing ก็คือวิธีที่สามารถแสดงวัสดุที่แตกต่างกันเพิ่มคุณภาพของภาพและไม่ต้องดึงโปรแกรม shader ที่ซับซ้อนซึ่งต้องใช้การคำนวณจำนวนมากในส่วนนั้น ๆ ของ GPU และการรวมกันของแผนที่พื้นผิวที่ไม่ได้ผลลัพธ์เช่นเดียวกัน