ให้หน้ามัน: DirectX 11 และ OpenGL เริ่มเก่าไปหน่อย DirectX 11 เปิดตัวพร้อมกับ Windows 7 ในปี 2009 และ OpenGL 4.0 ได้ติดตามอีกหนึ่งปีต่อมา ในช่วงหลายปีที่ผ่านมาเทคโนโลยีซอฟต์แวร์เหล่านี้เก่าแก่และฮาร์ดแวร์ที่ใช้งานอยู่ในปัจจุบันนั้นไม่ได้อยู่บนกระดานวาดภาพเมื่อกราฟิก API เหล่านี้เปิดตัว เมื่อพิจารณาจากการปลดการเชื่อมต่อที่ชัดเจนนี้อุตสาหกรรมทำอะไรเพื่อให้ได้เวลา เราจะดูที่อนาคตอันใกล้และดู แต่ก่อนอื่นเรามาเริ่มอธิบายว่า API คืออะไรและฟังก์ชั่นอะไรที่มันทำหน้าที่เล่นเกม
API คืออะไร
API หรือ อินเตอร์เฟสการเขียนโปรแกรมประยุกต์ คือชุดของโปรโตคอลและเครื่องมือที่ใช้ในการสร้างซอฟต์แวร์ Graphics API's เป็นเพียง API เฉพาะที่สร้างขึ้นเพื่อสร้างกราฟิก 3 มิติได้ง่ายขึ้น Graphics API ทำให้การสร้างภาพ 3 มิติง่ายขึ้น แต่พวกเขายังช่วยให้คุณบอก API ให้ทำบางสิ่ง (เช่นวาดสี่เหลี่ยม) และให้ API สื่อสารกับฮาร์ดแวร์เกี่ยวกับการทำงานให้เสร็จ นี่คือเหตุผลหลักว่าทำไม GPU ที่แตกต่างกันมากกับฮาร์ดแวร์พิเศษจึงสามารถเล่นเกมเดียวกันได้ หากไม่มี API อยู่แล้วเกมเดียวกันจะต้องเขียนด้วยวิธีที่แตกต่างกันในการสื่อสารกับฮาร์ดแวร์แต่ละชุด สิ่งนี้จะ จำกัด ผู้ผลิตฮาร์ดแวร์อย่างรุนแรงและจะเพิ่มค่าใช้จ่ายในการสร้างเกมอย่างมากซึ่งเป็นต้นทุนที่จะถูกส่งต่อไปยังผู้บริโภคปลายทางในที่สุด
เพื่อให้คำอธิบายข้างต้นเข้าใจง่ายขึ้นเล็กน้อยฉันจะใช้การเปรียบเทียบ: คิดว่า API เป็นผู้จัดการสถานที่ก่อสร้าง งานของเขาหรือเธอคือการนำความคิดของสถาปนิกและทำลายมันกำหนดเวลาที่ทีมงานจะต้องอยู่ที่ไหนและเมื่อใดและเพื่อให้แน่ใจว่าทุกคนอยู่ในหน้าเดียวกันกับสิ่งที่ต้องทำให้เสร็จ
กราฟิก API ที่ใช้ในปัจจุบัน
ตอนนี้เราเข้าใจงานกราฟิก API มาดูรายละเอียดผู้เล่นตัวจริงในปัจจุบัน ผู้เล่นหลักในตลาดวันนี้คือ DirectX ของ Microsoft ซึ่งเปิดตัวมาตั้งแต่ปี 1995 มันได้รับการปรับปรุงหลายครั้งตั้งแต่เปิดตัวและรวมอยู่ในระบบปฏิบัติการ Windows ของ Microsoft DirectX เป็น API กราฟิกเดียวที่สวยมากสำหรับทุกเกมที่วางจำหน่ายบนพีซี ในความเป็นจริงมันเป็นเรื่องธรรมดามากที่มันเป็นมาตรฐานสำหรับเกมพีซีในปัจจุบัน DirectX เป็นเอกสิทธิ์สำหรับผลิตภัณฑ์ Windows และ Microsoft ซึ่งเป็นระบบปิด ในบรรทัดถัดไปคือ OpenGL ซึ่งเป็นโอเพนซอร์สกราฟิกหลัก API เดียว OpenGL เปิดตัวในปี 1992 และเป็นหลายแพลตฟอร์มซึ่งหมายความว่ามันทำงานได้กับระบบปฏิบัติการหลายระบบรวมถึง Windows, Linux และ Mac OS ในที่สุดเรามี API กราฟิกใหม่ล่าสุด, Mantle Mantle ได้รับการพัฒนาในปี 2013 ผ่านความร่วมมือระหว่าง AMD และ Dice Mantle พร้อมใช้งานบน Windows และสำหรับ AMD GPU เท่านั้น
แหล่งที่มาของภาพ; เครดิตภาพ: Intel
DirectX 12
DirectX 12 นั้นจะเปิดตัวพร้อมกับ Windows 10 ในฤดูใบไม้ร่วงนี้และมีการปรับปรุงใหม่มากมาย หนึ่งในการปรับปรุงครั้งใหญ่คือการรองรับหลายเธรดที่ดียิ่งขึ้น มีการทำงานมากกว่านี้ในหลายคอร์บน CPU เพื่อให้การใช้งาน CPU ดีขึ้นและมีประสิทธิภาพมากขึ้น หลายครั้งที่ DirectX 11 จะมีซีพียูเพียงแกนเดียวเท่านั้นที่ขยายออกจนสุดในขณะที่คอร์อื่น ๆ DirectX 12 สัญญาว่าจะกระจายภาระงานนี้บนคอร์ของ CPU ให้มากยิ่งขึ้นทำให้เกมมีพลังของ CPU มากขึ้นในการทำงาน การปรับปรุงครั้งใหญ่ครั้งต่อไปที่ DirectX 12 ให้สัญญาไว้คือความสามารถในการจัดการการโทรที่ดึงดูดอีกจำนวนมาก การดึงสายเกิดขึ้นได้ทุกเวลาที่เครื่องมือเกมต้องการวาดบางอย่างบนหน้าจอ ความต้องการของการดึงการเรียกจำนวนมากโดยทั่วไปจะเรียกเก็บภาษีมากใน CPU DirectX 12 น่าจะสามารถรองรับการโทรได้มากถึง 600, 000 ครั้ง เมื่อต้องการวางสิ่งนี้ในมุมมอง DirectX 9 สามารถจัดการสายการโทรได้เพียง 6, 000 สายเท่านั้นหรือ 1/100 ในสิ่งที่ DirectX 12 จะสามารถทำได้
เป็นเวลาหลายปีที่ใช้ GPU หลายตัวในโหมด SLI / Crossfire นั้นเป็นไปได้ อย่างไรก็ตามหนึ่งในข้อ จำกัด ที่สำคัญคือ VRAM ที่สร้างไว้ในการ์ดไม่ได้เรียงซ้อนกันเพื่อสร้างพูลขนาดใหญ่ที่ต่อเนื่อง ตัวอย่างเช่นหากคุณมี GPU สองตัวต่อ VRAM 2GB คุณยังคงมีเพียง VRAM 2GB เท่านั้นเพราะการ์ดแต่ละใบจะต้องมีข้อมูลที่เก็บไว้ในนั้น DirectX 12 หวังที่จะแก้ปัญหานี้โดยใช้ AFR หรือการแสดงเฟรมสำรอง แทนที่จะแสดง GPU แต่ละส่วนในแต่ละเฟรมตอนนี้ GPU จะแสดงหนึ่งเฟรมต่อเฟรมแทน สิ่งนี้จะช่วยให้ VRAM ในแต่ละการ์ดสามารถใช้งานได้อย่างอิสระและหวังว่าจะช่วยให้การ์ดที่มี VRAM จำนวนน้อยสามารถเล่นเกมได้ดีขึ้นในขณะที่นานขึ้น ควรจะมีคุณสมบัติใหม่อื่น ๆ อีกมากมายรวมอยู่ใน DirectX 12 เพื่อผลักดันกราฟิกเกมมากขึ้นกว่าเดิม อย่างไรก็ตามไมโครซอฟท์ยังคงมีความลับอยู่บ้างเกี่ยวกับคุณสมบัติใหม่เหล่านี้ เราหวังว่าจะทราบข้อมูลเพิ่มเติมเกี่ยวกับพวกเขาในเร็ว ๆ นี้เมื่อการเปิดตัว API ใกล้เข้ามามากขึ้น
แหล่งที่มาของภาพ; เครดิตรูปภาพ: nVidia GeForce
Vulkan
ไม่มีความรู้เกี่ยวกับ Vulkan มากเท่าที่มีเกี่ยวกับ DirectX 12 ตามที่เพิ่งประกาศใน GDC 2015 สิ่งที่เรารู้คือผู้สร้าง OpenGL กลุ่ม Khronos ได้ลดชื่อ glNext ลงใน Vulkan Vulkan ดูเหมือนว่าจะได้มาจากเสื้อคลุมซึ่งฉันได้กล่าวถึงก่อนหน้าในบทความ นอกจากนี้ดูเหมือนว่า AMD กำลังนำส่วนที่ดีที่สุดของ Mantle มาไว้ในตารางสำหรับ Vulkan ด้วยความร่วมมือกับ Khronos Group Vulkan นั้นน่าจะมีข้อได้เปรียบมากมายของ DirectX 12 แต่มันไม่ได้เชื่อมโยงกับแพลตฟอร์มเดียวเช่น Windows จะสามารถใช้งานได้บนหลาย ๆ แพลตฟอร์มรวมถึง Linux และแม้แต่อุปกรณ์มือถือ ไดรเวอร์ Vulkan สำหรับทั้ง Windows และ Linux จะเป็นโอเพ่นซอร์สแบบสมบูรณ์ซึ่งแตกต่างจาก DirectX Vulkan จะปรับปรุงการทำงานแบบมัลติเธรดดังนั้นจึงใช้ประโยชน์จากพลังงาน CPU ได้ดีขึ้นมากในปัจจุบันโดยการกระจายภาระงานในคอร์หลายคอร์ ดังที่ได้กล่าวไว้ก่อนหน้านี้การลดการโหลดบน CPU จะช่วยให้ GPU ของไม่ได้รับการคอขวดได้อย่างง่ายดายเหมือนตอนนี้ สิ่งนี้จะช่วยเพิ่มอัตราเฟรมค่อนข้างมากระหว่างการเล่นเกม Source 2 ซึ่งเพิ่งได้รับการประกาศโดย Valve จะเป็นเอ็นจิ้นเกมใหม่ตัวแรกที่รองรับ Vulkan ได้อย่างเต็มที่แม้ว่าฉันจะแน่ใจว่าจะมีอีกหลายประกาศในอนาคตอันใกล้นี้ Dota 2 เป็นเกมที่รู้กันดีว่าใช้ CPU มากแสดงว่าทำงานใน Source 2 ด้วย Vulkan API ใหม่โดยใช้กราฟิกรวมของ Intel บนซีพียู นี่คือสิ่งที่แน่นอนว่าจะไม่เป็นที่ต้องการภายใต้ DirectX 11 แต่ด้วย Vulkan เกมดูเหมือนจะรักษาอัตราเฟรมที่เหมาะสมตลอด Dan Baker ซึ่งเป็นผู้พัฒนาเกม Oxide ถึงกับพูดได้ว่า“ จนกว่าผู้ผลิต GPU จะทำหน้าที่ร่วมกันและทำให้ GPU เร็วขึ้นกว่าที่เรามีอยู่สิบเท่าในตอนนี้ นี่เป็นข่าวดีสำหรับคนที่ใช้ซีพียูที่ช้ากว่าหรือผู้ที่มีแรงม้า GPU มากในขณะนี้เพราะมันจะหมายถึงประสิทธิภาพที่ดีกว่ามากที่สามารถทำได้บนฮาร์ดแวร์ชุดเดียวกัน
แหล่งที่มาของภาพ; เครดิตรูปภาพ: Khronos
สิ่งนี้หมายความว่าสำหรับอนาคตของการเล่นเกม?
ในขณะนี้พลังของ GPU เพิ่มขึ้นในอัตราที่เร็วกว่าพลังของ CPU เมื่อห้าปีที่แล้ว Intel ยังระบุด้วยว่า GPU บางตัวนั้นเร็วกว่าซีพียูของตัวเองถึง 14 เท่า การทดสอบเหล่านั้นทำโดยใช้ nVidia GTX 280 เทียบกับ i7 960 Intel CPU - ตอนนี้ถือว่าเป็นฮาร์ดแวร์ที่ค่อนข้างล้าสมัย ช่องว่างระหว่าง nVidia GTX Titan X (หรือแม้แต่ nVidia GTX 980) และโรงไฟฟ้าซีพียูหลักในปัจจุบัน - Intel i7-4790k CPU - ควรมีขนาดใหญ่กว่ามาก ประเด็นที่ฉันพยายามทำคือการที่เราเริ่มเห็นเกมมากขึ้นเรื่อย ๆ ที่มีประสิทธิภาพเพราะ CPU ถามทุกคนที่มีอัตราการรีเฟรชที่สูงว่ามันยากที่จะรักษา 100 + fps ด้วย CPU ปัจจุบันในบางเกม พูดตรงไปตรงมามันจะยากขึ้นหากไม่มี API ใหม่เหล่านี้และความสามารถในการใช้พลังงาน CPU ได้อย่างมีประสิทธิภาพยิ่งขึ้น การแนะนำ API ใหม่นี้อาจหมายถึงการเพิ่มประสิทธิภาพอย่างมากสำหรับคนส่วนใหญ่ นอกจากนี้ยังช่วยให้นักพัฒนาซอฟต์แวร์สามารถสร้างเกมที่ใช้ซีพียูได้มากกว่าที่เรามีอยู่ในตอนนี้ ตัวอย่างเช่นลองนึกภาพเกมอย่าง Assasins Creed ที่มี NPC หลายพันรายการบนหน้าจอในคราวเดียวทั้งหมดมีปฏิสัมพันธ์กับคนอื่นและตัวละครของคุณขณะที่คุณท่องไปในเมือง หรือเกมอย่าง Star Citizen ที่คุณต้องการซีพียูที่แข็งแกร่งมาก ๆ เพื่อให้ได้อัตราเฟรมที่เสถียรและเป็นที่ยอมรับในอนาคตอันใกล้นี้อาจต้องใช้ CPU โดยเฉลี่ยที่ดีที่สุดและ GPU ที่แข็งแกร่งเพื่อให้ได้ 60fps ที่มั่นคง
ในที่สุดนี่เป็นเวลาที่น่าตื่นเต้นมากที่ได้เป็นนักเล่นเกม เมื่อกราฟิค API ใหม่เหล่านี้ได้รับการเผยแพร่เราก็อาจจะเห็นการกระโดดครั้งใหญ่ที่สุดของเทคโนโลยีเกมในเวลานาน เราแค่หวังว่า API เหล่านี้จะสามารถใช้งานได้จริงตามที่พวกเขาสร้างขึ้นมาเพื่อตนเอง
