การเล่นเกมบนคอมพิวเตอร์ เบื้องหลังการทำงานของมันจะอาศัยสิ่งที่เรียกว่า "DirectX" ด้วย โดยมันมีบทบาทสำคัญที่สามารถส่งผลกระทบประสิทธิภาพในการทำงานของตัวเกม ซึ่งปัจจุบันมีถึง DirectX 12 คำถามคือ แล้ว DirectX 12 ที่เป็นเวอร์ชันล่าสุดนั้น เป็นตัวเลือกที่ดีที่สุดหรือเปล่า ? มาเปรียบเทียบ ความแตกต่างระหว่าง DirectX 11 และ DirectX 12 กันสักหน่อย เพื่อหาว่าตัวเลือกไหนที่เล่นเกมได้ดีที่สุดกัน
DirectX เป็นชุดข้อมูลของ APIs (Application Programming Interfaces) ที่พัฒนาขึ้นมาโดย Microsoft มันเป็นส่วนหนึ่งของระบบปฏิบัติการ Windows ภายในนั้นจะมี APIs อยู่หลายประเภท ทั้ง Direct3D, DirectPlay, DirectSound, DirectDraw และอื่น ๆ ที่เกี่ยวข้องกับการช่วยให้ตัวเกมสามารถทำงานได้ ทาง Microsoft สร้าง DirectX ขึ้นมาเพื่อช่วยให้ผู้พัฒนาทำงานได้ง่ายขึ้น สามารถพัฒนาตัวเกมให้รองรับฮาร์ดแวร์ (Hardware) ที่มีความแตกต่างอันหลากหลาย ซึ่งเป็นธรรมชาติของคอมพิวเตอร์ที่ใช้ ระบบปฏิบัติการ Windows
โดยแทนที่ผู้พัฒนาจะต้องเป็นคนเตรียม ไดร์เวอร์ (Driver) ให้เกมสามารถสื่อสารกับ หน่วยประมวลผลกราฟิก (GPU) และการ์ดเสียง (Sound Card) เพื่อสร้างภาพ และเสียง ที่มีอยู่หลายรุ่นหลากยี่ห้อ ด้วย DirectX ทางผู้พัฒนาแค่ต้องทำให้เกมรองรับกับ DirectX ได้ก็พอ จากนั้น DirectX จะทำหน้าที่เป็นตัวกลางสื่อสารกับฮาร์ดแวร์ให้แทน
การกำหนดมาตรฐานสื่อสารระหว่าง ซอฟต์แวร์ (Software) กับฮาร์ดแวร์เป็นกุญแจสำคัญที่ทำให้เกมคอมพิวเตอร์ได้รับความนิยมเป็นอย่างมากในช่วงกว่ายี่สิบปีที่ผ่านมานี้ แม้จะมี APIs สำหรับเกมตัวอื่น อย่างเช่น Vulkan หรือ OpenGL แต่แทบทุกเกมก็จะใช้งาน หรือรองรับ DirectX กันเป็นหลัก
ข้อมูลเพิ่มเติม : DirectX คืออะไร ? และ DirectX เวอร์ชันไหน ที่ใช้กับ Windows ของเราได้ ?
DirectX 12 มันก็พัฒนาขึ้นมาต่อเนื่องจาก DirectX 11 มันจึงเหมือนจะไม่ได้แตกต่างกันมากนัก แต่ถ้าจะถามหาคำตอบว่ามันแตกต่างที่สำคัญบ้างไหม ? ก็คงจะเป็นเรื่อง "ระดับ" ในการสื่อสารระหว่างตัวมันเองกับฮาร์ดแวร์
โดยตัว DirecX 12 จะเป็น APIs แบบ Low-level ที่ตัวซอฟต์แวร์จะทำงานในระดับชั้นที่มีความใกล้ชิดกับฮาร์ดแวร์มากขึ้น นั่นหมายความว่า มันสามารถควบคุมฮาร์ดแวร์ เช่น GPU ด้วยประสิทธิภาพที่ดียิ่งกว่าเดิม สามารถรีดทรัพยากรของฮาร์ดแวร์ได้มากกว่าเดิม และใช้งานมันได้อย่างคุ้มค่ายิ่งขึ้น ส่งผลช่วยให้เรนเดอร์ภาพในเกมได้ดีกว่าเดิม ในขณะที่ DirectX 11 เป็น APIs แบบ High-level แม้มันจะเชื่อมต่อการสื่อสารกับ GPU และฮาร์ดแวร์อื่น ๆ เหมือนกัน แต่การควบคุมก็จะเป็นการปรับให้มีความเหมาะสมในระดับทั่วไปเท่านั้น
อย่างไรก็ตาม การที่ Directx 12 ทำงานที่ Low-level นั้นก็ทำให้การปรับแต่งตัวเกมยากขึ้น ต้องใช้เวลานานมากกว่าเดิมในการพัฒนา นั่นเป็นเหตุผลว่า ทั้งที่ DirectX 12 เปิดตัวอย่างเป็นทางการมาตั้งแต่ ค.ศ. 2015 (พ.ศ. 2559) ถึงปัจจุบันนี้ ก็ผ่านมาหลายปีแล้ว แต่เกมส่วนใหญ่ยังคงนิยมพัฒนาให้รองรับ DirectX 11 เป็นหลัก เพราะว่าพัฒนาได้ง่ายกว่า
บางเกมจะมีให้ผู้เล่นเลือกได้ว่าจะเล่นด้วย DirectX เวอร์ชันไหน ในภาพคือเกม Icarus
ภาพจาก : https://www.howtogeek.com/880224/directx-11-vs-directx-12-which-is-better-for-gaming/
จุดแตกต่างที่สองคือ การใช้งาน คอร์ (Core) ของ CPU ที่ผ่าน ผู้เล่นเกมไม่จำเป็นต้องให้ความสำคัญกับจำนวนคอร์มากนัก เพราะนักพัฒนาเกมส่วนใหญ่มักจะพัฒนาเกมให้ทำงานที่ไม่เกิน 4 คอร์ เนื่องจากหากเรียกใช้งานมากกว่านี้ การพัฒนาให้ใช้คอร์ได้อย่างมีประสิทธิภาพจะเป็นเรื่องยากขึ้นกว่าเดิมมาก แต่ทาง Microsoft ได้แก้ไขปัญหานี้ใน DirectX 12 ด้วยการเพิ่ม API สำหรับจัดการ Multi-core Processing เข้ามา ที่ช่วยให้เกมที่รองรับ เกมจะมีประสิทธิภาพสูงขึ้นตามจำนวนคอร์ของ หน่วยประมวลผลกลาง (CPU) ด้วย
การรองรับหลายคอร์ ส่งผลให้มีอีกลูกเล่นหนึ่งเพิ่มเข้ามาใน DirectX 12 ด้วย โดยเรียกว่า Parallel Compute (การคำนวณแบบคู่ขนาน) ใน DirectX 11 การคำนวณจะเป็นแบบ Linear (เชิงเส้น) คือคำนวณทีละคำสั่งเป็นเส้นตรง ต่อคิวกันไปเรื่อย ๆ เช่น คำนวณ Texture compression เสร็จแล้วก็ คำนวณ Physics simulation ต่อ จากนั้นก็ประมวลผลเงาผ่าน Shadow generation ต่อ ฯลฯ ซึ่ง CPU ก็จะรับข้อมูลแบบต่อเนื่องไปทีละงาน แต่ใน DirectX 12 มันจะกระจายงานออกไปทุกคอร์เพื่อรวมพลังกันทำงานได้ ส่งผลให้ประสิทธิภาพในการเล่นเกมดีขึ้นกว่าเดิมมาก
ใน DirectX 12 ยังมีการนำเทคโนโลยี Asynchronous Compute มาใช้ด้วย มันทำให้การประมวลผลคำสั่งสามารถดำเนินการได้เลยทันที โดยไม่ต้องรอให้คำสั่งก่อนหน้าเสร็จก่อน ตัวอย่างเช่น กระบวนการเรนเดอร์เงาภายในเกมจะสามารถเริ่มเรนเดอร์ได้เลย โดยไม่ต้องรอให้พื้นผิวเรนเดอร์เสร็จก่อน
จากทั้งหมดที่ว่ามานี้ สรุปง่าย ๆ คือ DirectX 12 ทำให้ซอฟต์แวร์เกมสื่อสารกับฮาร์ดแวร์ของคอมพิวเตอร์ได้มีประสิทธิภาพมากขึ้นกว่าเดิม เกมเลยเรนเดอร์ได้ดีขึ้นกว่าเดิมนั่นเอง
ตามหลักทฤษฏีแล้ว ประสิทธิภาพของเกมจะสูงขึ้นเมื่อใช้งาน DirectX 12 เพราะอย่างที่เราได้อธิบายไปในหัวข้อที่แล้ว ว่ามันได้ปรับปรุงการทำงานร่วมกับฮาร์ดแวร์ให้ดีกว่าที่ DirectX 11 สามารถทำได้
อย่างไรก็ตาม ไม่ใช่ทุกเกมที่ใช้ DirectX 12 จะมีประสิทธิภาพสูงขึ้นเสมอไป เพราะถึงจะพัฒนาด้วย DirectX 12 แต่ถ้าผู้พัฒนาเกม ไม่ได้ปรับแต่งด้วยเครื่องมือระดับ Low-level ที่มีใน DirectX 12 ให้ด้วย มันก็ไม่ได้แตกต่างจากการใช้ DirectX 11 มากนัก
แต่สำหรับเกมที่มีการปรับมาให้ก็จะส่งผลอย่างชัดเจน ทาง NVIDA ผู้ผลิตการ์ดจอชื่อดังได้แนะนำว่า การใช้ DirectX 12 ร่วมกับการ์ดจอ RTX 3090 จะสามารถเพิ่มเฟรมเรตของเกมให้สูงขึ้นได้ อย่าง Assassins Creed Valhalla จะเฟรมเรตสูงขึ้น 24%, Cyberpunk 2077 สูงขึ้น 20% แต่บางเกมอย่าง Far Cry 6 และ The Division 2 จะสูงขึ้นเพียง 5% เท่านั้น
DirectX 12 ยังรองรับคุณสมบัติหลายอย่างที่มีอยู่ในการ์ดจอรุ่นใหม่ ๆ อย่างเช่น เทคโนโลยี Ray Tracing และ Variable Rate Shading (VRS) หากเกม และการ์ดจอของคุณรองรับเอฟเฟคดังกล่าว การใช้ DirectX 12 จะช่วยให้การแสดงผลในเกมของคุณสวยงามยิ่งกว่าเดิมอย่างแน่นอน
นอกจาก DirectX 12 แล้ว อันที่จริงมันยังมี DirectX 12 Ultimate อีกด้วย โดยมันเปิดตัวในปี ค.ศ. 2020 (พ.ศ. 2563) มันเป็นการรวม APIs Libray เกมของระบบปฏิบัติการ Windows และเครื่องเกม Xbox เข้าไว้ด้วยกัน และเพิ่มคุณสมบัติการทำงานใหม่ ๆ เข้าไปด้วย เช่น DirectX Raytracing และ Mesh Shading
อย่างไรก็ตาม เฉพาะการ์ดจอรุ่นใหม่ ๆ เท่านั้น ที่รองรับ DirectX 12 Ultimate อย่างทางฝั่ง NVIDIA ก็จะต้องเป็นซีรีส์ RTX 20, 30 และ 40 ส่วน AMD ก็อย่างเช่น AMD's Radeon RX 6800 Series และ RX 6900 XT
อันที่จริง ผู้เล่นอย่างพวกเราก็ไม่ค่อยมีสิทธิ์เลือกหรอก ว่าอยากจะใช้ DirectX 11 หรือ DirectX 12 เพราะในความเป็นจริง เกมที่ทำตัวเลือกมาให้ก็มีน้อยมาก และแม้แต่เกมที่รองรับ DirectX 12 เอง ก็มักจะตั้งค่าเริ่มต้นให้ใช้งาน DirectX 11 เอาไว้ แล้วผู้ใช้ต้องเข้าไปในการตั้งค่า (Settings) หรือการเลือกออปชั่น (Options) ของเกมเพื่อปรับค่าเอาเอง
เหตุผลก็มาจาก DirectX 11 นั้นรองรับกับฮาร์ดแวร์รุ่นเก่าได้ดีกว่า สรุป ถ้าเลือกได้ก็ให้เลือก DirectX 12 เอาไว้ก่อน แล้วถ้าเล่นไปแล้วประสบปัญหาก็ค่อยปรับเป็น DirectX 11
|
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ |