ดาวน์โหลดโปรแกรมฟรี
       
   สมัครสมาชิก   เข้าสู่ระบบ
THAIWARE.COM | ทิปส์ไอที
 

เทคโนโลยี Ray Tracing คืออะไร ? และมันทำงานอย่างไร ?

เทคโนโลยี Ray Tracing คืออะไร ? และมันทำงานอย่างไร ?
ภาพจาก : https://www.nvidia.com/en-us/geforce/news/gfecnt/control-rtx-ray-tracing-dlss/
เมื่อ :
|  ผู้เข้าชม : 17,438
เขียนโดย :
0 %E0%B9%80%E0%B8%97%E0%B8%84%E0%B9%82%E0%B8%99%E0%B9%82%E0%B8%A5%E0%B8%A2%E0%B8%B5+Ray+Tracing+%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3+%3F+%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B8%A1%E0%B8%B1%E0%B8%99%E0%B8%97%E0%B8%B3%E0%B8%87%E0%B8%B2%E0%B8%99%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%A3+%3F
A- A+
แชร์หน้าเว็บนี้ :

Ray Tracing คืออะไร ? ทำงานอย่างไร ?

หากคุณชอบเล่นเกม หรือติดตามข่าวสารในแวดวง การ์ดจอ (Graphic Card) วงการนี้ก็จะมีคำศัพท์เทคนิค (Buzzword) อยู่หลายคำ ไม่ว่าจะเป็น Ambient Occlusion, Anti-Aliasing, Adaptive Vertical Synchronization, Ray Tracing และอื่น ๆ อีกมากมาย

บทความเกี่ยวกับ Graphic Card อื่นๆ

คำศัพท์เหล่านี้ เป็น Buzzword ที่ใช้ในการอธิบายเกี่ยวกับเทคโนโลยีในกราฟิกการ์ดมาอย่างยาวนาน แต่ถ้าถามว่าคำไหนที่มาแรงสดใน พ.ศ. นี้ ก็คงต้องยกให้คำว่า "Ray Tracing" สังเกตได้จากบริษัทเทคโนโลยีรายใหญ่ไม่ว่าจะ Nvidia, AMD, Microsoft หรือ Sony คุณจะเห็นว่าในการเปิดตัวกราฟิกการ์ดรุ่นใหม่ รวมไปถึงเครื่องเกมคอนโซลรุ่นล่าสุด ต่างก็แข่งขันกันที่ความสามารถในการทำ Ray Tracing

Ray Tracing มันมีดีอะไร ? ทำไมบริษัทเหล่านี้ถึงมองว่ามันเป็นตัวเปลี่ยนเกม มาทำความรู้จักเทคโนโลยีนี้กัน

เนื้อหาภายในบทความ

เทคโนโลยี Ray Tracing คืออะไร ?
(What is Ray Tracing Technology ?)

แนวคิดของการทำ Ray Tracing จริง ๆ แล้วนั้น ไม่ใช่เรื่องใหม่ หากมองย้อนกลับไปมันมีการบันทึกเอาไว้ในหนังสือ "Four Books on Measurement" ที่ตีพิมพ์ในปี ค.ศ. 1591 (พ.ศ. 2494) โดยอัลเบร็ชท์ ดือเรอร์ (Albrecht Dürer) จิตรกร และนักคณิตศาสตร์ชาวเยอรมัน ที่ได้ประดิษฐ์ Dürer's door อุปกรณ์ที่จะช่วยให้เขาสามารถสร้างแสงลงบนชิ้นงานของเขาได้อย่างสมจริง ส่วนการใช้คอมพิวเตอร์ในการสร้างภาพที่จำลองแสงด้วย Ray Tracing เกิดขึ้นเป็นครั้งแรกในปี ค.ศ. 1968 (พ.ศ. 2511) ด้วยฝีมือของ Arthur Appel 

เทคโนโลยี Ray Tracing คืออะไร ? (What is Ray Tracing Technology ?)

ทีนี้ เรามาทำความเข้าใจกับวิธีการที่วิดีโอเกมใช้ในการเรนเดอร์แสงภายในฉากกันก่อน

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

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

แม้ GPU จะมีการพัฒนาให้มีประสิทธิภาพสูงขึ้นมาตลอดทุกปี ภาพที่เราเห็นดูสมจริงสวยงามมาก แต่ "แสงสะท้อน" ของเกมยุคก่อนที่จะมี Ray Tracing ก็ยังห่างไกลจากความสมจริงมาก เพราะแสงที่เราเห็นมันเป็นเพียงแสงปลอม ๆ ที่ทางนักพัฒนาได้ "Baked-in" เตรียมการไว้ล่วงหน้า

ลองดูตัวอย่างจากภาพด้านล่างนี้ จะเห็นความแตกต่างของแสงที่เป็น Bake-in กับแสงจาก Ray Tracing ได้อย่างชัดเจน

เทคโนโลยี Ray Tracing คืออะไร ? (What is Ray Tracing Technology ?)
ภาพจาก : https://imgur.com/f70Ry33

การจะทำให้แสงภายในวิดีโอเกมสวยงามสมจริงได้ GPU จะต้องเรนเดอร์ข้อมูลแสงหลายอย่างมาก ไม่ว่าจะเป็นแหล่งกำเนิดแสง, ลำแสง, ทิศทางแสง, แสงสะท้อน, การหักเหของแสง และเงาของโมเดล

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

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

วิธีคำนวณโฟตอนจำลองไม่ใช่เรื่องใหม่ ในวงการ CGI (Computer Generated Imagery ) มีการใช้เทคนิคในการสร้างภาพมาเป็นสิบปีแล้ว แต่ปัญหาคือมันต้องใช้พลังในการประมวลผลสูงมาก วิดีโอเพียงไม่กี่เฟรมอาจจะต้องใช้เวลาเรนเดอร์เป็นชั่วโมง หรือเป็นวันกว่าจะเสร็จ ถ้าจะทำภาพยนตร์แอนิเมชันที่ใช้เทคนิค Ray Tracing ก็ต้องอาศัยฟาร์มคอมพิวเตอร์ขนาดใหญ่ประมวลผลกันเป็นเดือน ๆ เลยล่ะ ดังนั้น การจะใช้ Ray Tracing ในเกมคอมพิวเตอร์ของผู้ใช้ตามบ้าน จึงไม่เคยเกิดขึ้นมาก่อน

Tony Tamasi รองประธานฝ่ายการตลาดด้านเทคนิคของ Nvidia เคยกล่าวเอาไว้ว่า "เกมต้องรันภาพที่ 60 Fps หรือ 120 Fps แต่ละเฟรมใช้เวลาในการคำนวณประมาณ 16 มิลลิวินาที ในขณะที่ภาพยนตร์เป็นการเรนเดอร์ล่วงหน้า มันมีเวลา 8-24 ชั่วโมง ให้ใช้ในการเรนเดอร์เฟรมเพียงแค่เฟรมเดียว" แล้วอย่าลืมว่ามันมีการเปลี่ยนมุมกล้องด้วย พอเราเปลี่ยนมุมกล้อง แสงก็ต้องเปลี่ยนตาม ต้องคำนวณค่าแสงใหม่หมดทุกครั้งที่มีการขยับด้วย

จนกระทั่งในปี ค.ศ. 2018 (พ.ศ. 2561) ที่ Nvidia ได้เปิดตัว Nvidia GeForce RTX (Ray Tracing Texel eXtreme) ซึ่งเป็น GPU ระดับ Consumer ตระกูลแรกที่มีฮาร์ดแวร์สำหรับเรนเดอร์ Ray Tracing ได้แบบเรียลไทม์ใส่เข้ามาเป็นครั้งแรก หลังจากนั้นเป็นต้นมาจนถึงปัจจุบันนี้ จุดขายของ GPU นอกจากความแรงแล้ว ก็มี Ray Tracing นี่แหละ ที่ผู้ผลิตใช้เป็นจุดขายในการแข่งขัน

เทคโนโลยี Ray Tracing ทำงานอย่างไร ?
(How does Ray Tracing Technique work ?)

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

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


คลิปวิดีโอจาก https://youtu.be/D1U1S5GzvJ8

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

หลักการทำงานของ Ray Tracing ที่ใช้วิธีคำนวณจากมุมมองของผู้เล่น
หลักการทำงานของ Ray Tracing ที่ใช้วิธีคำนวณจากมุมมองของผู้เล่น
ภาพจาก : https://developer.nvidia.com/discover/ray-tracing

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

อย่างไรก็ตาม แม้จะลดข้อมูลแสงให้เหลือเฉพาะส่วนที่ผู้ใช้มองเห็นแล้ว เอาจริง ๆ มันก็ยัง "เยอะ" จน GPU ประมวลผลไม่ไหวอยู่ดี จึงต้องแก้ไขปัญหาด้วยการผสมผสานเทคนิคเรนเดอร์แสงแบบดั้งเดิมที่เรียกว่า "Rasterization" ร่วมกับการทำ Ray Tracing บนพื้นผิวบางส่วนในฉาก อย่างเช่น เงาสะท้อนของกระจก, พื้นผิวโลหะ, แอ่งน้ำ, กระจก ฯลฯ นอกจากแสงแล้ว Ray Tracing ยังช่วยยกระดับความสมจริงของเงาสะท้อนให้สมจริงยิ่งขึ้นได้อีกด้วย 


คลิปวิดีโอจาก https://youtu.be/rpUm0N4Hsd8

ด้วยการผสมทั้งสองเทคนิคเข้าด้วยกัน Ray Tracing จึงเกิดขึ้นได้ในเกมคอมพิวเตอร์ยุคนี้ แม้จะยังไม่ยังไม่ใช่ Ray Tracing แท้ 100% แต่ผลลัพธ์ก็ถือว่าดี สมจริงกว่าเดิมมาก อย่างไรก็ตาม การพัฒนาเกมโดยใส่ Ray Tracing ลงไปให้เนียนไปกับแสงที่ถูก "Baked-in" ไว้แล้ว ก็ยังเป็นเรื่องยาก 

เพื่อเพิ่มประสิทธิภาพ Nvidia ก็เลยมีการนำเอาเทคโนโลยี Deep Learning Super Sampling (DLSS) และการทำ Denoising เข้ามาช่วย เพิ่มประสิทธิภาพในการทำงาน และลดปริมาณข้อมูลที่ต้องใช้ในการคำนวณค่าแสง

ฮาร์ดแวร์ที่รองรับ เทคโนโลยี Ray Tracing
(What Hardware and Games support Ray Tracing Technology ?)

สำหรับเทคนิค Ray Tracing ในคอมพิวเตอร์จะอาศัยการประมวลผลจาก GPU เป็นหลัก สำหรับค่าย Nvidia ก็จะเริ่มต้นที่ตระกูล RTX 20 และในรุ่นล่าสุดอย่าง RTX 40 ก็เพิ่มคุณสมบัติใหม่ที่เรียกว่า Shader Execution Reordering (SER) เข้ามา โดยเป็นคุณสมบัติที่จะคาดเดาแสงในเฟรมถัดไปแบบทั้งเฟรม แทนที่จะคำนวณทีละพิกเซล ซึ่งจะช่วยเพิ่มความเร็ว และลดภาระในการคำนวณเป็นอย่างมาก

หลักการทำงานของ Shader Execution Reordering (SER)
หลักการทำงานของ Shader Execution Reordering (SER)
ภาพจาก : https://developer.nvidia.com/blog/improve-shader-performance-and-in-game-frame-rates-with-shader-execution-reordering/

ส่วนค่าย AMD มาช้า แต่ในที่สุดก็มา โดยเริ่มรองรับตั้งแต่ RX 6800, 6800 XT และ 6900 XT ที่รองรับ DirectX12 Ray Tracing แม้ประสิทธิภาพการทำงานในตอนนี้ Ray Tracing ของ AMD จะยังสู้ DLSS 3 ของ Nvidia ไม่ได้ แต่อนาคตของมันก็ไม่น่าเป็นห่วง เพราะในเครื่องเกมคอนโซลรุ่นล่าสุดอย่าง PlayStation 5 และ Xbox Series X ทั้งคู่ใช้ GPU ของ AMD และรองรับ Ray Tracing ด้วยเช่นกัน จึงมั่นใจได้ว่าการพัฒนาของมันจะน่าสนใจไม่แพ้ Nvidia อย่างแน่นอน


ที่มา : www.digitaltrends.com , www.wired.com , en.wikipedia.org , www.gamersnexus.net , www.nvidia.com , en.wikipedia.org , developer.nvidia.com

0 %E0%B9%80%E0%B8%97%E0%B8%84%E0%B9%82%E0%B8%99%E0%B9%82%E0%B8%A5%E0%B8%A2%E0%B8%B5+Ray+Tracing+%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3+%3F+%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B8%A1%E0%B8%B1%E0%B8%99%E0%B8%97%E0%B8%B3%E0%B8%87%E0%B8%B2%E0%B8%99%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%A3+%3F
แชร์หน้าเว็บนี้ :
Keyword คำสำคัญ »
เขียนโดย
ระดับผู้ใช้ : Admin    Thaiware
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ
 
 
 

ทิปส์ไอทีที่เกี่ยวข้อง

 


 

แสดงความคิดเห็น