ขึ้นอยู่กับสิ่งที่คุณทำ หากคุณใช้ 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