ในการเล่นเกมบนคอมพิวเตอร์ พีซี นอกจากฮาร์ดแวร์ที่มีผลต่อประสิทธิภาพหลัก ๆ อย่างการ์ดจอ ซีพียู และ SSD จะต้องรองรับแล้ว ด้านของซอฟต์แวร์ก็ต้องเอื้ออำนวยต่อการเล่นเกมด้วยเช่นกัน ที่เห็นภาพชัดหน่อยก็คือเวอร์ชันของ Windows ส่วนถ้าเป็นเมื่อ 10-20 ปีก่อน อีกสิ่งที่สำคัญมาก ๆ ก็คือชุดคำสั่งที่มีชื่อว่า DirectX ที่แต่ละเกมจะระบุมาอย่างชัดเจนเลย ว่าต้องมีเวอร์ชันขั้นต่ำตามที่เกมระบุถึงจะสามารถเล่นได้ ซึ่งในปัจจุบันก็ได้เดินมาถึง DirectX 12 แล้ว แต่บางทีเราอาจจะเจอกับคำว่า DirectX 12 Ultimate และเกิดข้อสงสัยว่ามันคืออะไร สามารถหามาลงในเครื่องได้หรือเปล่า แล้วมันต่างจาก DirectX 12 ปกติอย่างไร เรามาหาคำตอบกัน
DirectX คืออะไร
DirectX (ย่อว่า DX) คือชุดคำสั่งในรูปแบบ API ที่ใช้เป็นสื่อกลางระหว่างซอฟต์แวร์ด้านความบันเทิงและฮาร์ดแวร์เครื่องโดยเฉพาะด้านภาพและเสียง เพื่อให้สามารถเรียกใช้งานฮาร์ดแวร์ได้เต็มประสิทธิภาพที่สุด หลัก ๆ แล้วจะมีผลกับการเล่นเกมที่ต้องอาศัยพลังในด้านนี้มากเป็นพิเศษ โดยภายในจะมี API ย่อยที่หลายท่านคุ้นชื่อกันดี อาทิ Direct3D (D3D) และ DirectDraw (Ddraw) เป็นต้น ได้รับการพัฒนาขึ้นโดย Microsoft และผูกอยู่กับระบบปฏิบัติการ Windows มาตั้งแต่ปี 1995 โดยเริ่มแรกใช้ชื่อว่า Windows Game SDK ใน Windows 95
แต่ชื่อของ DirectX เริ่มออกสู่ผู้ใช้งานในวงกว้าง และเป็นที่พูดถึงมากก็คือยุคของ DirectX 9 ในปี 2002 รองรับการใช้งานบน Windows 98, Me, 2000 และ XP ซึ่งเป็นยุคที่วงการเกมพีซีกำลังเติบโตอย่างรวดเร็ว ตัวอย่างเกมดัง ๆ ในยุคนี้ที่รองรับ DX9 ก็เช่น Assassins Creed ภาคแรก, GTA Vice City, Star Wars KOTOR, Half Life 2, CS Source เป็นต้น
จากนั้นมาก็มีการพัฒนาเวอร์ชันใหม่อยู่เรื่อย ๆ ตามเวอร์ชันของ Windows เช่น DX10 ออกมาตอน Windows Vista ตามมาด้วย DX11 ตอน Windows 7 จากนั้นก็เป็น DX12 ใน Windows 10 ซึ่งในการอัปเดตแต่ละเวอร์ชันใหญ่ก็มีการเพิ่มฟีเจอร์ใหม่ ๆ ที่ส่งผลต่อประสิทธิภาพ ความสวยงามของภาพ ความสมจริงของเสียงขึ้นมาเรื่อย ๆ ซึ่งถ้าใครที่เล่นเกมในยุคเปลี่ยนผ่านจาก DX9 มาเป็น DX10 จะเห็นความแตกต่างแบบชัดเจนมาก ตัวอย่างเช่นในภาพด้านบนเลย
โดยส่วนใหญ่แล้ว DirectX เวอร์ชันใหม่กว่า มักจะสามารถใช้เล่นเกมที่ต้องการ DX เวอร์ชันเก่ากว่าได้ แต่ก็จะมีบางกรณีที่อาจต้องหา DX เวอร์ชันเก่า ๆ มาลงเพื่อให้เล่นเกมเก่าได้ เช่น ถ้าหาเกมเก่ามากมาเล่นใน Windows 11 ตอนเปิดเกมอาจจะมีข้อความแจ้งว่าต้องใช้ DirectX 9 ซึ่งก็ต้องไปโหลดมาติดตั้งเพิ่มในเครื่องก่อน ถึงจะเล่นได้ โดยสามารถลงเสริมไปได้เลย ไม่ต้องกลัวว่าจะไปทับเวอร์ชันใหม่กว่าที่มีอยู่
อย่างไรก็ตาม DirectX คือ API ที่ได้รับการพัฒนาโดย Microsoft และผูกอยู่กับ Windows ทำให้ระบบปฏิบัติการอื่น เช่น สาย Linux ทั้งหลาย, macOS รวมถึง Android ไม่สามารถเรียกใช้ได้ ซึ่งส่งผลทั้งกับผู้บริโภคและผู้พัฒนาเกม ทำให้เกิด API ที่เป็นคู่แข่งออกมานั่นคือ OpenGL ที่เป็นมาตรฐานเปิด และมีการนำไปพัฒนาต่อ แตกออกมาเป็น API ต่าง ๆ ของแต่ละผู้ผลิต อาทิ Vulkan ของฝั่ง AMD, Metal ของ Apple ที่ใช้ในด้านภาพ ส่วนด้านเสียงก็จะมีพวก OpenAL, OpenCL เป็นต้น แต่ถ้าในแง่ของการเล่นเกมบนพีซี Windows ก็ต้องบอกว่า API หลักที่ส่งผลกับการเล่นเกมที่สุดก็คือ DirectX อยู่ดี
DirectX 12 Ultimate คืออะไร มีฟีเจอร์อะไรน่าสนใจบ้าง
ถ้าจะเทียบว่า DirectX 12 Ultimate คือ DirectX 13 ก็คงไม่ผิดนัก เนื่องจาก DX12 ตัวเต็มนั้นออกมาพร้อมกับ Windows 10 และอยู่ในระบบของ Xbox One ตั้งแต่ 2015 เป็นต้นมา จากนั้นจึงได้มีการปรับปรุง และเพิ่มฟีเจอร์ใหม่ ๆ เข้าไปหลายตัว จนกลายเป็นเวอร์ชัน Ultimate ออกมาในปี 2020 นี้เอง ทำให้เวลาไปเปิดเว็บไซต์ของผู้ผลิตการ์ดจอรุ่นใหม่ ๆ หน่อย บางแบรนด์จะมีระบุไว้เลยว่าการ์ดจอรุ่นนั้น ๆ รองรับ DirectX 12 Ultimate ด้วย
ซึ่งส่วนที่เปลี่ยนแปลงไปของ DirectX 12 Ultimate เมื่อเทียบกับ DX12 ก็คือการเพิ่มฟีเจอร์ช่วยเพิ่มคุณภาพการแสดงผลต่าง ๆ เข้าไป ให้เหมือนกับ API ใน Xbox Series X ที่ Microsoft เปิดตัวออกมาก่อน เพื่อให้ง่ายต่อการพัฒนาเกม เพราะจะทำให้ผู้พัฒนาเกมสามารถสร้างเกมขึ้นมาชุดเดียว แล้วสามารถใช้ได้ทั้งในพีซีและ Xbox เลย ไม่ต้องทำเกมแยกกันตามความสามารถของ API ที่ก่อนหน้านี้มีฟีเจอร์ไม่เท่ากันอีกต่อไป
โดยสัญลักษณ์รวมถึงการระบุว่ารองรับ DirectX 12 Ultimate จะถือเป็นการการันตีว่าการ์ดจอรุ่นนั้น ๆ สามารถใช้งานฟีเจอร์ใหม่ที่ออกแบบมาสำหรับการเล่นเกมได้อย่างเต็มที่ โดยเฉพาะด้านกราฟิกสำหรับเกมระดับ next-gen สำหรับฟีเจอร์หลักใหม่ ๆ ที่น่าสนใจใน DX12 Ultimate จะมีอยู่ 4 ข้อ ดังนี้
DirectX Raytracing 1.1 (DXR)
เป็นชุดคำสั่งที่ช่วยเพิ่มประสิทธิภาพให้กับการแสดงผล การเรนเดอร์แบบ raytracing ของ GPU ด้วยการปรับปรุงต่าง ๆ เช่น
- ทำให้ GPU สามารถเตรียมการเรนเดอร์ raytracing ได้ในตัว และเริ่มใช้งานได้ทันทีโดยไม่จำเป็นต้องรอการสื่อสารกับ CPU ก่อน
- ปรับให้ streaming engine สามารถโหลด shader สำหรับ raytracing เข้ามารอใช้งานได้ตามต้องการ เพื่อช่วยให้สามารถแสดงภาพในเกมได้เร็วขึ้น ลดปัญหาการเรนเดอร์ไม่ทันในบางจุดของภาพ
- เพิ่มเทคนิค inline raytracing ที่ช่วยให้นักพัฒนาสามารถปรับแต่งกระบวนการทำ raytracing ได้ละเอียดขึ้น
Variable Rate Shading (VRS)
คือฟีเจอร์ที่ได้รับการออกแบบมาเพื่อเพิ่มประสิทธิภาพการเรนเดอร์พื้นผิวให้ดีขึ้น ด้วยการเปิดให้ผู้พัฒนาสามารถกำหนดความสำคัญของการทำ shading พื้นผิวจุดต่าง ๆ ของภาพให้มีความแตกต่างกันได้ตามความจำเป็น เช่นในภาพจากเกมแข่งรถด้านบน ส่วนที่มีการเคลื่อนไหวตลอดเวลา มีการเปลี่ยนการแสดงผลบ่อย ๆ อย่างส่วนของพื้นสนามจุดที่มีกล่องสีเขียวอ่อนอยู่ ซึ่งเป็นจุดที่ภาพต้องเปลี่ยนตลอดเวลา เพราะมักจะเป็นจุดที่แสดงส่วนโค้งของถนน บริเวณนี้ก็จะมีการทำ shading ของพื้นผิวที่ละเอียดหน่อย ส่วนตรงจุดที่มีกล่องสีแดงจะเป็นจุดที่มีการเปลี่ยนของภาพไม่ค่อยเยอะ เพราะเป็นส่วนที่มักจะใช้แสดงแค่ภาพพื้นถนนเท่านั้น ความถี่ของการทำ shading ก็จะน้อยกว่า ช่วยให้ใช้พลังของการ์ดจอน้อยลง
อีกรูปแบบที่จะใช้ประโยชน์จากฟีเจอร์ VRS ได้มากก็เช่นเกมแนว open world ที่ผู้พัฒนาสามารถระบุความสำคัญของการทำ shading ให้แตกต่างกันได้ เช่น ส่วนของพื้นหลังไกล ๆ ส่วนที่อยู่นอกการโฟกัสของผู้เล่นก็ให้ความสำคัญน้อยหน่อย เพื่อลดพลังที่ต้องใช้ในการเรนเดอร์ ส่วนของตัวละคร หรือพื้นที่ใกล้ ๆ ตาก็เพิ่มความถี่ของการทำ shading บนวัตถุเข้าไป เพื่อให้ได้ภาพส่วนใกล้ตาที่พื้นผิวดูสวยงาม สมจริง
Mesh Shading
ช่วยเพิ่มความสามารถในการเรนเดอร์ภาพให้สามารถใช้งาน GPU ได้เต็มศักยภาพมากขึ้น โดยอาศัยการทำงานแบบ pipeline ซึ่งผลที่ได้คือ นักพัฒนาสามารถปรับแต่งความสำคัญ ความละเอียดของการเรนเดอร์วัตถุต่าง ๆ ในภาพได้คล้ายกับในฟีเจอร์ VRS ข้างต้น ถ้าจะให้เห็นภาพชัด ๆ ก็ตามในคลิปจาก NVIDIA ด้านล่างนี้เลย
จากในคลิป จะมีช่วงที่ระบายสีให้เห็นเลยว่าในการเรนเดอร์กลุ่มดาวเคราะห์น้อย มีการแบ่งระดับการคำนวณความละเอียดของการเรนเดอร์วัตถุให้แตกต่างกันตามความจำเป็น ซึ่งแต่ละระดับก็จะมีการคำนวณและประกอบกันของสามเหลี่ยมออกมาเป็นรูปที่แตกต่างกันไป วัตถุชิ้นไหนที่สำคัญมาก ก็จะใช้จำนวนของสามเหลี่ยมมาประกอบกันที่เยอะหน่อย เพื่อให้สามารถแสดงเหลี่ยมมุม และรูปร่างของพื้นผิวได้ละเอียดยิ่งขึ้น ส่วนดาวเคราะห์น้อยที่อยู่ไกล ๆ หรือมีขนาดเล็ก ก็ใช้จำนวนสามเหลี่ยมน้อยหน่อย เพื่อลดการใช้งาน GPU ลง
Sampler Feedback
แกนหลักของฟีเจอร์นี้ก็จะคล้ายกับสองข้อข้างต้นเลย คือเปิดให้นักพัฒนาสามารถจัดลำดับความสำคัญให้กับการโหลด texture เข้าสู่ GPU ได้อิสระมากขึ้น เพื่อเพิ่มประสิทธิภาพให้กับระบบ โดยให้ GPU ไม่จำเป็นต้องโหลด texture ทุกชนิดในฉากนั้นมารอไว้ก่อน แต่ให้โหลด texture แบบคุณภาพสูงมาใช้เท่าที่จำเป็นเท่านั้น รวมถึงจะมีการคาดเดาล่วงหน้าไว้ก่อน ว่าน่าจะใช้ texture ใดต่อบ้าง แล้วเตรียมโหลดมารอไว้เท่าที่จำเป็น ทำให้ได้ภาพที่สวย แต่กินแรงเครื่องน้อยลง
ซึ่งสถานการณ์ที่จะเป็นประโยชน์ก็เช่นการเล่นเกมแนว open world ขนาดใหญ่ ที่ในบางจุดอาจจะไม่จำเป็นต้องโหลด texture ระดับ hi-res มารอไว้ก็ได้ เช่น พื้นผิวด้านหลังตึก หรือของวัตถุที่อยู่ในบ้านที่ตัวละครยังไม่ได้เดินเข้าไป ไว้ถึงเวลาที่กำลังจะใช้ค่อยโหลดมารอ เช่น ขณะที่กำลังเปิดประตูบ้านอยู่ ก็ค่อยโหลด texture ของวัตถุในบ้านมาเพื่อใช้งานก็ยังทัน เป็นต้น
รวมถึงยังสามารถปรับความถี่ในการ shading พื้นผิววัตถุได้ยืดหยุ่นขึ้น เช่น ถ้าวัตถุมีพื้นผิวแวววาว การขยับมุมมองเพียงนิดเดียวก็อาจทำให้ภาพของพื้นผิววัตถุนั้นเปลี่ยนแปลงได้ ในกรณีนี้ก็จะมีความถี่ในการ shading พื้นผิวที่ถี่หน่อย ส่วนวัตถุที่ผิวด้าน แบนราบ แม้ว่าจะขยับมุมมองก็ไม่เปลี่ยนลักษณะพื้นผิวมากนัก ก็จะปรับลดความถี่การ shading ลงได้ ในระดับที่ไม่กระทบกับประสบการณ์การเล่นเกม
ฟีเจอร์ใหม่ของ DirectX 12 Ultimate จะเข้าไปช่วยเสริมกับเทคโนโลยีต่าง ๆ ของผู้ผลิตการ์ดจอให้ทำงานได้เต็มประสิทธิภาพมากขึ้น โดยเฉพาะการ์ดจอรุ่นใหม่ ๆ ร่วมกับฝั่งผู้พัฒนาเกมเองก็สามารถออกแบบเกมให้สามารถใช้งานคุณสมบัติเหล่านี้ได้ อย่างของ AMD ตามภาพด้านบน ก็มีระบุไว้เลยว่าฟีเจอร์ใดที่ได้รับการออกแบบมาให้ทำงานร่วมกันบ้าง เช่น VRS กับ FidelityFX Variable Shading เป็นต้น
การ์ดจอรุ่นไหนรองรับ DirectX 12 Ultimate บ้าง
การ์ดจอที่รองรับ DX12 Ultimate ของแต่ละค่าย ได้แก่
- NVIDIA GeForce RTX ตั้งแต่ Series 20 เป็นต้นมา
- AMD Radeon สถาปัตยกรรม RDNA 2 เป็นต้นมา (RX 6000 ขึ้นไป)
- Intel Arc A-Series ทุกรุ่น
ส่วนของระบบปฏิบัติการ ก็จะสามารถใช้ได้ตั้งแต่ Windows 10 เวอร์ชันย่อย 2004 หรือในอีกชื่อคือเวอร์ชัน 20H1 เป็นต้นมา ส่วนใน Windows 11 ก็จะติดมาพร้อมกับระบบปฏิบัติการเลย ทำให้สามารถใช้งานได้ทันทีเมื่อใช้การ์ดจอรุ่นที่รองรับ
การตรวจสอบเวอร์ชัน DirectX ใน Windows
วิธีง่ายที่สุดในการตรวจสอบเวอร์ชันของ DirectX ใน Windows ก็คือการใช้คำสั่ง dxdiag นั่นเอง ซึ่งเป็นวิธีที่ใช้กันมาอย่างยาวนาน และใช้ได้กับพีซีระบบปฏิบัติการ Windows ทุกเครื่องแน่นอน โดยมีขั้นตอนดังนี้
1) พิมพ์คำว่า dxdiag ลงในช่องค้นหา แล้วคลิกเปิดโปรแกรมขึ้นมา
2) ดูที่หัวข้อด้านล่างสุดที่จะบอกไว้เลยว่ามี DX เวอร์ชันใดติดตั้งไว้อยู่ โดยจะมีแจ้งเฉพาะเวอร์ชันล่าสุดที่ติดตั้งเท่านั้น
3) ส่วนที่แท็บ Display ก็สามารถดูข้อมูลเพิ่มได้ด้วยว่าตอนนี้เครื่องของเราเปิดใช้งาน DX 12 Ultimate อยู่หรือยัง ถ้าเปิดอยู่ ข้อความทางขวาจะแจ้งว่า Enabled แต่ตรงจุดนี้ในกรณีที่ใช้การ์ดจอรุ่นที่ไม่รองรับ หรือในโน้ตบุ๊กส่วนใหญ่ที่มีการ์ดจอแบบ iGPU ที่ติดมากับ CPU ด้วย ระบบจะแจ้งว่าปิดการใช้งาน (Disabled) DX12 Ultimate ไว้ครับ แต่ข้อมูลตรงจุดนี้อาจมีความคลาดเคลื่อนได้เหมือนกัน แม้ว่าจะใช้การ์ดจอเหนือกว่าที่กำหนดก็ตาม โดยอาจเกิดจากทั้งความผิดพลาดของ OS เองในการอ่านระดับ Feature Level ที่กำหนดไว้ว่าถ้าจะใช้ DX12 Ultimate จะต้องรองรับฟีเจอร์ที่ระดับ 12_2 ด้วย
สำหรับวิธีเช็คการรองรับ DX12 Ultimate ที่ชัวร์ที่สุด ก็คือการเช็คผ่าน Xbox Game Bar ที่มีอยู่ใน Windows รุ่นใหม่ ๆ ซึ่งสามารถเรียกขึ้นมาดูได้โดยการกดปุ่มลัด Win+G จากนั้นคลิกที่รูปเฟือง หน้า Settings จะแสดงขึ้นมา ก็ให้คลิกที่หัวข้อ Gaming Features ซึ่งในนั้นจะมีบอกไว้เลยว่าเครื่องของเราพร้อมใช้งาน DX12 Ultimate หรือไม่ โดยวิธีนี้เป็นวิธีที่ Microsoft แจ้งไว้ว่าเป็นการตรวจสอบ DX12 Ultimate ได้แม่นยำกว่า dxdiag มาก เนื่องจากเป็นส่วนที่ได้รับการออกแบบให้ทำงานร่วมกับ DX12 Ultimate โดยตรง
จะดาวน์โหลด DX12 Ultimate มาลงได้ยังไง?
โดยปกติแล้ว ในกรณีที่ใช้งาน Windows รุ่นใหม่ ๆ และมีการอัปเดตอยู่สม่ำเสมอ ระบบจะดาวน์โหลด DirectX เวอร์ชันล่าสุดที่เหมาะสมมาติดตั้งให้อยู่แล้ว จึงแทบไม่จำเป็นต้องไปหาโหลดเองเลย หรือในกรณีที่จำเป็นเช่น หากเครื่องยังใช้ Windows รุ่นเก่า ๆ อยู่ หน้าเว็บของ Microsoft เองก็มีช่องทางให้ดาวน์โหลดไฟล์ติดตั้ง DirectX มาใช้อยู่เหมือนกัน โดยจะเป็นไฟล์แบบ web installer ที่ออกแบบมาสำหรับตั้งแต่ Windows 7 ลงไป และในระหว่างที่ติดตั้ง จำเป็นจะต้องต่ออินเตอร์เน็ตด้วย สามารถเข้าไปดาวน์โหลดได้จากลิงค์นี้ หรือในกรณีเครื่องที่จะติดตั้งไม่สะดวกในการต่ออินเตอร์เน็ต อาจจะใช้การโหลดไฟล์นี้จากเว็บ Microsoft ที่เป็นไฟล์ติดตั้งแบบ offline installer ไปใช้ก็ได้เช่นกัน แต่ทางที่ดี ควรใช้แบบแรกเพื่อเปิดให้ระบบทำการตรวจสอบหาเวอร์ชันของ DirectX ล่าสุดที่เหมาะสมที่สุดจะดีกว่า