Ray Tracing คืออะไร?

สารบัญ:

Ray Tracing คืออะไร?
Ray Tracing คืออะไร?
Anonim

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

Ray Tracing: พื้นฐาน

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

Image
Image

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

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

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

Ray Tracing กับ Rasterization (หรือกราฟิก 3D อย่างที่คุณรู้)

Image
Image

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

เกม 3 มิติที่ผ่านมาและเกมที่ทันสมัยที่สุด ใช้การแรสเตอร์ Rasterization รวมองค์ประกอบของโลกของเกม 3D ที่ผู้เล่นมองเห็นได้เป็นภาพ 2D มันแสดงเฉพาะสิ่งที่ผู้เล่นควรมองเห็น เนื่องจากประสิทธิภาพใดๆ ที่ใช้เพื่อสร้างสิ่งที่ผู้เล่นมองไม่เห็นจะสูญเปล่า อย่างไรก็ตาม สิ่งนี้ทำให้เกิดปัญหา

กลับไปที่ตัวอย่างกระจกกัน สภาพแวดล้อมของผู้เล่นและตัวละครของผู้เล่นจะไม่ปรากฏแก่ผู้เล่น (อย่างน้อยก็ในเกมมุมมองบุคคลที่หนึ่ง) ด้วยการแรสเตอร์จึงไม่มีอะไรให้กระจกสะท้อนออกมา

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

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

Ray tracing ไม่ได้แชร์ปัญหาเหล่านี้เพราะมันต่างจาก rasterization ตรงที่มันสามารถแกะรอยนอกมุมมองของผู้เล่นได้

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

Ray Tracing ต้องใช้ฮาร์ดแวร์อะไร

Image
Image

Ray Tracing ไม่ใช่แนวคิดใหม่ นักวิทยาศาสตร์คอมพิวเตอร์ทดลองกับการติดตามรังสีในช่วงต้นทศวรรษ 1980 โดยสร้างภาพนิ่งด้วยแสง การสะท้อน และเงาที่สมจริง น่าเสียดายที่พวกเขาใช้เวลาหลายชั่วโมงในการเรนเดอร์

วิดีโอเกมต้องการ Ray Tracing แบบเรียลไทม์ที่ 30 เฟรมต่อวินาทีหรือสูงกว่า เป็นไปได้เฉพาะกับการ์ดวิดีโอที่ออกแบบมาเพื่อเร่งการติดตามเรย์

การติดตามรังสี RTX ของ Nvidia อาศัยซิลิคอนที่เรียกว่า Tensor CoreTensor Cores มีอยู่ในการ์ดวิดีโอ RTX เท่านั้น การ์ด GTX ของ Nvidia สามารถแสดงผลเกมโดยใช้ ray tracing เนื่องจาก ray tracing ไม่ต้องการซิลิกอนที่สร้างขึ้นตามวัตถุประสงค์ อย่างไรก็ตาม ประสิทธิภาพนั้นแย่มากเมื่อเทียบกับการ์ด RTX และเกมบางเกม เช่น Minecraft ที่มี RTX ray tracing นั้นต้องการการ์ดวิดีโอ RTX เนื่องจากวิธีการเฉพาะที่พวกเขาเปิดใช้งาน Ray Tracing

การ์ด AMD ที่เร่ง ray tracing ไม่มีการสร้างแบรนด์เฉพาะและไม่มีซิลิกอนเฉพาะ พวกเขาใช้การปรับแต่งฮาร์ดแวร์และการอัปเดตซอฟต์แวร์แทนเพื่อผลลัพธ์ที่ดีขึ้น การระบุการ์ด AMD ที่เร่ง ray tracing นั้นยากกว่า ดังนั้นให้ใส่ใจในรายละเอียดให้ดี

PlayStation 5 และ Xbox Series X และ S ของ Sony มีฮาร์ดแวร์กราฟิกจาก AMD ที่สามารถเร่ง Ray Tracing ได้ อย่างไรก็ตาม ขึ้นอยู่กับนักพัฒนาที่จะเปิดใช้งาน และหลายเกมไม่สามารถทำได้ ตัวอย่างที่น่าสังเกตคือ Cyberpunk 2077 ซึ่งรองรับ RTX ray tracing บนพีซีเมื่อเปิดตัว แต่ไม่รองรับ ray tracing บนคอนโซลรุ่นต่อไป คุณลักษณะนี้สัญญาไว้สำหรับคอนโซลรุ่นต่อไปในแพทช์ในอนาคต

แนะนำ: