กลับไปหน้าบทความ

อ่าน 21 นาที

ไดเร็กต์เอ็กซ์

Microsoft DirectXคือชุดของอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) สำหรับจัดการงานที่เกี่ยวข้องกับมัลติมีเดียโดยเฉพาะอย่างยิ่งการเขียนโปรแกรมเกมและวิดีโอ บน แพลตฟอร์ม ของ...

ไดเร็กต์เอ็กซ์

ไดเร็กต์เอ็กซ์
นักพัฒนาไมโครซอฟต์
ปล่อย30 กันยายน 2538 ( 30 กันยายน 1995 )
เวอร์ชันเสถียร
12. API ขั้นสุดยอด / 5 ตุลาคม 2021 ( 5 ตุลาคม 2021 )
ระบบปฏิบัติการMicrosoft Windows , Windows Mobile , Windows Phone , Dreamcast , [ 1 ] Xbox , Xbox 360 , Xbox One , Xbox Series X และ Series S , Linux (Gallium Nine) (เฉพาะ DirectX 12 เท่านั้น, เฉพาะสำหรับWindows Subsystem for Linux ) [ 2 ]
พิมพ์API
เว็บไซต์www.microsoft.com/en-us/download/details.aspx?id=35 แก้ไขข้อมูลนี้บนวิกิดาต้า
ที่เก็บข้อมูล
  • github.com/microsoft/DirectX-Headers

Microsoft DirectXคือชุดของอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) สำหรับจัดการงานที่เกี่ยวข้องกับมัลติมีเดียโดยเฉพาะอย่างยิ่งการเขียนโปรแกรมเกมและวิดีโอ บน แพลตฟอร์ม ของ Microsoftเดิมที ชื่อของ API เหล่านี้ทั้งหมดเริ่มต้นด้วย "Direct" เช่นDirect3D , DirectDraw , DirectMusic , DirectPlay , DirectSoundและอื่นๆ ชื่อDirectXถูกตั้งขึ้นเป็นคำย่อสำหรับ API เหล่านี้ทั้งหมด (โดยที่X แทนชื่อ API เฉพาะ) และในไม่ช้าก็กลายเป็นชื่อของชุด เมื่อ Microsoft เริ่มพัฒนาเครื่องเล่นเกมคอนโซลในภายหลัง X ถูกนำมาใช้เป็นพื้นฐานของชื่อXboxเพื่อบ่งชี้ว่าคอนโซลนั้นใช้เทคโนโลยี DirectX [ 3 ] ตัวอักษร X ได้ถูกนำไปใช้ในการตั้งชื่อ API ที่ออกแบบมาสำหรับ Xbox เช่นXInputและCross-platform Audio Creation Tool (XACT) ในขณะ ที่ รูปแบบ DirectX ยังคงดำเนินต่อไปสำหรับ API ของ Windows เช่นDirect2DและDirectWrite

Direct3D (API กราฟิก 3 มิติภายใน DirectX) ถูกใช้งานอย่างแพร่หลายในการพัฒนาวิดีโอเกมสำหรับMicrosoft Windowsและเครื่องเล่นเกมตระกูลXbox นอกจากนี้ Direct3D ยังถูกใช้โดยแอปพลิเคชัน ซอฟต์แวร์ อื่นๆ สำหรับงานด้านการแสดงภาพและกราฟิก เช่น งานวิศวกรรม CAD/CAM เนื่องจาก Direct3D เป็นส่วนประกอบของ DirectX ที่ได้รับการเผยแพร่อย่างกว้างขวางที่สุด จึงมักเห็นการใช้ชื่อ "DirectX" และ "Direct3D" สลับกันไปมา

ชุดพัฒนาซอฟต์แวร์ DirectX (SDK) ประกอบด้วยไลบรารีรันไทม์ในรูปแบบไบนารีที่แจกจ่ายได้ พร้อมด้วยเอกสารประกอบและส่วนหัวสำหรับใช้ในการเขียนโค้ด เดิมที รันไทม์จะถูกติดตั้งโดยเกมหรือโดยผู้ใช้โดยตรงเท่านั้นWindows 95ไม่ได้เปิดตัวพร้อมกับ DirectX แต่ DirectX ถูกรวมอยู่ใน Windows 95 OEM Service Release 2 [ 4 ] Windows 98และWindows NT 4.0มาพร้อมกับ DirectX เช่นเดียวกับ Windows ทุกเวอร์ชันที่วางจำหน่ายหลังจากนั้น SDK สามารถดาวน์โหลดได้ฟรี แม้ว่ารันไทม์จะเป็นซอฟต์แวร์กรรมสิทธิ์แบบปิด แต่ก็มีซอร์สโค้ดให้สำหรับตัวอย่าง SDK ส่วนใหญ่ เริ่มตั้งแต่การเปิดตัว Windows 8 Developer Preview SDK ของ DirectX ได้ถูกรวมเข้ากับ Windows SDK แล้ว[ 5 ]

ประวัติการพัฒนา

ในช่วงปลายปี 1994 ไมโครซอฟต์พร้อมที่จะวางจำหน่ายWindows 95 ซึ่งเป็น ระบบปฏิบัติการรุ่นต่อไป ปัจจัยสำคัญที่ส่งผลต่อคุณค่าของระบบปฏิบัติการนี้สำหรับผู้บริโภคคือโปรแกรมต่างๆ ที่สามารถทำงานบนระบบนี้ได้อเล็กซ์ เซนต์ จอห์ น พนักงานของไมโครซอฟต์ ได้พูดคุยกับนักพัฒนาเกมหลายรายเกี่ยวกับความเป็นไปได้ที่พวกเขาจะนำ เกม MS-DOS ของพวกเขามา ลงใน Windows 95 และพบว่าคำตอบส่วนใหญ่เป็นไปในเชิงลบ เนื่องจากโปรแกรมเมอร์พบว่าสภาพแวดล้อมของ Windows ไม่ได้มีคุณสมบัติที่จำเป็นซึ่งมีอยู่ใน MS-DOS โดยใช้ รูทีน BIOSหรือการเข้าถึงฮาร์ดแวร์โดยตรง[ 6 ]นอกจากนี้ยังมีความกังวลอย่างมากเกี่ยวกับความเข้ากันได้ กรณีที่โดดเด่นคือเกมAnimated Storybook: The Lion King ของดิสนีย์ซึ่งใช้พื้นฐานจากอินเทอร์เฟซการเขียนโปรแกรมWinG [ 7 ]เนื่องจากไดรเวอร์กราฟิกที่ไม่เข้ากันจำนวนมากจาก คอมพิวเตอร์ Compaq รุ่นใหม่ ที่ไม่ได้ทดสอบกับอินเทอร์เฟซ WinG ที่มาพร้อมกับเกม ทำให้เกมล่มบ่อยครั้งบนระบบเดสก์ท็อปหลายระบบ จนผู้ปกครองจำนวนมากโทรไปที่สายด่วนช่วยเหลือของดิสนีย์[ 8 ] [ 9 ]

พนักงานของ Microsoft อีกคนหนึ่งคือ Craig Eisler ได้เข้าร่วมทีมมัลติมีเดียของ Windows 95 เพื่อทำงานเกี่ยวกับเทคโนโลยีเกม[ 10 ]เมื่อได้ยินจาก St. John ว่าเทคโนโลยีที่ Microsoft มีอยู่นั้นไม่ได้รับความนิยมจากนักพัฒนา Eisler จึงเริ่มสร้างชุด API ใหม่และโมเดลไดรเวอร์ที่จะช่วยให้นักพัฒนาสามารถเข้าถึงความสามารถดั้งเดิมของฮาร์ดแวร์กราฟิก และให้บริษัทฮาร์ดแวร์กราฟิกสามารถสร้างนวัตกรรมในรูปแบบที่นักพัฒนาสามารถนำไปใช้ได้[ 11 ]เนื่องจากต้องการการสนับสนุนด้านการจัดการโครงการ Eisler จึงชักชวนEric Engstrom มา ร่วมทีม และทั้งคู่ได้รับสิทธิบัตร 11 ฉบับสำหรับงาน DirectX ของพวกเขา[ 12 ]โครงการนี้มีชื่อรหัสว่าโครงการแมนฮัตตัน เช่นเดียวกับโครงการในสงครามโลกครั้งที่สองที่มีชื่อเดียวกันและแนวคิดคือการแทนที่เครื่องเล่นเกมคอนโซลที่พัฒนาโดยญี่ปุ่นด้วยคอมพิวเตอร์ส่วนบุคคลที่ใช้ระบบปฏิบัติการของ Microsoft [ 8 ]ในตอนแรกใช้สัญลักษณ์รังสีเป็นโลโก้ แต่ Microsoft ขอให้ทีมเปลี่ยนโลโก้[ 8 ]ฝ่ายบริหารไม่เห็นด้วยกับโครงการนี้ เนื่องจากพวกเขาได้ตัด Windows ออกจากแพลตฟอร์มเกมไปแล้ว แต่ทั้งสามคนก็มุ่งมั่นที่จะพัฒนาโครงการนี้[ 9 ]ด้วยนิสัยดื้อรั้นของพวกเขา ทำให้แบรด ซิลเวอร์เบิร์กรองประธานอาวุโสฝ่ายผลิตภัณฑ์สำนักงานของไมโครซอฟต์ ตั้งชื่อกลุ่มสามคนนี้ว่า "Beastie Boys" [ 13 ]

งานส่วนใหญ่ของทั้งสามคนนั้นทำควบคู่ไปกับโครงการอื่นๆ ที่ได้รับมอบหมาย โดยเริ่มตั้งแต่ช่วงปลายปี 1994 [ 9 ] ภายในสี่เดือนและด้วยข้อมูลจากผู้ผลิตฮาร์ดแวร์หลายราย ทีมงานได้พัฒนาชุดอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ชุดแรก ซึ่งพวกเขาได้นำเสนอในงานGame Developers Conference ปี 1995 [ 9 ] SDK ประกอบด้วยไลบรารีที่ใช้ DirectDraw สำหรับกราฟิกแบบบิตแมป[ 14 ] DirectSound สำหรับเสียง[ 15 ]และ DirectPlay สำหรับการสื่อสารระหว่างผู้เล่นผ่านเครือข่าย[ 16 ]นอกจากนี้ API จอยสติ๊กแบบขยายที่มีอยู่แล้วใน Windows 95 ได้รับการบันทึกไว้เป็นครั้งแรกในชื่อ DirectInput [ 17 ]ในขณะที่คำอธิบายเกี่ยวกับวิธีการใช้งานการเริ่มต้นขั้นตอนการติดตั้งซอฟต์แวร์ทันทีหลังจากใส่ซีดีรอม ซึ่งเป็นคุณสมบัติที่เรียกว่า AutoPlay ก็เป็นส่วนหนึ่งของ SDK ด้วย[ 18 ]ส่วน "Direct" ของไลบรารีได้รับการตั้งชื่อเช่นนั้นเนื่องจากรูทีนเหล่านี้ข้ามรูทีนหลักของ Windows 95 ที่มีอยู่และเข้าถึงฮาร์ดแวร์คอมพิวเตอร์ผ่านเลเยอร์นามธรรมฮาร์ดแวร์ (HAL) เท่านั้น [ 19 ]แม้ว่าทีมจะตั้งชื่อว่า "Game SDK" ( ชุดพัฒนาซอฟต์แวร์ ) แต่ชื่อ "DirectX" มาจากนักข่าวคนหนึ่งที่ล้อเลียนรูปแบบการตั้งชื่อของไลบรารีต่างๆ ทีมเลือกที่จะใช้รูปแบบการตั้งชื่อนั้นต่อไปและเรียกโครงการนี้ว่า DirectX [ 8 ]

DirectX เวอร์ชันแรกเปิดตัวในเดือนกันยายน พ.ศ. 2538 ในชื่อ Windows Game SDK ส่วนประกอบ DirectDraw ของมันคือWin32ที่ใช้แทน DCI [ 20 ]และ WinG API สำหรับWindows 3.1 [ 21 ] DirectXอนุญาตให้ Microsoft Windows ทุกเวอร์ชัน ตั้งแต่ Windows 95 เป็นต้นไป สามารถรวมมัลติมีเดียประสิทธิภาพสูงได้ Eisler เขียนเกี่ยวกับความเร่งรีบในการสร้าง DirectX 1 ถึง 5 ในบล็อกของเขา[ 22 ]

เพื่อดึงดูดนักพัฒนาให้เข้าร่วม DirectX มากขึ้น ไมโครซอฟต์จึงติดต่อJohn Carmackจากid Softwareและเสนอที่จะพอร์ตDoomและDoom 2จาก MS-DOS ไปยัง DirectX โดยไม่คิดค่าใช้จ่ายใดๆ โดยที่ id ยังคงรักษาสิทธิ์ในการเผยแพร่เกมทั้งหมดไว้ Carmack ตกลง และGabe Newell จากไมโครซอฟต์ เป็นผู้นำโครงการพอร์ต เกมแรกได้รับการเผยแพร่ในชื่อDoom 95ในเดือนสิงหาคม 1996 ซึ่งเป็นเกม DirectX เกมแรกที่วางจำหน่าย ไมโครซอฟต์โปรโมตเกมนี้อย่างหนักโดยมีBill Gatesปรากฏตัวในโฆษณา[ 8 ]

DirectX 2.0 กลายเป็นส่วนประกอบในตัวของ Windows พร้อมกับการวางจำหน่ายWindows 95 OSR2 และWindows NT 4.0ในช่วงกลางปี ​​1996 เนื่องจาก Windows 95 เองก็ยังใหม่และมีเกมวางจำหน่ายสำหรับระบบนี้ไม่มากนัก Microsoft จึงทำการส่งเสริม DirectX อย่างหนักให้กับนักพัฒนาเกม ซึ่งโดยทั่วไปแล้วไม่ไว้วางใจในความสามารถของ Microsoft ในการสร้างแพลตฟอร์มเกมใน Windows Alex St. John ผู้เผยแพร่ศาสนาของ DirectX ได้จัดงานอีเวนต์ที่ยิ่งใหญ่ในงานประชุมนักพัฒนาเกมคอมพิวเตอร์ ปี 1996 ซึ่งนักพัฒนาเกม Jay Barnson อธิบายว่าเป็น ธีม โรมัน รวมถึง สิงโตจริงเสื้อคลุมแบบโรมัน และสิ่งที่คล้ายกับงานรื่นเริงในร่ม[ 23 ]ในงานนี้เองที่ Microsoft ได้แนะนำDirect3D เป็นครั้งแรก และสาธิตการ เล่นเกม MechWarrior 2 แบบผู้เล่นหลายคน ผ่านทางอินเทอร์เน็ต

ทีมพัฒนา DirectX ต้องเผชิญกับภารกิจที่ท้าทายในการทดสอบ DirectX แต่ละเวอร์ชันกับ ฮาร์ดแวร์ และซอฟต์แวร์คอมพิวเตอร์หลากหลายประเภท การ์ดจอ การ์ดเสียง เมนบอร์ด ซีพียู อุปกรณ์อินพุต เกม และแอปพลิเคชันมัลติมีเดียอื่นๆ ที่แตกต่างกันถูกทดสอบกับเวอร์ชันเบต้าและเวอร์ชันสุดท้าย ทีมพัฒนา DirectX ยังได้สร้างและเผยแพร่การทดสอบที่ช่วยให้อุตสาหกรรมฮาร์ดแวร์ยืนยันได้ว่าการออกแบบฮาร์ดแวร์ใหม่และการออกไดรเวอร์ใหม่จะเข้ากันได้กับ DirectX

ก่อนที่จะมีการเพิ่ม Direct3D ลงใน DirectX นั้น Microsoft ได้เพิ่มOpenGLลงในแพลตฟอร์มWindows NT ของตน [ 24 ] OpenGL ได้รับการออกแบบให้เป็นอินเทอร์เฟซซอฟต์แวร์ข้ามแพลตฟอร์ม ที่ไม่ขึ้นกับ ระบบหน้าต่างสำหรับฮาร์ดแวร์กราฟิกโดยSilicon Graphics, Inc.เพื่อนำการเขียนโปรแกรมกราฟิก 3 มิติเข้าสู่กระแสหลักของการเขียนโปรแกรมแอปพลิเคชัน นอกจากนี้ยังสามารถใช้สำหรับกราฟิกและภาพ 2 มิติ และอยู่ภายใต้การควบคุมของคณะกรรมการตรวจสอบสถาปัตยกรรม (ARB) ซึ่งรวมถึง Microsoft ด้วย[ 25 ] [ 26 ] Direct3D มีจุดประสงค์เพื่อเป็นทางเลือกที่ Microsoft ควบคุมแทน OpenGL โดยมุ่งเน้นไปที่การใช้งานในเกมเป็นหลัก เมื่อเกม 3 มิติเติบโตขึ้น นักพัฒนาเกมก็พบว่า OpenGL สามารถนำมาใช้ในการพัฒนาเกมได้อย่างมีประสิทธิภาพเช่นกัน[ 27 ]ณ จุดนั้น "การต่อสู้" ก็เริ่มต้นขึ้นระหว่างผู้สนับสนุน OpenGL ข้ามแพลตฟอร์มและ Direct3D ที่ใช้ได้เฉพาะกับ Windows เท่านั้น[ 28 ]อนึ่ง OpenGL ได้รับการสนับสนุนจากทีม DirectX ของ Microsoft หากนักพัฒนาเลือกใช้ API กราฟิก 3 มิติ OpenGL ในเกมคอมพิวเตอร์มักจะมีการรวม API อื่นๆ ของ DirectX นอกเหนือจาก Direct3D เข้ากับ OpenGL เนื่องจาก OpenGL ไม่ได้มีฟังก์ชันการทำงานทั้งหมดของ DirectX เช่น เสียงหรือการรองรับจอยสติ๊ก

ในรูปแบบเฉพาะคอนโซล Direct3D ถูกใช้เป็นพื้นฐานสำหรับ API ของคอนโซลXbox , Xbox 360และXbox One ของ Microsoft การใช้งานได้รับการพัฒนาร่วมกันระหว่าง Microsoft และNvidiaซึ่งเป็นผู้พัฒนาฮาร์ดแวร์กราฟิกแบบกำหนดเองที่ใช้โดย Xbox รุ่นแรก API ของ Xbox คล้ายกับ Direct3D 8.1 แต่ไม่สามารถอัปเดตได้เหมือนเทคโนโลยีคอนโซลอื่นๆ Xbox มีชื่อรหัสว่า DirectXbox แต่ถูกย่อให้เหลือเพียง Xbox สำหรับชื่อทางการค้า[ 29 ]

ในปี 2002 ด้วยการเปิดตัว DirectX 9 ทำให้ Direct3D ได้รับการสนับสนุนสำหรับการใช้งานโปรแกรม shader ที่ยาวกว่าเดิมมาก โดยใช้ pixel shader และ vertex shader เวอร์ชัน 2.0 นับตั้งแต่นั้นมา Microsoft ก็ได้ทำการอัปเดตชุดโปรแกรม DirectX อย่างต่อเนื่อง โดยได้แนะนำ Shader Model 3.0 ใน DirectX 9.0c ซึ่งวางจำหน่ายในเดือนสิงหาคม 2004

ณ เดือนเมษายน 2548 DirectShowถูกถอดออกจาก DirectX และย้ายไปอยู่ในMicrosoft Platform SDKแทน

ได้รับการยืนยันแล้วว่า DirectX มีอยู่ในWindows Phone 8ของ Microsoft [ 30 ]

การเรย์เทรซแบบเรียลไทม์ได้รับการประกาศในชื่อDXRในปี 2018 การสนับสนุนการคอมไพล์HLSLเป็นSPIR-Vก็ได้รับการเพิ่มใน DirectX Shader Compiler ในปีเดียวกันด้วย[ 31 ]

ส่วนประกอบ

DirectX ประกอบด้วย API หลายตัว:

ไมโครซอฟต์ได้ยกเลิกการใช้งานส่วนประกอบต่อไปนี้:

ฟังก์ชันการทำงานของ DirectX มีให้ในรูปแบบของ วัตถุและอินเทอร์เฟซแบบ COMนอกจากนี้ แม้ว่าจะไม่ใช่ส่วนประกอบของ DirectX เอง แต่วัตถุที่จัดการได้ถูกสร้างขึ้นบนบางส่วนของ DirectX เช่น Managed Direct3D [ 34 ]และไลบรารีกราฟิก XNA [ 35 ]บน Direct3D 9

Microsoft แจกจ่ายเครื่องมือดีบักสำหรับ DirectX ที่เรียกว่า "PIX" [ 36 ]

เวอร์ชัน

กำหนดการวางจำหน่าย
การเปิดตัวครั้งสำคัญ
พ.ศ. 2538ไดเร็กต์เอ็กซ์ 1
พ.ศ. 2539ไดเร็กต์เอ็กซ์ 2
ไดเร็กต์เอ็กซ์ 3
พ.ศ. 2540ไดเร็กต์เอ็กซ์ 5
1998ไดเร็กต์เอ็กซ์ 6
1999ไดเร็กต์เอ็กซ์ 7
2000ไดเร็กต์เอ็กซ์ 8
2001
2002ไดเร็กต์เอ็กซ์ 9
2003
2004
2548
2006ไดเร็กต์เอ็กซ์ 10
2007
2008
2009ไดเร็กต์เอ็กซ์ 11
2010
2011
2012
2013
2014
2015ไดเร็กต์เอ็กซ์ 12

ไดเร็กต์เอ็กซ์ 9

DirectX 9 ซึ่งเปิดตัวโดย Microsoft ในปี 2002 เป็นรุ่นสำคัญในตระกูล DirectX มันนำคุณสมบัติและการปรับปรุงที่สำคัญมากมายมาสู่ความสามารถด้านกราฟิกของ Windows ในขณะที่เปิดตัวนั้น รองรับWindows 98 , Windows Me , Windows 2000และWindows XPและ ณ เดือนสิงหาคม 2024 ก็ยังคงรองรับโดย Windows เวอร์ชันต่อๆ มาทั้งหมดเพื่อความเข้ากันได้กับเวอร์ชันเก่า

หนึ่งในคุณสมบัติสำคัญที่เปิดตัวใน Direct3D 9 คือ Shader Model 2.0 ซึ่งรวมถึง Pixel Shader 2.0 และ Vertex Shader 2.0 คุณสมบัติเหล่านี้ช่วยให้การเรนเดอร์กราฟิกมีความซับซ้อนและสมจริงยิ่งขึ้น นอกจากนี้ยังนำมาซึ่งการปรับปรุงประสิทธิภาพที่จำเป็นอย่างมากผ่าน ความสามารถ ในการเร่งความเร็วฮาร์ดแวร์ ที่ดีขึ้น และการใช้ทรัพยากร GPU อย่างมีประสิทธิภาพมากขึ้น อีกทั้งยังแนะนำHLSLซึ่งเป็นวิธีที่เข้าถึงได้ง่ายขึ้นสำหรับนักพัฒนาในการสร้าง shaders

DirectX 9 มีผลกระทบอย่างมากต่อการพัฒนาเกม เกมจำนวนมากในช่วงกลางทศวรรษ 2000 ถึงต้นทศวรรษ 2010 ถูกพัฒนาโดยใช้ DirectX 9 และมันกลายเป็นมาตรฐานสำหรับนักพัฒนาเกม แม้กระทั่งในปัจจุบัน เกมบางเกมยังคงใช้ DirectX 9 เป็นตัวเลือกสำหรับฮาร์ดแวร์รุ่นเก่าหรือที่มีประสิทธิภาพต่ำกว่า

ไดเร็กต์เอ็กซ์ 10

โลโก้และเครื่องหมายคำของ Microsoft DirectX 10

DirectX 10 ซึ่งเป็นการอัปเดตครั้งสำคัญของ API DirectX มาพร้อมกับและมีให้ใช้งานเฉพาะกับWindows Vista (เปิดตัวในช่วงปลายปี 2549) และเวอร์ชันต่อมาเท่านั้น Windows เวอร์ชันก่อนหน้า เช่น Windows XP ไม่สามารถเรียกใช้แอปพลิเคชันที่ใช้ DirectX 10 ได้ โปรแกรมที่ทำงานบน Windows XP จะถูกจำกัดไว้ที่ DirectX 9.0c ซึ่งเป็นเวอร์ชันหลักล่าสุดที่มีอยู่[ 37 ]

การเปลี่ยนแปลงสำหรับ DirectX 10นั้นมีมากมาย หลายส่วนของ API ของ DirectX เดิมถูกยกเลิกใน SDK ของ DirectX เวอร์ชันล่าสุด และถูกเก็บไว้เพื่อความเข้ากันได้เท่านั้น: DirectInputถูกยกเลิกและแทนที่ด้วยXInput , DirectSoundถูกยกเลิกและแทนที่ด้วย ระบบ Cross-platform Audio Creation Tool (XACT) และยังสูญเสียการสนับสนุนเสียงที่เร่งความเร็วด้วยฮาร์ดแวร์ เนื่องจากสแต็กเสียงของ Vistaประมวลผลเสียงในซอฟต์แวร์บน CPU ไฟล์ DirectPlay DPLAY.DLL ก็ถูกลบออกและแทนที่ด้วย dplayx.dll; เกมที่ต้องพึ่งพา DLL นี้จะต้องคัดลอกไฟล์และเปลี่ยนชื่อเป็น dplay.dll

เพื่อให้สามารถใช้งานร่วมกับเวอร์ชันก่อนหน้าได้ DirectX ใน Windows Vista จึงมี Direct3D หลายเวอร์ชัน: [ 38 ]

  • Direct3D 9 : จำลองการทำงานของ Direct3D 9 เหมือนกับใน Windows XP รายละเอียดและข้อดีของWindows Display Driver Model (WDDM) ของ Vista จะถูกซ่อนไว้จากแอปพลิเคชันหากมีการติดตั้งไดรเวอร์ WDDM ไว้ นี่เป็น API เดียวที่มีให้ใช้งานหากมีการติดตั้งเฉพาะไดรเวอร์กราฟิก XP (XDDM) เท่านั้น เช่น หลังจากการอัปเกรดเป็น Vista
  • Direct3D 9Ex (ซึ่งในระหว่างการพัฒนา Windows Vista เรียกภายในว่า 9.0L หรือ 9.L): ช่วยให้สามารถเข้าถึงความสามารถใหม่ๆ ของ WDDM ได้อย่างเต็มที่ (หากติดตั้งไดรเวอร์ WDDM แล้ว) ในขณะที่ยังคงรักษาความเข้ากันได้กับแอปพลิเคชัน Direct3D ที่มีอยู่เดิม อินเทอร์เฟซผู้ใช้ Windows Aeroอาศัย D3D 9Ex
  • Direct3D 10 : ออกแบบโดยใช้โมเดลไดรเวอร์ใหม่ใน Windows Vista และมีคุณสมบัติการปรับปรุงมากมายในด้านความสามารถในการเรนเดอร์และความยืดหยุ่น รวมถึงShader Model 4

Direct3D 10.1 เป็นการอัปเดตแบบเพิ่มขึ้นของ Direct3D 10.0 ซึ่งมาพร้อมกับและจำเป็นต้องใช้Windows Vista Service Pack 1ซึ่งวางจำหน่ายในเดือนกุมภาพันธ์ พ.ศ. 2551 [ 39 ]เวอร์ชันนี้ส่วนใหญ่กำหนดมาตรฐานคุณภาพของภาพเพิ่มเติมสำหรับผู้ผลิตกราฟิก ในขณะเดียวกันก็ให้นักพัฒนาสามารถควบคุมคุณภาพของภาพได้มากขึ้น[ 40 ]นอกจากนี้ยังเพิ่มการสนับสนุนสำหรับอาร์เรย์คิวบ์แมป โหมดการผสมแยกต่างหากต่อ MRT การส่งออกมาสก์การครอบคลุมจากพิกเซลเชเดอร์ ความสามารถในการเรียกใช้พิกเซลเชเดอร์ต่อตัวอย่าง การเข้าถึงบัฟเฟอร์ความลึกแบบหลายตัวอย่าง[ 41 ]และกำหนดให้การ์ดวิดีโอต้องรองรับ Shader Model 4.1 หรือสูงกว่า และการดำเนินการจุดลอยตัว 32 บิต Direct3D 10.1 ยังคงรองรับฮาร์ดแวร์ Direct3D 10 อย่างเต็มที่ แต่เพื่อที่จะใช้คุณสมบัติใหม่ทั้งหมด จำเป็นต้องใช้ฮาร์ดแวร์ที่อัปเดตแล้ว[ 42 ]

ไดเร็กต์เอ็กซ์ 11

โลโก้และเครื่องหมายคำของ Microsoft DirectX 11

ไมโครซอฟต์เปิดตัว DirectX 11 ในงาน Gamefest 08 ที่เมืองซีแอตเติล การอัปเดตแพลตฟอร์มครั้งสุดท้าย (Final Platform Update) เปิดตัวสำหรับ Windows Vista เมื่อวันที่ 27 ตุลาคม 2552 ซึ่งเป็นเวลาหนึ่งสัปดาห์หลังจากการเปิดตัวWindows 7 ครั้งแรก ซึ่งเปิดตัวพร้อมกับ Direct3D 11 เป็นมาตรฐานพื้นฐาน

คุณสมบัติหลักที่กำหนดไว้ ได้แก่ การสนับสนุน ซอฟต์แวร์ GPGPU ( DirectCompute ) และ Direct3D 11 พร้อมการสนับสนุนเทสเซลเลชัน[ 43 ] [ 44 ]และ การสนับสนุน มัลติเธรดดิ้ง ที่ได้รับการปรับปรุง เพื่อช่วยเหลือนักพัฒนาเกมในการพัฒนาเกมที่ใช้โปรเซสเซอร์มัลติคอร์ ได้ดียิ่งขึ้น [ 45 ]ส่วนต่างๆ ของ API ใหม่ เช่น การจัดการทรัพยากรแบบมัลติเธรด สามารถรองรับได้บนฮาร์ดแวร์ระดับ Direct3D 9/10/10.1 เทสเซลเลชันฮาร์ดแวร์และ Shader Model 5.0 ต้องใช้ฮาร์ดแวร์ที่รองรับ Direct3D 11 [ 46 ] Direct3D 11 เป็นซูเปอร์เซ็ตที่เข้มงวดของ Direct3D 10.1 — คุณสมบัติฮาร์ดแวร์และ API ทั้งหมดของเวอร์ชัน 10.1 ยังคงอยู่ และคุณสมบัติใหม่จะถูกเพิ่มเฉพาะเมื่อจำเป็นสำหรับการเปิดเผยฟังก์ชันการทำงานใหม่เท่านั้น ซึ่งจะช่วยรักษาความเข้ากันได้แบบย้อนหลังกับ Direct3D เวอร์ชันก่อนหน้า

มีการปล่อยอัปเดตสำหรับ DirectX 11 จำนวน 4 รายการ:

  • DirectX 11.1 รวมอยู่ในWindows 8รองรับWDDM 1.2เพื่อเพิ่มประสิทธิภาพ มีการรวมDirect2D (ปัจจุบันอยู่ที่เวอร์ชัน 1.1) Direct3DและDirectCompute ที่ได้รับการปรับปรุง และรวมถึงไลบรารี DirectXMath, XAudio2และXInputจากเฟรมเวิร์ก XNA นอกจากนี้ยังมี การรองรับ ภาพสามมิติแบบสเตอริโอสำหรับการเล่นเกมและวิดีโอ[ 47 ] DirectX 11.1 ยังได้รับการนำกลับมาใช้ใน Windows 7 บางส่วนผ่าน การอัปเด ตแพลตฟอร์ม Windows 7 [ 48 ] [ 49 ]
  • DirectX 11.2 รวมอยู่ในWindows 8.1 (รวมถึงเวอร์ชัน RT) และWindows Server 2012 R2 [ 50 ] มีการเพิ่มคุณสมบัติใหม่บางอย่างให้กับDirect2Dเช่น การสร้างรูปทรงเรขาคณิต[ 51 ]นอกจากนี้ยังเพิ่มการจัดองค์ประกอบแบบสลับโซ่ ซึ่งช่วยให้องค์ประกอบบางส่วนของฉากสามารถแสดงผลที่ความละเอียดต่ำกว่า แล้วจึงรวมเข้าด้วยกันผ่านการซ้อนทับฮาร์ดแวร์กับส่วนอื่นๆ ที่แสดงผลที่ความละเอียดสูงกว่า[ 52 ]
  • DirectX 11.X เป็นซูเปอร์เซ็ตของ DirectX 11.2 ที่ทำงานบนXbox One [ 53 ]จริงๆ แล้วมันมีคุณสมบัติบางอย่าง เช่น draw bundles ซึ่งต่อมาได้ประกาศเป็นส่วนหนึ่งของ DirectX 12 [ 54 ]
  • DirectX 11.3 ได้รับการประกาศพร้อมกับ DirectX 12 ในงาน GDC และวางจำหน่ายในปี 2015 โดยมีจุดประสงค์เพื่อเสริม DirectX 12 ในฐานะทางเลือกที่มีระดับสูงกว่า[ 55 ]และรวมอยู่ใน Windows 10 [ 50 ]

ไดเร็กต์เอ็กซ์ 12

ไมโครซอฟต์ประกาศเปิดตัว DirectX 12 ในงาน GDCเมื่อวันที่ 20 มีนาคม 2014 และเปิดตัวอย่างเป็นทางการพร้อมกับWindows 10เมื่อวันที่ 29 กรกฎาคม 2015

จุดเด่นหลักของการเปิดตัว DirectX เวอร์ชันใหม่คือการแนะนำการเขียนโปรแกรมระดับต่ำขั้น สูง ด้วย Direct3D 12 ซึ่งสามารถลดภาระการทำงานของไดรเวอร์ได้ นักพัฒนาสามารถนำรายการคำสั่งและบัฟเฟอร์ของตนเองไปใช้กับ GPU ได้แล้ว ทำให้สามารถใช้ทรัพยากรได้อย่างมีประสิทธิภาพมากขึ้นผ่านการคำนวณแบบขนาน Max McMullen หัวหน้านักพัฒนาได้กล่าวว่าเป้าหมายหลักของ Direct3D 12 คือการบรรลุ "ประสิทธิภาพระดับคอนโซลบนโทรศัพท์ แท็บเล็ต และพีซี" [ 56 ]การเปิดตัว Direct3D 12 มาพร้อมกับโครงการริเริ่มอื่นๆ สำหรับ API กราฟิกที่มีภาระการทำงานต่ำ รวมถึงMantle ของ AMD สำหรับการ์ดกราฟิก AMD, Metalของ Apple สำหรับ iOS และ macOS และVulkanข้าม แพลตฟอร์มของKhronos Group

การรองรับมัลติอะแดปเตอร์จะมีอยู่ใน Direct3D 12 ซึ่งช่วยให้นักพัฒนาสามารถใช้ GPU หลายตัวบนระบบพร้อมกันได้ การรองรับมัลติ GPU (mGPU) ก่อนหน้านี้ขึ้นอยู่กับการใช้งานของผู้ผลิต เช่นAMD CrossFireXหรือNVIDIA SLI [ 57 ] [ 58 ] [ 59 ] [ 60 ]

  • การรองรับ Multiadapter แบบไม่ระบุชัดเจนจะทำงานในลักษณะเดียวกับ Direct3D เวอร์ชันก่อนหน้า โดยเฟรมจะถูกเรนเดอร์สลับกันไปมาบน GPU ที่เชื่อมต่อกันซึ่งมีกำลังประมวลผลใกล้เคียงกัน
  • Explicit Multiadapterจะมีรูปแบบ API สองแบบที่แตกต่างกันสำหรับนักพัฒนาGPU ที่เชื่อมโยงกันจะช่วยให้ Direct3D มองเห็นการ์ดกราฟิกในโหมด SLI หรือ CrossFireX เป็น GPU ตัวเดียวและใช้ทรัพยากรที่รวมกันได้ ในขณะที่GPU ที่ไม่เชื่อมโยงกันจะช่วยให้ Direct3D สามารถใช้ GPU จากผู้ผลิตที่แตกต่างกันได้ เช่น การเสริมGPU เฉพาะด้วยGPUในตัวของ CPU หรือการรวมการ์ด AMD และ NVIDIA เข้าด้วยกัน อย่างไรก็ตาม การตั้งค่า multi-GPU แบบผสมผสานที่ซับซ้อนนั้นต้องการการสนับสนุนจากนักพัฒนาที่เอาใจใส่มากขึ้นอย่างมาก

Direct3D 12 รองรับบน GPU ของ Nvidia รุ่น Fermi และรุ่นต่อมาทั้งหมด บนชิป GCNของ AMD และบนหน่วยประมวลผลกราฟิกของโปรเซสเซอร์ Intel รุ่นHaswellและรุ่นต่อมา[ 61 ]

ในงาน SIGGRAPH 2014 อินเทลได้เผยแพร่การสาธิตที่แสดงภาพสนามดาวเคราะห์น้อย ที่สร้างด้วยคอมพิวเตอร์ โดยอ้างว่า Direct3D 12 มีประสิทธิภาพมากกว่า Direct3D 11 ถึง 50–70% ในด้านความเร็วในการเรนเดอร์และการใช้พลังงาน CPU [ 62 ] [ 63 ]

Ashes of the Singularityเป็นเกมแรกที่เปิดให้ใช้งาน Direct3D 12 อย่างเป็นทางการ การทดสอบโดย Ars Technicaในเดือนสิงหาคม 2015 เผยให้เห็นประสิทธิภาพที่ลดลงเล็กน้อยในโหมด Direct3D 12 เมื่อเทียบกับ Direct3D 11 สำหรับ Nvidia GeForce 980 Tiในขณะที่ AMD Radeon R9 290xมีประสิทธิภาพที่ดีขึ้นอย่างสม่ำเสมอถึง 70% ภายใต้ Direct3D 12 และในบางสถานการณ์ AMD มีประสิทธิภาพเหนือกว่า Nvidia ที่ทรงพลังกว่าภายใต้ Direct3D 12 ความแตกต่างของประสิทธิภาพอาจเกิดจากการปรับแต่งไดรเวอร์ Nvidia ที่ไม่ดีสำหรับ Direct3D 12 หรือแม้แต่ข้อจำกัดของฮาร์ดแวร์ของการ์ดที่ได้รับการปรับแต่งสำหรับการทำงานแบบอนุกรมของ Direct3D 11 อย่างไรก็ตาม สาเหตุที่แท้จริงยังคงไม่ชัดเจน [ 64 ]

การปรับปรุงประสิทธิภาพของ Direct3D 12 บน Xbox นั้นไม่มากเท่ากับบนพีซี[ 65 ]

ในเดือนมีนาคม พ.ศ. 2561 ได้มีการประกาศ DirectX Raytracing (DXR) ซึ่งสามารถทำการเรย์เทรซแบบเรียลไทม์บนฮาร์ดแวร์ที่รองรับ[ 66 ]และได้มีการเพิ่ม API ของ DXR ในการอัปเดต Windows 10 เดือนตุลาคม พ.ศ. 2561

ในปี 2019 ไมโครซอฟต์ประกาศการมาถึงของ DirectX 12 สำหรับWindows 7แต่เป็นเพียงปลั๊กอินสำหรับเกมบางเกมเท่านั้น[ 67 ]

DirectX 12 อัลติเมท

ไมโครซอฟต์เปิดตัว DirectX 12 Ultimate ในเดือนมีนาคม 2020 DirectX 12 Ultimate จะรวมไลบรารีทั่วไปบนทั้งคอมพิวเตอร์ Windows 10 และXbox Series Xและคอนโซล Xbox รุ่นที่เก้าอื่นๆ คุณสมบัติใหม่ใน Ultimate ได้แก่DirectX Raytracing 1.1 , Variable Rate Shading ซึ่งช่วยให้นักเขียนโปรแกรมควบคุมระดับรายละเอียดของการแรเงาตามตัวเลือกการออกแบบ, Mesh Shadersและ Sampler Feedback [ 68 ] [ 69 ]

ประวัติเวอร์ชัน

เวอร์ชัน DirectX
เวอร์ชั่น วันที่วางจำหน่าย หมายเหตุ
วิชาเอก ส่วนน้อย ตัวเลข
1 1.04.02.009530 กันยายน 2538เปิดตัวครั้งแรกในชื่อ Windows Game SDK โดยเข้ามาแทนที่WinGสำหรับWindows 95เป็นต้นไป
2 2.04.03.00.10965 มิถุนายน 2539วางจำหน่ายพร้อมเกมและแอปพลิเคชันจากผู้พัฒนาภายนอกเพียงไม่กี่เกม และได้เปิดตัวDirect3D เป็นครั้งแรก
2.0ก4.03.00.1100พ.ศ. 2539รวมอยู่ในเกม และในWindows NT 4.0และเวอร์ชันที่ใหม่กว่า รวมถึง Windows 95 OSR2 การอัปเดตเพียงอย่างเดียวในเวอร์ชัน 2.0a คือไฟล์ "MSDSOUND.INF" ของไดรเวอร์เสียงในตัว ซึ่งมีเวอร์ชัน 4.03.00.1100
3 3.04.04.00.0068วันที่ 15 กันยายน พ.ศ. 2539 
4.04.00.0069พ.ศ. 2539แพ็คเกจ DirectX 3.0 รุ่นต่อมาได้รวม Direct3D 4.04.00.0069 ไว้ด้วย
3.0ก4.04.00.0070ธันวาคม พ.ศ. 2539Windows NT 4.0 SP3+ เวอร์ชันล่าสุดสำหรับ Windows NT 4.0
3.0b4.04.00.0070มกราคม พ.ศ. 2540นี่เป็นการอัปเดตเล็กน้อยมากสำหรับเวอร์ชัน 3.0a ซึ่งแก้ไขปัญหาด้านการแสดงผลในเวอร์ชันภาษาญี่ปุ่นของ Windows 95 (DSETUPJ.DLL)
4 4.0ไม่เคยเผยแพร่DirectX 4 ไม่เคยถูกปล่อยออกมา Raymond Chen จาก Microsoft อธิบายในหนังสือของเขาThe Old New Thingว่าหลังจากที่ DirectX 3 ถูกปล่อยออกมา Microsoft ก็เริ่มพัฒนาเวอร์ชัน 4 และ 5 ไปพร้อมๆ กัน เวอร์ชัน 4 จะเป็นเวอร์ชันระยะสั้นที่มีฟีเจอร์เล็กน้อย ในขณะที่เวอร์ชัน 5 จะเป็นเวอร์ชันที่มีฟีเจอร์มากกว่า การขาดความสนใจจากนักพัฒนาเกมในฟีเจอร์ที่ระบุไว้สำหรับ DirectX 4 ส่งผลให้มันถูกระงับ และเอกสารจำนวนมากที่แยกความแตกต่างระหว่างสองเวอร์ชันใหม่นี้ทำให้ Microsoft เลือกที่จะไม่นำเวอร์ชัน 4 มาใช้ซ้ำเพื่ออธิบายฟีเจอร์ที่ตั้งใจไว้สำหรับเวอร์ชัน 5 [ 70 ] [ 71 ]
5 5.04.05.00.0155 (RC55)4 สิงหาคม 2540มีให้ใช้งานในเวอร์ชันเบต้าสำหรับWindows NT 5.0 Beta และสามารถติดตั้งบน Windows NT 4.0 ได้
4.05.00.0155 (RC66)26 พฤศจิกายน 2540โปรแกรมติดตั้งรวมอยู่ในแผ่นติดตั้ง Windows 95 OSR 2.5 แล้ว
5.24.05.01.1600 (RC00)5 พฤษภาคม 2541การเปิดตัว DirectX 5.2 สำหรับ Windows 95
4.05.01.1998 (RC0)25 มิถุนายน 2541Windows 98เฉพาะรุ่น
6 6.04.06.00.0318 (RC3)7 สิงหาคม พ.ศ. 2541 [ 72 ]ระบบปฏิบัติการ Windows CEที่ใช้งานบนDreamcastและอุปกรณ์อื่นๆ
6.14.06.02.0436 (RC0)3 กุมภาพันธ์ พ.ศ. 2542 [ 73 ]
6.1ก4.06.03.0518 (RC0)5 พฤษภาคม พ.ศ. 2542 [ 74 ]Windows 98 รุ่นที่สอง (เฉพาะ รุ่น)
7 7.04.07.00.0700 (RC1)22 กันยายน พ.ศ. 2542 [ 75 ] [ 76 ] [ 77 ]
4.07.00.070017 กุมภาพันธ์ พ.ศ. 2543เฉพาะ Windows 2000
7.0a 4.07.00.0716 (RC0)พฤศจิกายน 2542
4.07.00.0716 (RC1)วันที่ 17 ธันวาคม พ.ศ. 2542วางจำหน่ายเฉพาะสำหรับ Windows 95 ถึง 98 [ 78 ]
7.14.07.01.3000 (RC1)14 กันยายน พ.ศ. 2543 [ 79 ]เฉพาะสำหรับ Windows Meเท่านั้น เวอร์ชันสุดท้ายที่จะมีระบบแสดงผล RGB ในตัว และเป็นเวอร์ชันสุดท้ายที่สามารถทำงานบนซีพียู 486 หรือรุ่นเก่ากว่าได้
8 8.04.08.00.0400 (RC10)10 พฤศจิกายน พ.ศ. 2543 [ 80 ]
8.0a4.08.00.0400 (RC14)24 มกราคม พ.ศ. 2544 [ 81 ] [ 82 ]เวอร์ชันสุดท้ายสำหรับ Windows 95 และเวอร์ชันสุดท้ายที่มีการรองรับการแสดงผลซอฟต์แวร์ใน dxdiag.exe
8.14.08.01.081024 สิงหาคม 2544รวมอยู่ในWindows XP RTM & SP1 และWindows Server 2003 RTM
4.08.01.0881 (RC7)8 พฤศจิกายน 2544เวอร์ชันนี้สำหรับระบบปฏิบัติการรุ่นเก่า
8.1ข4.08.01.0901 (RC7)25 มิถุนายน 2545การอัปเดตครั้งนี้มีการปรับปรุง Direct3D (D3d8.dll) และแก้ไขปัญหา DirectShow บน Windows 2000 (Quartz.dll)
8.24.08.02.0134 (RC0)2002เหมือนกับ DirectX 8.1b แต่รวมถึง DirectPlay 8.2 ด้วย
9 9.04.09.00.0900 (RC4)19 ธันวาคม พ.ศ. 2545
9.0a4.09.00.0901 (RC6)26 มีนาคม 2546
9.0b4.09.00.0902 (RC2)วันที่ 13 สิงหาคม พ.ศ. 2546
9.0c [ 83 ]4.09.00.0904 (RC0)2 สิงหาคม พ.ศ. 2547 [ 84 ]การเผยแพร่เวอร์ชัน 9.0c ครั้งแรกมีการเผยแพร่การอัปเดตเป็นระยะ โดยเริ่มแรกในรูปแบบที่ไม่สะสมสำหรับนักพัฒนาตั้งแต่เดือนตุลาคม พ.ศ. 2547 [ 85 ]จนถึงเดือนตุลาคม พ.ศ. 2548 [ 86 ]จากนั้นในรูปแบบสะสมสำหรับผู้ใช้ทั่วไปตั้งแต่เดือนธันวาคม พ.ศ. 2548 [ 87 ]จนถึงเดือนมิถุนายน พ.ศ. 2553 [ 88 ]
4.09.00.090425 สิงหาคม 2547ถูกนำมาใช้ครั้งแรกใน Windows XP พร้อม Service Pack 2 และต่อมาใน Windows Server 2003 พร้อม Service Pack 1
10 ตุลาคม พ.ศ. 2549 [ 89 ]"October 2006 redistributable" ซึ่งเป็นเวอร์ชันสุดท้ายที่วางจำหน่ายอย่างเป็นทางการสำหรับ Windows 98 และ Windows Me [ 90 ] [ 91 ]
5 กุมภาพันธ์ 2553 [ 92 ]"การแจกจ่ายซ้ำเดือนกุมภาพันธ์ 2010" ซึ่งเป็นรุ่นสุดท้ายสำหรับ Windows 2000, Windows XP RTM & SP1 และ Windows Server 2003 RTM [ 93 ]
7 มิถุนายน 2553 [ 93 ]"การแจกจ่ายซ้ำเดือนมิถุนายน 2010" การเผยแพร่ 9.0c ครั้งสุดท้ายการเผยแพร่ครั้งสุดท้ายสำหรับ Windows XP [ a ] ​​และ Windows Server 2003 [ b ] [ 94 ]
10 106.00.6000.1638630 พฤศจิกายน 2549เฉพาะ Windows Vistaเท่านั้น
10.16.00.6001.180004 กุมภาพันธ์ พ.ศ. 2551เฉพาะWindows Vista SP1 และWindows Server 2008 เท่านั้น รวมถึง Direct3D 10.1 ด้วย
6.00.6002.1800528 เมษายน 2552เฉพาะ Windows Vista SP2 และWindows Server 2008 SP2 เท่านั้นรวมถึง Direct3D 10.1 ด้วย
11 116.01.7600.1638522 กรกฎาคม 2552รองรับเฉพาะ Windows 7และWindows Server 2008 R2 เท่านั้น
6.00.6002.1810727 ตุลาคม 2552ผ่านการอัปเดตแพลตฟอร์มสำหรับ Windows Vista และ Windows Server 2008 [ 95 ]
6.01.7601.1751416 กุมภาพันธ์ 2554เฉพาะ Windows 7 SP1 และWindows Server 2008 R2 SP1 เท่านั้น
11.16.02.9200.163841 สิงหาคม 2555รองรับเฉพาะWindows 8 , Windows RTและWindows Server 2012 เท่านั้น
6.02.9200.16492วันที่ 11 กุมภาพันธ์ 2556ผ่านการอัปเดตแพลตฟอร์มสำหรับ Windows 7 และ Windows Server 2008 R2 [ 96 ]
11.26.03.9600.1638427 สิงหาคม 2556รองรับเฉพาะ Windows 8.1และWindows Server 2012 R2 เท่านั้น
12 1210.00.10240.1638429 กรกฎาคม 2558เฉพาะ Windows 10และWindows Server 2016เท่านั้น
10.00.15063.000020 มีนาคม 2560เพิ่มการทดสอบขอบเขตความลึกและ MSAA ที่ตั้งโปรแกรมได้ใน Windows 10 [ 97 ] [ 98 ]
10.00.17763.000020 พฤศจิกายน 2562Direct3D 12 สำหรับ Windows 7 SP1 เท่านั้น ผ่านแพ็คเกจซอร์สโค้ดเฉพาะสำหรับนักพัฒนาแอป[ 99 ] [ 100 ]
12.1 10.00.17763.00012 ตุลาคม 2561Windows 10 (1809) และ Windows Server 2019 เท่านั้น เพิ่มการรองรับ DirectX Raytracing [ 101 ]
10.00.18362.0116 19 พฤษภาคม 2562Windows 10 เพิ่มการรองรับ Variable Rate Shading (VRS) [ 102 ]
12.2 10.00.19041.0928 10 พฤศจิกายน 2020Windows 10 (2004–22H2) และ Windows Server 2022 รุ่น Ultimate เท่านั้น
10.00.22000.1000 5 ตุลาคม 2564 Windows 11เฉพาะ เพิ่มการสลับอัตราการรีเฟรชแบบเนทีฟ[ ​​103 ]และปรับปรุงความสามารถด้านกราฟิกให้กับWindows Subsystem for Linux [ 104 ]
10.00.22621.3820 20 กันยายน 2022 Windows 11 (22H2), การปรับปรุง DirectStorage, การเพิ่มประสิทธิภาพ DXR, Shader Model 6.7
10.00.22631.2428 31 ตุลาคม 2566 Windows 11 (23H2) ปรับปรุงประสิทธิภาพ DirectX 12 Ultimate และปรับปรุงคอมไพเลอร์ DXIL เพิ่มเติม
10.00.26100.1000 1 ตุลาคม 2567 รองรับเฉพาะ Windows 11 (24H2) และ Windows Server 2025 เท่านั้น สำหรับ Shader Execution Reordering (SER), Work Graphs และ Shader Model 6.8
10.00.26200.7309 30 กันยายน 2025 Windows 11 (25H2) การปรับปรุง Work Graphs, พฤติกรรม DXR ขั้นสูง และการปรับปรุงไปป์ไลน์ที่ขับเคลื่อนด้วย GPU

หมายเลขเวอร์ชันที่รายงานโดย เครื่องมือ DxDiag ของ Microsoft (เวอร์ชัน 4.09.0000.0900 และสูงกว่า) ใช้รูปแบบ x.xx.xxxx.xxxx สำหรับหมายเลขเวอร์ชัน อย่างไรก็ตาม หน้า MSDN ของ DirectX และ Windows XP อ้างว่ารีจิสทรีอยู่ในรูปแบบ x.xx.xx.xxxx เสมอ ดังนั้น เมื่อตารางข้างต้นแสดงเวอร์ชันเป็น '4.09.00.0904' เครื่องมือ DxDiagของ Microsoft อาจแสดงเป็น '4.09.0000.0904' [ 105 ]

ความเข้ากันได้

Windows เวอร์ชันต่างๆ ได้รวมและรองรับ DirectX เวอร์ชันต่างๆ ทำให้ระบบปฏิบัติการเวอร์ชันใหม่กว่าสามารถใช้งานแอปพลิเคชันที่ออกแบบมาสำหรับ DirectX เวอร์ชันก่อนหน้าได้ต่อไป จนกว่าจะสามารถทยอยเลิกใช้เวอร์ชันเหล่านั้นและหันมาใช้ API ไดรเวอร์ และฮาร์ดแวร์เวอร์ชันใหม่กว่าแทน[ 106 ]

API ต่างๆ เช่น Direct3D และ DirectSound จำเป็นต้องทำงานร่วมกับฮาร์ดแวร์ โดยผ่านไดรเวอร์อุปกรณ์ผู้ผลิตฮาร์ดแวร์ต้องเขียนไดรเวอร์เหล่านี้สำหรับอินเทอร์เฟซไดรเวอร์อุปกรณ์ (หรือ DDI) ของ DirectX เวอร์ชันเฉพาะ และทดสอบฮาร์ดแวร์แต่ละชิ้นเพื่อให้เข้ากันได้กับ DirectX อุปกรณ์ฮาร์ดแวร์บางอย่างมีเฉพาะไดรเวอร์ที่เข้ากันได้กับ DirectX เท่านั้น (กล่าวคือ ต้องติดตั้ง DirectX เพื่อใช้งานฮาร์ดแวร์นั้น) DirectX เวอร์ชันแรกๆ มีไลบรารีที่อัปเดตแล้วของไดรเวอร์ที่เข้ากันได้กับ DirectX ทั้งหมดที่มีอยู่ในขณะนั้น อย่างไรก็ตาม วิธีการนี้ถูกยกเลิกไป และหันมาใช้ ระบบอัปเดตไดรเวอร์ Windows Update บนเว็บแทน ซึ่งอนุญาตให้ผู้ใช้ดาวน์โหลดเฉพาะไดรเวอร์ที่เกี่ยวข้องกับฮาร์ดแวร์ของตนเท่านั้น แทนที่จะดาวน์โหลดทั้งไลบรารี

ก่อน DirectX 10 รันไทม์ของ DirectX ได้รับการออกแบบให้สามารถใช้งานร่วมกับไดรเวอร์รุ่นเก่าได้ ซึ่งหมายความว่า API เวอร์ชันใหม่กว่าได้รับการออกแบบให้ทำงานร่วมกับไดรเวอร์รุ่นเก่าที่เขียนขึ้นโดยใช้ DDI เวอร์ชันก่อนหน้า โปรแกรมเมอร์แอปพลิเคชันต้องสอบถามความสามารถของฮาร์ดแวร์ที่มีอยู่โดยใช้ระบบ "cap bits" ที่ซับซ้อน ซึ่งแต่ละบิตจะเชื่อมโยงกับคุณสมบัติของฮาร์ดแวร์เฉพาะ Direct3D 7 และเวอร์ชันก่อนหน้าจะทำงานบน DDI เวอร์ชันใดก็ได้ Direct3D 8 ต้องการ DDI ระดับขั้นต่ำ 6 และ Direct3D 9 ต้องการ DDI ระดับขั้นต่ำ 7 [ 107 ] อย่างไรก็ตาม รันไทม์ของ Direct3D 10 ใน Windows Vista ไม่สามารถทำงานบนไดรเวอร์ฮาร์ดแวร์รุ่นเก่าได้เนื่องจาก DDI ที่ได้รับการอัปเดตอย่างมาก ซึ่งต้องการชุดคุณสมบัติที่เป็นหนึ่งเดียวและยกเลิกการใช้ "cap bits"

Direct3D 10.1แนะนำ " ระดับคุณสมบัติ " 10_0 และ 10_1 ซึ่งอนุญาตให้ใช้เฉพาะคุณสมบัติฮาร์ดแวร์ที่กำหนดไว้ในเวอร์ชัน API ของ Direct3D เท่านั้นDirect3D 11เพิ่มระดับ 11_0 และ "ระดับ 9" ซึ่งเป็นส่วนย่อยของ API Direct3D 10 ที่ออกแบบมาเพื่อทำงานบนฮาร์ดแวร์ Direct3D 9 โดยมีระดับคุณสมบัติสามระดับ (9_1, 9_2 และ 9_3) จัดกลุ่มตามความสามารถทั่วไปของการ์ดแสดงผล "ระดับต่ำ" "ระดับกลาง" และ "ระดับสูง" โดยรันไทม์จะใช้ DDI ของ Direct3D 9 ที่มีอยู่ในไดรเวอร์ WDDM ทั้งหมดโดยตรง ระดับคุณสมบัติ 11_1 ได้รับการแนะนำในDirect3D 11.1

.NET Framework

ในปี 2545 ไมโครซอฟต์ได้ออกเวอร์ชันของ DirectX ที่เข้ากันได้กับ Microsoft .NET Frameworkทำให้โปรแกรมเมอร์สามารถใช้ประโยชน์จากฟังก์ชันการทำงานของ DirectX ภายในแอปพลิเคชัน .NET โดยใช้ภาษาที่เข้ากันได้ เช่น Managed C++ หรือ ภาษาโปรแกรม C# API นี้เรียกว่า " Managed DirectX " (หรือ MDX) และอ้างว่าทำงานได้ที่ประสิทธิภาพ 98% ของ API DirectX ดั้งเดิม ในเดือนธันวาคม 2548 กุมภาพันธ์ 2549 เมษายน 2549 และสิงหาคม 2549 ไมโครซอฟต์ได้ออกอัปเดตไลบรารีนี้อย่างต่อเนื่อง โดยเวอร์ชันสุดท้ายคือเวอร์ชันเบต้าที่เรียกว่า Managed DirectX 2.0 แม้ว่า Managed DirectX 2.0 จะรวมฟังก์ชันการทำงานที่เคยกระจัดกระจายอยู่ในหลายแอสเซมบลีเข้าไว้ในแอสเซมบลีเดียว ทำให้การพึ่งพาสำหรับนักพัฒนาซอฟต์แวร์ง่ายขึ้น แต่การพัฒนาเวอร์ชันนี้ได้ถูกยุติลงในภายหลังและไม่ได้รับการสนับสนุนอีกต่อไป ไลบรารี Managed DirectX 2.0 หมดอายุในวันที่ 5 ตุลาคม 2549

ในงาน GDC 2006 ไมโครซอฟต์ได้นำเสนอXNA Frameworkซึ่งเป็นเวอร์ชันจัดการใหม่ของ DirectX (คล้ายคลึงแต่ไม่เหมือนกับ Managed DirectX) ที่มีจุดประสงค์เพื่อช่วยในการพัฒนาเกมโดยทำให้การรวม DirectX, HLSL และเครื่องมืออื่นๆ เข้าไว้ในแพ็กเกจเดียวทำได้ง่ายขึ้น นอกจากนี้ยังรองรับการทำงานของโค้ดแบบจัดการบน Xbox 360 ด้วยXNA Game Studio Express RTMเปิดให้ดาวน์โหลดฟรีสำหรับ Windows XP ในวันที่ 11 ธันวาคม 2006 แตกต่างจาก DirectX runtime Managed DirectX , XNA Frameworkหรือ API ของXbox 360 (XInput, XACT เป็นต้น) ไม่ได้รวมอยู่ใน Windows นักพัฒนาจะต้องแจกจ่ายส่วนประกอบ runtime เหล่านี้ไปพร้อมกับเกมหรือแอปพลิเคชันของตนเอง

ไม่มีผลิตภัณฑ์ใดของ Microsoft รวมถึง XNA รุ่นล่าสุด ที่รองรับ DirectX 10 สำหรับ .NET Framework

อีกแนวทางหนึ่งสำหรับการใช้งาน DirectX ในภาษาโปรแกรมแบบ Managed Language คือการใช้ไลบรารีของบุคคลที่สาม เช่น:

  • SlimDX คือไลบรารีโอเพนซอร์สสำหรับการเขียนโปรแกรม DirectX บน .NET Framework
  • SharpDX [ 108 ] [ 109 ]ซึ่งเป็นโครงการโอเพนซอร์สที่ส่งมอบ API DirectX เต็มรูปแบบสำหรับ .NET บนแพลตฟอร์ม Windows ทั้งหมด ทำให้สามารถพัฒนาเกมที่มีประสิทธิภาพสูง การเรนเดอร์กราฟิก 2 มิติและ 3 มิติ รวมถึงแอปพลิเคชันเสียงแบบเรียลไทม์ได้
  • DirectShow.NETสำหรับชุดย่อย DirectShow
  • Windows API CodePack สำหรับ .NET Framework ถูกเก็บถาวรเมื่อวันที่ 14 กุมภาพันธ์ 2011 ที่Wayback Machineซึ่งเป็นไลบรารีโอเพนซอร์สจาก Microsoft

ทางเลือกอื่นๆ

นอกจาก ตระกูลAPI DirectX แล้ว ยังมีทางเลือกอื่นๆ อีกมากมาย เช่นOpenGL , Vulkan ( ซึ่งเป็นรุ่นต่อจาก DirectX) , MetalและMantle ซึ่งมีคุณสมบัติใกล้เคียงกับ Direct3Dมากที่สุดตัวอย่างของ API อื่นๆ ได้แก่SDL , Allegro , OpenMAX , OpenML, OpenAL , OpenCL , FMOD , SFMLเป็นต้น ไลบรารีเหล่านี้จำนวนมากใช้งานได้หลายแพลตฟอร์ม หรือมีโค้ดเบสแบบโอเพนซอร์ส นอกจากนี้ยังมีวิธีการใช้งานทางเลือกอื่นๆ ที่มุ่งให้ API เดียวกัน เช่น ในWineและยิ่งไปกว่านั้น นักพัฒนาReactOSกำลังพยายามสร้าง DirectX ขึ้นมาใหม่ภายใต้ชื่อ "ReactX"

ดูเพิ่มเติม

หมายเหตุ

  1. ^ต้องใช้ Service Pack 2 หรือ 3
  2. ^ต้องใช้ Service Pack 1 หรือ 2
  • เว็บไซต์สำหรับนักพัฒนา DirectX ของ Microsoft
  • สถานะของ DirectX 10 - คุณภาพของภาพและประสิทธิภาพ
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=DirectX&oldid=1357219301#DirectX_10 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไดเร็กต์เอ็กซ์

Microsoft DirectXคือชุดของอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) สำหรับจัดการงานที่เกี่ยวข้องกับมัลติมีเดียโดยเฉพาะอย่างยิ่งการเขียนโปรแกรมเกมและวิดีโอ บน แพลตฟอร์ม ของ...

ประวัติการพัฒนา

ในช่วงปลายปี 1994 ไมโครซอฟต์พร้อมที่จะวางจำหน่าย Windows 95 ซึ่งเป็น ระบบปฏิบัติการ รุ่นต่อไป ปัจจัยสำคัญที่ส่งผลต่อคุณค่าของระบบปฏิบัติการนี้สำหรับผู้บริโภคคือโปรแกรมต่างๆ ที่สามารถทำงานบนระบบนี้ได้ อเล็กซ์ เซนต์ จอห์ น พนักงานของไมโครซอฟต์...

เวอร์ชัน

กำหนดการวางจำหน่าย การเปิดตัวครั้งสำคัญ พ.ศ. 2538 ไดเร็กต์เอ็กซ์ 1 พ.ศ. 2539 ไดเร็กต์เอ็กซ์ 2 ไดเร็กต์เอ็กซ์ 3 พ.ศ.

ไดเร็กต์เอ็กซ์ 9

DirectX 9 ซึ่งเปิดตัวโดย Microsoft ในปี 2002 เป็นรุ่นสำคัญในตระกูล DirectX มันนำคุณสมบัติและการปรับปรุงที่สำคัญมากมายมาสู่ความสามารถด้านกราฟิกของ Windows ในขณะที่เปิดตัวนั้น รองรับ Windows 98 , Windows Me , Windows 2000 และ Windows XP และ ณ เดือนสิงหาคม 2024...