DirectX Raytracing (DXR) Tier 1.1 คุณสมบัติใหม่สามารถทำงานร่วมกับการสนับสนุนไดร์เวอร์เพียงอย่างเดียวโดยไม่ต้องปรับเปลี่ยนฮาร์ดแวร์หนัก ๆ

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

ในขณะเดียวกัน Microsoft ก็มั่นใจว่าระบบนิเวศของ Windows OS นั้นเหมาะสมอย่างยิ่งในฐานะแพลตฟอร์มที่เหมาะสำหรับการเล่นเกมระดับไฮเอนด์ แพลตฟอร์ม DirectX ของ บริษัท ซึ่งเป็นมาตรฐานชั้นนำสำหรับการเล่นเกมบนเดสก์ท็อปมายาวนานกำลังได้รับการปรับแต่งเพื่อรองรับการใช้งานและยังช่วยเพิ่ม "Real-time Ray Tracing" ในความเป็นจริง DirectX Raytracing (DXR) Tier 1.1 เป็นมาตรฐานล่าสุดที่รองรับชุดคุณสมบัติใหม่ คุณสมบัติที่น่าตื่นเต้นบางอย่างที่การติดตามเรย์แบบเรียลไทม์สามารถรองรับได้ในคุณสมบัติใกล้ ได้แก่ การติดตามรังสีอินไลน์ DispatchRays () เรียกผ่าน ExecuteIndirect (), เพิ่มสถานะวัตถุผ่าน AddToStateObject (), GeometryIndex () ในเฉดสี raytracing, และอื่น ๆ. มาดูคุณสมบัติใหม่บางส่วนที่ DirectX 12 สำหรับ Windows 10 จะรองรับการติดตามรังสี

การติดตามเรย์แบบอินไลน์:

อีกรูปแบบหนึ่งของการติดตามรังสีแบบอินไลน์ไม่ได้ใช้เฉดสีแบบไดนามิกหรือตารางเชดเดอร์ที่แยกจากกัน API สำหรับคุณลักษณะนี้ซ่อนการเข้าถึงโครงสร้างการเร่งความเร็ว (เช่นโครงสร้างข้อมูลการส่งผ่านกล่องจุดตัดสามเหลี่ยม) สิ่งนี้จะปล่อยให้ฮาร์ดแวร์ / ไดรเวอร์เป็นหลัก ที่น่าสนใจคือรหัสแอปที่จำเป็นทั้งหมดสำหรับจัดการทั้ง Hit ของผู้สมัครที่แจกแจงและผลลัพธ์ของการสืบค้น (เช่น hit vs miss) สามารถมีอยู่ใน shader ที่ขับเคลื่อน RayQuery.

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

DispatchRays () โทรผ่าน ExecuteIndirect ():

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

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

การเติบโตของออบเจ็กต์สถานะผ่าน AddToStateObject ():

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

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

GeometryIndex () ใน Ray Tracing Shaders:

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

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

นอกเหนือจากคุณสมบัติดังกล่าวแล้ว DirectX Raytracing (DXR) Tier 1.1 ยังรวมถึง RAY_FLAG_SKIP_TRIANGLES และ RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES ธง แม้ว่าแฟล็กเหล่านี้จะพร้อมใช้งานสำหรับการโทร raytracing แต่ละรายการ แต่ยังสามารถประกาศทั่วโลกผ่านการกำหนดค่าไปป์ไลน์ raytracing

เป็นที่ชัดเจนว่า Microsoft กำลังพยายามเพิ่มประสิทธิภาพ DirectX 12 สำหรับเกมที่ใช้กราฟิกมาก ยิ่งไปกว่านั้นด้วย ray tracing ที่สัญญาว่าจะเป็นหนึ่งในคุณสมบัติที่สำคัญที่สุดสำหรับเกมระดับไฮเอนด์และเกมเมอร์ บริษัท จึงมั่นใจได้ว่าระบบ CPU และ GPU จะถูกใช้อย่างเหมาะสมที่สุดโดยมีความซ้ำซ้อนน้อยที่สุด

Facebook Twitter Google Plus Pinterest