http://go.microsoft.com/fwlink/?LinkID=615561
ลิขสิทธิ์ (c) Microsoft Corporation
28 ตุลาคม 2024
แพ็คเกจนี้ประกอบด้วย "ชุดเครื่องมือ DirectX" ซึ่งเป็นชุดของคลาสตัวช่วยสำหรับการเขียนโค้ด Direct3D 12 C++ สำหรับแอป Universal Windows Platform (UWP) สำหรับ Windows 11 และ Windows 10 ชื่อเกมสำหรับ Xbox Series X|S และ Xbox One และ Win32 แอปพลิเคชันเดสก์ท็อปสำหรับ Windows 11 และ Windows 10
รหัสนี้ออกแบบมาเพื่อสร้างด้วย Visual Studio 2019 (16.11), Visual Studio 2022, clang สำหรับ Windows v12 หรือใหม่กว่า หรือ MinGW 12.2 จำเป็นต้องใช้ Windows 10 พฤษภาคม 2020 Update SDK (19041) หรือใหม่กว่าสำหรับ Visual Studio
ส่วนประกอบเหล่านี้ได้รับการออกแบบมาให้ทำงานโดยไม่ต้องใช้เนื้อหาใดๆ จาก DirectX SDK รุ่นเก่า สำหรับรายละเอียด โปรดดูที่ DirectX SDK อยู่ที่ไหน
Inc
ไฟล์ส่วนหัวสาธารณะ (ในเนมสเปซ DirectX C++):
Src
Audio
build
MakeSpriteFont และ XWBTool สามารถพบได้ในชุดเครื่องมือ DirectX สำหรับ DirectX 11
เอกสารมีอยู่ในวิกิ GitHub
เนื้อหาและซอร์สโค้ดทั้งหมดสำหรับแพ็คเกจนี้อยู่ภายใต้ข้อกำหนดของใบอนุญาต MIT
สำหรับ DirectXTK12 เวอร์ชันล่าสุด รายงานข้อผิดพลาด ฯลฯ โปรดไปที่ไซต์โครงการบน GitHub
ไม่รองรับเอฟเฟกต์เชเดอร์เอฟเฟกต์ Visual Studio Directed Graph Shader Language (DGSL) (เช่น DGSLEffect ) ไฟล์ CMO ถูกโหลดโดยใช้วัสดุ BasicEffect หรือ SkinnedEffect
VertexTypes ไม่รวม VertexPositionNormalTangentColorTexture หรือ VertexPositionNormalTangentColorTextureSkinning ซึ่งมีจุดประสงค์เพื่อใช้กับไปป์ไลน์ DGSL
ชุดเครื่องมือ DirectX สำหรับ DirectX 11 รองรับฟีเจอร์ระดับ 9.x ในขณะที่ DirectX 12 ต้องใช้ฟีเจอร์ Direct3D ระดับ 11.0 คาดว่าจะไม่มีไดรเวอร์ DirectX 12 สำหรับอุปกรณ์ระดับฟีเจอร์ที่ต่ำกว่า
ไลบรารีสันนิษฐานว่ากำลังสร้างสำหรับ Windows 10 (aka _WIN32_WINNT=0x0A00
) ดังนั้นจึงใช้ XAudio 2.9 และ WIC2 รวมถึง DirectX 12
ชุดเครื่องมือ DirectX สำหรับเสียง, เกมแพด, คีย์บอร์ด, เมาส์ และ SimpleMath เหมือนกันกับเวอร์ชัน DirectX 11
สำหรับคำแนะนำด้านความปลอดภัย โปรดดู GitHub
สำหรับประวัติการเปลี่ยนแปลงทั้งหมด โปรดดูที่ CHANGELOG.md
ในรุ่นเดือนมิถุนายน 2024 พารามิเตอร์ initialState
defaultState สำหรับฟังก์ชัน CreateUploadBuffer
ใน BufferHelpers ถูกเอาออก สำหรับเลเยอร์การตรวจสอบ DirectX 12 สถานะเริ่มต้นที่ถูกต้องเพียงสถานะเดียวสำหรับบัฟเฟอร์การอัปโหลดคือ D3D12_RESOURCE_STATE_GENERIC_READ
ตั้งแต่การเปิดตัวเดือนกุมภาพันธ์ 2023 เป็นต้นไป การใช้คลาส Mouse ของการเคลื่อนไหวของเมาส์แบบสัมพัทธ์ได้รับการอัปเดตเพื่อสะสมการเปลี่ยนแปลงระหว่างการเรียก GetState
ตามค่าเริ่มต้น แต่ละครั้งที่คุณเรียก GetState
เดลตาจะถูกรีเซ็ตซึ่งใช้ได้กับสถานการณ์ที่คุณใช้การเคลื่อนไหวแบบสัมพัทธ์ แต่เรียกเมธอดเพียงครั้งเดียวต่อเฟรมเท่านั้น หากคุณเรียกมันมากกว่าหนึ่งครั้งต่อเฟรม ให้เพิ่มการเรียกที่ชัดเจนไปที่ EndOfInputFrame
เพื่อใช้โมเดลการรีเซ็ตที่ชัดเจนแทน
ในการเปิดตัวเดือนกันยายน 2022 ไลบรารีจะใช้เนมสเปซแบบอินไลน์ C++11 สำหรับประเภทต่างๆ ที่มีชื่อเหมือนกันใน DirectX Tool Kit เวอร์ชัน DirectX 11 และ DirectX 12 ซึ่งให้ชื่อเฉพาะของลิงก์ เช่น DirectX::DX12::SpriteBatch
ที่จะปรากฏในข้อความเอาท์พุตของลิงก์เกอร์ อย่างไรก็ตาม ในกรณีการใช้งานส่วนใหญ่ ไม่จำเป็นต้องเพิ่มการแก้ไขเนมสเปซ DX12
ที่ชัดเจนในโค้ดไคลเอ็นต์
เริ่มตั้งแต่การเปิดตัวเดือนมิถุนายน 2021 ไลบรารีนี้จะสร้าง HLSL shaders ด้วย Shader Model 6 ผ่าน DXC ดูหน้าวิกินี้สำหรับข้อมูลเพิ่มเติม โครงการ Microsoft GDK ใช้ Shader Model 6 เสมอ
เริ่มตั้งแต่การเปิดตัวเดือนมิถุนายน 2020 ไลบรารีนี้ใช้แฟล็กบิตมาสก์ enum ที่พิมพ์ตามคำแนะนำของส่วน มาตรฐาน C++ 17.5.2.1.3 ประเภทบิตมาสก์ สิ่งนี้อาจมีผลกระทบต่อ การเปลี่ยนแปลงอย่างรุนแรง ต่อรหัสลูกค้า:
คุณไม่สามารถส่งผ่าน 0
ตัวอักษรเป็นค่าสถานะของคุณได้ คุณต้องใช้ค่า enum เริ่มต้นที่เหมาะสมแทน: AudioEngine_Default
, SoundEffectInstance_Default
, ModelLoader_Clockwise
, DDS_LOADER_DEFAULT
หรือ WIC_LOADER_DEFAULT
ใช้ประเภท enum แทน DWORD
หากสร้างค่าแฟล็กในเครื่องด้วยการดำเนินการบิตมาสก์ ตัวอย่างเช่น WIC_LOADER_FLAGS flags = WIC_LOADER_DEFAULT; if (...) flags |= WIC_LOADER_FORCE_SRGB;
โปรเจ็กต์ UWP และโปรเจ็กต์เดสก์ท็อป Win10 classic มีการกำหนดค่าสำหรับแพลตฟอร์ม ARM64 การสร้างสิ่งเหล่านี้จำเป็นต้องติดตั้งชุดเครื่องมือ ARM64
สำหรับการพัฒนา ARM64/AArch64 ขอแนะนำให้ใช้คอมไพเลอร์ VS 2022 เหนือชุดเครื่องมือ VS 2019 Windows SDK (26100 หรือใหม่กว่า) เข้ากันไม่ได้กับ VS 2019 สำหรับ Win32 บนการพัฒนา ARM64 โปรดทราบว่าแพลตฟอร์ม ARM32/AArch32 เลิกใช้แล้ว
เมื่อใช้ clang/LLVM สำหรับแพลตฟอร์ม ARM64/AArch64 จำเป็นต้องใช้ Windows 11 SDK (22000) หรือใหม่กว่า
สคริปต์ CompileShaders.cmd
ต้องมีการลงท้ายบรรทัดแบบ Windows (CRLF) หากเปลี่ยนเป็นการสิ้นสุดบรรทัดแบบ Linux (LF) ก็อาจไม่สามารถสร้างเชเดอร์ที่จำเป็นทั้งหมดได้
หากมีคำถาม ให้ลองใช้ Stack Overflow กับแท็ก directxtk หรือ DirectX Discord Server ในช่อง dx12-developers
สำหรับรายงานข้อผิดพลาดและการร้องขอคุณสมบัติ โปรดใช้ปัญหา GitHub สำหรับโปรเจ็กต์นี้
โครงการนี้ยินดีรับการสนับสนุนและข้อเสนอแนะ การบริจาคส่วนใหญ่กำหนดให้คุณยอมรับข้อตกลงใบอนุญาตผู้ร่วมให้ข้อมูล (CLA) โดยประกาศว่าคุณมีสิทธิ์ที่จะให้สิทธิ์แก่เราในการใช้การบริจาคของคุณจริงๆ สำหรับรายละเอียด โปรดไปที่ https://cla.opensource.microsoft.com
เมื่อคุณส่งคำขอดึง บอท CLA จะกำหนดโดยอัตโนมัติว่าคุณจำเป็นต้องจัดเตรียม CLA และตกแต่ง PR อย่างเหมาะสมหรือไม่ (เช่น การตรวจสอบสถานะ ความคิดเห็น) เพียงทำตามคำแนะนำที่ได้รับจากบอท คุณจะต้องทำสิ่งนี้เพียงครั้งเดียวกับ repos ทั้งหมดโดยใช้ CLA ของเรา
ควรส่งการทดสอบคุณสมบัติใหม่เป็นการประชาสัมพันธ์ไปยังพื้นที่เก็บข้อมูลชุดทดสอบ
โครงการนี้ได้นำหลักจรรยาบรรณของ Microsoft Open Source มาใช้ สำหรับข้อมูลเพิ่มเติม โปรดดูคำถามที่พบบ่อยเกี่ยวกับจรรยาบรรณหรือติดต่อ [email protected] หากมีคำถามหรือความคิดเห็นเพิ่มเติม
โครงการนี้อาจมีเครื่องหมายการค้าหรือโลโก้สำหรับโครงการ ผลิตภัณฑ์ หรือบริการ การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft โดยได้รับอนุญาตจะอยู่ภายใต้และต้องปฏิบัติตามแนวทางเครื่องหมายการค้าและแบรนด์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ในเวอร์ชันแก้ไขของโครงการนี้จะต้องไม่ทำให้เกิดความสับสนหรือบ่งบอกถึงการสนับสนุนของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของบุคคลที่สามจะต้องเป็นไปตามนโยบายของบุคคลที่สามเหล่านั้น
ชุดเครื่องมือ DirectX สำหรับ DirectX 11 เป็นผลงานของ Shawn Hargreaves และ Chuck Walbourn โดยได้รับการสนับสนุนจาก Aaron Rodriguez Hernandez และ Dani Roman
ชุดเครื่องมือ DirectX สำหรับ DirectX 12 เป็นผลงานของ Pete Lewis, Justin Saunders และ Chuck Walbourn ซึ่งมีพื้นฐานมาจากชุดเครื่องมือ DirectX สำหรับ DirectX 11
ขอขอบคุณ Shanon Drone สำหรับรูปแบบไฟล์ SDKMESH
ขอขอบคุณ Adrian Tsai สำหรับการนำ geodesic sphere ไปใช้
ขอขอบคุณ Garrett Serack สำหรับความช่วยเหลือในการสร้างแพ็คเกจ NuGet สำหรับ DirectX Tool Kit
ขอขอบคุณ Pete Lewis และ Justin Saunders สำหรับการนำ Normal-Mapped และ PBR Shaders ไปใช้
ขอขอบคุณ Travis Johnson สำหรับการรองรับ mGPU
ขอขอบคุณ Roberto Sonnino สำหรับความช่วยเหลือเกี่ยวกับรูปแบบ CMO และแอนิเมชัน VS Starter Kit
ขอขอบคุณ Richie Meyer สำหรับการสนับสนุนหน่วยความจำแบบกำหนดเองของ Xbox PIX และการสนับสนุนกิจกรรมการติดตามการจัดสรรประเภท
ขอขอบคุณ Andrew Farrier และ Scott Matloff สำหรับความช่วยเหลืออย่างต่อเนื่องในการตรวจสอบโค้ด