มีข้อได้เปรียบในการใช้ DX10 / 11 สำหรับเกม 2D หรือไม่?


10

ฉันไม่คุ้นเคยกับชุดคุณลักษณะที่แนะนำโดยฮาร์ดแวร์ระดับ DX10 / 11 ฉันคุ้นเคยกับขั้นตอนใหม่ที่เพิ่มเข้ากับไปป์ไลน์กราฟิกที่ตั้งโปรแกรมได้เช่น geometry shader, compute shader และขั้นตอน tessellation ใหม่ ฉันไม่เห็นว่าสิ่งเหล่านี้สร้างความแตกต่างให้กับเกม 2D ได้อย่างไร

มีเหตุผลที่น่าสนใจไหมที่จะเปลี่ยนไปใช้ DX10 / 11 (หรือ OpenGL ที่เทียบเท่า) สำหรับเกม 2D หรือมันจะฉลาดกว่าที่จะยึดติดกับ DX9 โดยพิจารณาว่าส่วนแบ่งที่สำคัญของตลาดยังคงใช้เทคโนโลยีเก่า (เช่น กุมภาพันธ์ 2555 การสำรวจบน Steam แสดงรายการผู้ใช้ประมาณ 17% ที่ยังใช้ Windows XP อยู่ใช่ไหม?

คำตอบ:


5

ขึ้นอยู่กับสิ่งที่คุณทำ หากคุณใช้ Direct3D เหตุผลเดียวในการเปลี่ยนคือการเข้าถึงคุณสมบัติฮาร์ดแวร์ที่คุณไม่สามารถทำได้

สำหรับเกม 2D มันเป็นไปได้ในทางทฤษฎีว่าคุณสมบัติบางอย่างที่คุณอาจสนใจ ตัวอย่างเช่น OpenCL หรือ DirectCompute Civilization V ได้รับประโยชน์บางอย่างจาก DirectCompute สำหรับการคลายการบีบอัดพื้นผิว สิ่งนี้จะช่วยลดเวลาในการโหลดได้อย่างมากเพราะมันจะต้องโหลดข้อมูลที่ถูกบีบอัดเท่านั้น และเกม 2D มักมีภาพจำนวนมาก หากความเร็วในการโหลดเป็นปัญหานี่อาจช่วยได้

OpneCL ควรมีอยู่ในฮาร์ดแวร์ GeForce 8xxx ทั้งหมดขึ้นไป บน ATI มีให้ใน HD 4xxx และฮาร์ดแวร์ที่ดีกว่า

ฉันจะบอกว่าคุณสมบัติที่ยิ่งใหญ่ที่สุดที่คุณอาจใช้ใน DX11 คือความสามารถในการอ่านและเขียนภาพในเฉดสีโดยพลการมากขึ้น ซึ่งอาจมีประโยชน์สำหรับเอฟเฟกต์พิเศษบางอย่าง ฉันไม่สามารถนึกถึงอะไรได้ในตอนนี้ ... ซึ่งน่าจะบอกคุณได้ว่ามันสำคัญขนาดไหน

โดยทั่วไปฉันจะบอกว่าถ้าคุณใช้ D3D คุณอาจจะไม่ได้รับมาก และหากคุณยังไม่เข้าใจว่าคุณสมบัติใหม่คืออะไรและต้องการใช้คุณสมบัติเหล่านี้ในเกมของคุณคุณแทบจะไม่ได้รับอะไรเลย ส่วนใหญ่จะมีความซับซ้อนมากขึ้น

OpenGL แตกต่างกันด้วยเหตุผลหลักประการหนึ่ง OpenGL 2.1 (มากขึ้นหรือน้อยเทียบเท่ากับ d3d9) ครับเป็น API OpenGL 3.3 (รวมถึงส่วนขยายล่าสุดที่ทำงานบนฮาร์ดแวร์ 3.3) ปรับปรุง API จำนวนมาก ตำแหน่งแอตทริบิวต์อย่างชัดเจนการแยกโปรแกรม shader ทุกอย่างในชุดแรเงาภาษา 420และอื่น ๆ

บางส่วนของแนวหินเหล่านี้ทำงานได้ดีในรูปแบบต่อจาก 2.1 บางคน ... ไม่ ฉันยังไม่แน่ใจว่าจะใช้ตำแหน่งแอตทริบิวต์ที่ชัดเจนกับattributeการประกาศ (ก่อนหน้าinไวยากรณ์ปัจจุบัน) หรือไม่ แพ็คภาษาการแรเงา 420 บอกว่ามันใช้ไม่ได้กับรุ่น GLSL ก่อน 1.30 (aka: OpenGL 3.0)

ไม่ได้หมายความว่า GL 2.1 นั้นใช้ไม่ได้ แน่นอนมันใช้งานได้และให้บริการได้ไม่สนุก แม้ว่าบางไดรเวอร์ที่คุณจะพบว่าใช้ไม่ได้ ฮาร์ดแวร์ DX9 ของ ATI ไม่ได้รับการสนับสนุนอีกต่อไปดังนั้นไดรเวอร์เหล่านั้นจึงไม่น่าเชื่อถือ และ Intel ไม่เคยสนใจ OpenGL ดังนั้นการใช้ shaders บนฮาร์ดแวร์ของพวกเขาจึงเป็นสิ่งที่น่ายินดี

แต่โดยส่วนตัวถ้าฐานผู้ใช้ของคุณอนุญาตฉันจะผลักไปที่ GL 3.3 หากคุณใช้ OpenGL ถ้าไม่คุณจะต้องจัดการกับปัญหา 2.1


5

มีบางสิ่งที่ฉันคิดว่าคุณควรพิจารณา:

  • หากคุณมีเอ็นจิ้น D3D9 ที่ผ่านการทดสอบเป็นอย่างดีอาจไม่คุ้มค่ากับการย้ายไปยัง D3D11 หากคุณจะไม่ใช้คุณสมบัติใหม่ เมื่อเริ่มต้นจากศูนย์ D3D11 น่าดึงดูดยิ่งกว่า

  • วันที่วางจำหน่ายเกมของคุณจะเป็นอย่างไร XP จะไม่ได้รับการสนับสนุนในเวลาเพียงสองปีและหากคุณดูข้อมูลในอดีตที่ฐานการติดตั้ง XP ลดลงอย่างรวดเร็ว (~ 1% / เดือนสำหรับ Steam)

  • พิจารณาสัดส่วนของผู้ใช้ XP 17% ที่มีพีซีที่ตรงตามข้อกำหนดขั้นต่ำสำหรับเกมของคุณภายใต้ D3D9 ยิ่งสูงเท่าไรก็ยิ่งคุ้มค่า

  • DX10 ส่วนใหญ่ไม่มีจุดหมายที่จะใช้สำหรับการพัฒนาใหม่ DX11 ทำงานบนระบบปฏิบัติการและฮาร์ดแวร์เดียวกัน (ผ่านระดับคุณสมบัติ)

  • DX11 รองรับซอฟต์แวร์ renderer (WARP) เป็นอุปกรณ์สำรองซึ่งสามารถทำได้เร็วพอที่จะเรียกใช้เกมที่มีความต้องการ GPU ต่ำ

  • Native DX9 รองรับคุณสมบัติมากกว่า D3D11 ทำเมื่อใช้คุณสมบัติระดับ D3D9 ใด ๆ โชคดีที่ฮาร์ดแวร์ DX9 ในพีซีที่ใช้ DX10 นั้นหายาก

  • ฮาร์ดแวร์ DX10 / 11 มีความสามารถที่แตกต่างกันน้อยมากดังนั้นหากคุณใช้ฮาร์ดแวร์ DX9 ใช้ WARP คุณไม่จำเป็นต้องกังวลเกี่ยวกับข้อ จำกัด ที่น่าอึดอัดใจกับสิ่งต่าง ๆ เช่นพื้นผิวที่ไม่ใช้กำลังสองหรือการแมปเท็กเซลพิกเซลที่ไม่สะดวก

  • หากเกมของคุณเป็นเกมที่ต้องใช้ฮาร์ดแวร์มาก DX11 มีเทคนิคพิเศษเล็กน้อยเพื่อเพิ่มประสิทธิภาพ หลายเธรดรหัสการวาดตัวอย่างเช่น


ฉันสับสนเล็กน้อยเกี่ยวกับคุณสมบัติระดับ ถ้าฉันพัฒนาโดยใช้ DX11 แต่กำหนดเป้าหมายระดับคุณลักษณะ DX9 ฉันเข้าใจว่ามันจะทำงานบนฮาร์ดแวร์ DX9 แต่มันจะยังคงต้องการรันไทม์ DX11 เช่นนั้นจะทำงานบน Windows XP หรือไม่
David Gouveia

DX11 ไม่ทำงานกับ XP เลย สิ่งที่คุณสมบัติระดับทำคือให้คุณใช้ DX11 API กับฮาร์ดแวร์รุ่นเก่า ลองดูmsdn.microsoft.com/en-us/library/ff476876%28v=vs.85%29.aspxเพื่อดูรายละเอียดว่าแต่ละฟีเจอร์ให้คุณทำอะไร
Adam

1

เหตุผลทางเรขาคณิตเพียงอย่างเดียวคือการใช้ D3D10 / 11 หากคุณวางแผนที่จะมีอนุภาคหรือสไปรต์จำนวนมาก

DirectCompute ยังสามารถใช้เพื่อประโยชน์ด้านความเร็วที่ดี

โดยส่วนตัวแล้วการมีเครื่องมือที่สะอาดกว่าและ nicer API ของ D3D10 / 11 นั้นเพียงพอแล้วที่จะไม่สัมผัส D3D9 หรือ OpenGL อีกครั้งสำหรับโครงการที่ใช้ Windows เท่านั้น แม้ว่าตามความเป็นจริงแล้วความจำเป็นในการกำหนดเป้าหมายอุปกรณ์มือถือด้วย GL | ES และฝูงชน WinXP ที่มีขนาดใหญ่ยังคงมีความจำเป็นต้องหลีกเลี่ยง D3D10 / 11 และติดกับ D3D9 หรือ OpenGL

โปรดทราบว่าการไปตามเส้นทาง OpenGL ช่วยให้คุณได้รับรูปทรงเรขาคณิต, OpenCL และคุณสมบัติฮาร์ดแวร์ใหม่ ๆ แม้ใน WinXP

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.