Path Tracing และ Ray Tracing คืออะไร และทำไมพวกเขาถึงปรับปรุงกราฟิก


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

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

หากนั่นเป็นคำอธิบายเดียวที่คุณต้องการนั่นยอดเยี่ยม! แต่ถ้าคุณต้องการที่จะขุดลึกลงไปและค้นหาว่าแต่ละเทคนิคทำงานอย่างไรและทำไม บริษัท ฮาร์ดแวร์ GPU ของคุณกำลังชาร์จไฟขนาดเล็กสำหรับการ์ดที่มีความสามารถในการติดตามเรย์อ่านต่อ

การทำให้เป็นแรสเตอร์และกราฟิกคอมพิวเตอร์

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

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

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

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

การติดตามรังสีดูสมจริงกว่าการทำให้เกิดการสั่นสะเทือนอีกครั้งดังที่ภาพด้านล่างแสดง ดูภาพสะท้อนบนหม้อทีและช้อน

<รูป class = "lazy aligncenter">

การติดตามเรย์คืออะไร

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

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

<รูป class = "lazy aligncenter">

แผนภาพด้านบนแสดงให้เห็นว่า thisworks เหตุผลที่ "ดวงตา" จำลอง (กล้องในแผนภาพนี้) เพื่อลดภาระใน GPU

ทำไม? การติดตามรังสีไม่ใช่เรื่องใหม่ มันใช้เวลาประมาณหนึ่งแล้ว Pixar ใช้เทคนิคการติดตามเรย์เพื่อสร้างภาพยนตร์จำนวนมาก แต่กราฟิกความละเอียดสูงแบบเฟรมต่อเฟรมที่ความละเอียดของพิกซาร์ใช้เวลานาน

เวลามาก บางเฟรมใน มหาวิทยาลัยอสุรกายใช้เวลาในการรายงาน 29 ชั่วโมงต่อครั้ง Toy Story 3ใช้เวลาเฉลี่ย 7 ชั่วโมงต่อหนึ่งเฟรมโดยบางเฟรมใช้เวลา 39 ชั่วโมงตามเรื่องราวในปี 2010 จาก สาย

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

ดูภาพด้านล่าง

<รูป class = "lazy aligncenter">

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

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

<รูป class = "สันหลังยาว wp-block-image">
ตัวอย่างการติดตามเรย์

ทีนี้ลองคิดดู นั่นคือ 30 ถึง 60 เท่าของการเรียกคืน นั่นคือปริมาณพลังงานที่จำเป็นสำหรับการใช้เทคนิคการติดตามรังสี มันน่าประทับใจใช่มั้ย

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

การติดตามเส้นทางคืออะไร

การติดตามเส้นทางคือประเภทของการติดตามรังสี ภายใต้ร่มนั้น แต่เมื่อมีการติดตามรังสีในช่วงปี 2511 นั้นการติดตามเส้นทางไม่ได้เกิดขึ้นจนกระทั่งปี 2529 (และผลลัพธ์ก็ไม่น่าทึ่งเหมือนตอนนี้)

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

อัลกอริธึมการติดตามเส้นทางจากนั้นใช้การสุ่มตัวอย่างแบบสุ่มของรังสีทั้งหมดเพื่อสร้างภาพสุดท้าย ส่งผลให้มีการสุ่มตัวอย่างแสงหลากหลายชนิด แต่โดยเฉพาะอย่างยิ่งการให้แสงสว่างระดับโลก

สิ่งที่น่าสนใจเกี่ยวกับการติดตามเส้นทางคือสิ่งที่เอฟเฟกต์สามารถเลียนแบบได้ผ่านการใช้เฉดสี แพทช์ shader ปรากฏขึ้นเมื่อเร็ว ๆ นี้สำหรับตัวจำลอง Nintendo Switch ที่อนุญาตให้ผู้เล่นกำหนดเส้นทางการส่องสว่างระดับโลกในชื่อเช่น The Legend of Zelda: ลมหายใจแห่ง Wildและ Super Mario Odysseyในขณะที่ เอฟเฟกต์ดูดีพวกมันไม่สมบูรณ์เหมือนการติดตามเส้นทางที่แท้จริง

<รูป class = "lazy aligncenter">

การติดตามเส้นทางเป็นเพียงหนึ่งเดียว รูปแบบของ raytracing ในขณะที่ได้รับการยกย่องว่าเป็นวิธีที่ดีที่สุดในการแสดงภาพให้ติดตามเส้นทางด้วยข้อบกพร่องของตัวเอง

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

อย่างไรก็ตามยังคงมีเวลา - อย่างน้อยหลายปี - ก่อนที่ฮาร์ดแวร์ที่จำเป็นจะได้รับการพิจารณาว่า“ มีราคาไม่แพง” ณ ตอนนี้แม้กระทั่งการ์ดกราฟิกที่จำเป็นมีราคาสูงกว่า $ 1,000

İlter Denizoğlu (Vokoloji Uzmanı) - Emre Yücelen İle Stüdyo Sohbetleri #12

กระทู้ที่เกี่ยวข้อง:


1.07.2019