Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows

DirectX 11 และ DirectX 12 ต่างกันอย่างไร? ทำความเข้าใจง่ายๆ

DirectX เป็นชุด API (Application Programming Interfaces) ที่ซอฟต์แวร์ใช้เรนเดอร์มัลติมีเดียและสื่อสารกับฮาร์ดแวร์กราฟิก्स ส่วนประกอบหลัก Direct3D จัดการการสื่อสารระหว่างซอฟต์แวร์และกราฟิกการ์ด เนื่องจากฮาร์ดแวร์ทุกตัวต่างกัน การใช้ไลบรารีฟังก์ชันมาตรฐานสื่อสารกับการ์ดจอ ทำให้พัฒนาเกมเร็วขึ้น เรียกว่า "Hardware Abstraction" เป็นหน้าที่หลักของ API

คิดถึงรถยนต์: ถ้าขับรถคันหนึ่งได้ ก็ขับคันอื่นได้ทุกคัน เพดัลแก๊ส/เบรก ต volant ประตู อยู่ตำแหน่งเดิม อาจต่างกันเล็กน้อยที่วิทยุ แต่โดยรวมคุณรู้ว่าจะเป็นยังไง DirectX และ Direct3D เหมือนกัน ให้นักพัฒนาเขียนโค้ดครั้งเดียว รันบนฮาร์ดแวร์หลากหลายได้ และนักพัฒนาเกมส่วนใหญ่ใช้ Direct3D มาตรฐาน ดังนั้นการเปลี่ยนแปลง API จะส่งผลต่อเกมเมอร์และโค้ดเดอร์ร่วมกัน

DirectX 12 มีอะไรใหม่?

DirectX 11 และ DirectX 12 ต่างกันอย่างไร? ทำความเข้าใจง่ายๆ

ทุกอัปเดตใหญ่ของ DirectX/Direct3D นำฟีเจอร์ใหม่มา Direct3D 12 นำการเปลี่ยนแปลงสำคัญมาอย่างมาก อาจเปิดยุคใหม่ของ Low-level Graphics API ที่จะเปลี่ยนวิธีพัฒนาเกม

Hardware Abstraction ระดับต่ำกว่า (Lower-level)

DirectX 12 ให้นักพัฒนาเข้าถึง "โลหะ" (Metal) ของการ์ดจอใกล้ชิดขึ้น เข้าถึงฟีเจอร์ที่เดิมทำไม่ได้ การเปิดเผยฮาร์ดแวร์ระดับต่ำ หมายถึงนักพัฒนาฝีมือดีเขียนโค้ดได้มีประสิทธิภาพและเร็วขึ้น โดยเฉพาะ: ปรับปรุง Multi-threaded performance และ CPU utilization ให้ดีขึ้น อาจทำ Low-level optimization คล้ายคอนโซลได้ ที่ปรับเกมให้รันเต็มที่บนฮาร์ดแวร์เฉพาะ

ก่อนหน้า DirectX 11 ให้ Hardware Abstraction ระดับสูง ทำให้เขียนโค้ดง่าย (นี่คือจุดเด่นของ API) แต่โอกาส Fine-tune โค้ดสำหรับฮาร์ดแวร์เฉพาะน้อยกว่า Microsoft Developer Blog อธิบายรายละเอียดได้ดี

ปรับปรุงประสิทธิภาพ Multi-core

DirectX 11 และ DirectX 12 ต่างกันอย่างไร? ทำความเข้าใจง่ายๆ

หลายปีก่อน เกมเมอร์ยอมรับว่า Multi-core CPU ไม่ค่อยช่วยเกม เพราะเกมพึ่ง Single-threaded performance ส่วนหนึ่งเพราะ DirectX 11 ไม่อนุญาต Parallelization มากพอ Multiple CPU threads ส่ง Draw commands พร้อมกันได้ แต่ยังประมวลผลในคิวทีละอัน DirectX 12 ยกข้อจำกัดนี้ ให้ Multi-core CPU ส่งคำสั่งไป GPU พร้อมกันได้ เปิดโอกาสประสิทธิภาพดีขึ้นบน Multi-core processors

ลด Draw Call Overhead

บน DirectX 11 CPU ใช้พลังมากไปกับการตีความคำสั่ง API มากกว่ารันโค้ดเกม DirectX 12 ลด API Overhead ปล่อยทรัพยากร CPU ให้รันโค้ดเกม เกมที่ CPU-limited อาจเห็นประสิทธิภาพดีขึ้น เพราะ CPU ว่างไปจัดการโค้ดเกม แต่วันนี้เกมส่วนใหญ่ไม่ใช่ CPU-limited แต่อาจเปลี่ยนในอนาคต

Explicit Multiadapter

DirectX 11 และ DirectX 12 ต่างกันอย่างไร? ทำความเข้าใจง่ายๆ

DirectX 12 รวม GPU หลายตัว (Display Adapters) เป็นหน่วยตรรกะเดียว ฟีเจอร์ "Explicit Multiadapter" ให้หลาย GPU ทำงานเหมือน GPU เดียว เช่น Integrated GPU ทำทีมกับ Discrete GPU ให้กำลังประมวลผล API support ดีกว่าหมายถึงความน่าเชื่อถือและประสิทธิภาพ Multi-GPU SLI/CrossFire ดีกว่า ทดสอบของ Microsoft: ใช้ Integrated + Discrete ได้ขีดเล็กน้อยใน Benchmark

DirectX 12 สำคัญต่อเกมเมอร์แค่ไหน?

เหมือนการปรับปรุงแบบทีละนิด เกมเมอร์ไม่เห็นความต่าง "วันและคืน" ระหว่าง DirectX 11 และ 12 ฟีเจอร์ใหม่ไม่มี Rendering options ใหม่ที่ว้าว ไม่ได้ FPS กระโดด 100 แต่ประสิทธิภาพที่ดีขึ้น จะนำไปสู่ Performance ดีกว่าบนฮาร์ดแวร์ไม่แรง ปรับปรุงพลังคอมพิวเตอร์โดยไม่ต้องอัปเกรดฮาร์ดแวร์