สุดยอด C ++ Math Library สำหรับ Game Engine? [ปิด]


18

ฉันกำลังมองหา C-math คณิตศาสตร์ห้องสมุด opensource ที่รวดเร็วสำหรับเครื่องมือเกมของฉันด้วยคุณสมบัติดังต่อไปนี้:

  • เร็ว (sse?)
  • เวกเตอร์
  • การฝึกอบรม
  • quaternions

เหมาะสำหรับทั้ง OpenGL และ Directx


1
ฉันไม่เห็นสาเหตุที่ห้องสมุดคณิตศาสตร์จะขึ้นอยู่กับกราฟิค API : P
The Duck Communist

3
afaik opengl ใช้เมทริกซ์เมเจอร์คอลัมน์และเมเจอร์แถว directx มันจะดีถ้าห้องสมุดรองรับทั้งคู่
pragmascript

1
ใน GL คุณสามารถตั้งค่าเมทริกซ์ที่ถูกเปลี่ยนและใน DX คุณสามารถระบุเค้าโครงในเฉดสี การปรับด้วยตนเองนั้นไม่ใช่เรื่องใหญ่
Anteru

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

คำตอบ:


11

XNA Math อาจเหมาะสำหรับคุณ มันเป็นส่วนหัวเท่านั้น C ++ ห้องสมุดคณิตศาสตร์ที่มีการกระจายกับ DirectX SDK ล่าสุดและใช้ SSE อินทริน ฉันไม่สามารถพูดเกี่ยวกับการแสดงได้มากนัก แต่จากสิ่งที่ฉันอ่านเกี่ยวกับมันดูเหมือนว่าจะค่อนข้างดี

อ้างอิงคณิตศาสตร์ XNA

คู่มือการเขียนโปรแกรม XNA Math

ดาวน์โหลด DX SDK

แก้ไข: ฉันยังไม่แน่ใจเกี่ยวกับเงื่อนไขการออกใบอนุญาต DX SDK Eula ระบุว่า "รหัสที่แจกจ่ายได้" อาจไม่ใช่

"ทำงานบนแพลตฟอร์มอื่นนอกเหนือจากแพลตฟอร์ม Windows, Xbox และ Windows Mobile;"

ฉันไม่แน่ใจว่าทั้งหมดนี้ใช้กับคณิตศาสตร์ xna ได้เพียงตัวอย่างและรหัสยูทิลิตี้ถูกทำเครื่องหมายอย่างชัดเจนว่า "รหัสที่แจกจ่ายได้"


ฉันไม่ทราบเลยว่าข้อกำหนดเกี่ยวกับสิทธิ์การใช้งานของ XNA เช่นจะใช้ในระบบปฏิบัติการที่ไม่ใช่ของไมโครซอฟต์หรือไม่ ที่กล่าวว่าฉันเคยใช้ห้องสมุดคณิตศาสตร์ d3dx (ซึ่งค่อนข้างเหมือนกัน) ในโครงการการแสดงผลซอฟต์แวร์ ณ จุดหนึ่งดังนั้นจึงไม่ขึ้นอยู่กับ directx ไม่ว่าด้วยวิธีใด
Jari Komppa

1
ชี้แจง: คณิตศาสตร์ d3dx น่าจะเป็นสิ่งเดียวกันในเงื่อนไขการอนุญาต - การใช้งานอย่างชาญฉลาดมันแตกต่างกัน ตามเอกสาร SDK ของคณิตศาสตร์ d3dx อาศัยการอินไลน์และการส่งผ่านตัวชี้อย่างมากขณะที่ xnamath อาศัย SIMD และอินทริน
Koarl

14

เราใช้คณิตศาสตร์ OpenGL

แม้ว่าชื่อจะบอกเป็นนัยสำหรับ OpenGL แต่ฉันก็ไม่เห็นเหตุผลว่าทำไมมันไม่สามารถใช้กับ DirectX ได้ มันเป็นส่วนหัวของไลบรารีเท่านั้นใช้งานง่ายและมีการปรับปรุงอย่างมาก

ลองดูสิ


2
ใช้สิทธิ์การใช้งาน MIT
Jari Komppa

5

ลองEigen - รวดเร็วเทมเพลตนิพจน์เวกเตอร์ใช้งานง่ายและได้รับอนุญาตภายใต้MPL2



1

คลัง vectormath ของ Sony ซึ่งใช้เป็นส่วนหนึ่งของ Bullet Physicsตรงตามความต้องการของคุณทั้งหมด งานบางอย่างเกี่ยวข้องกับการแยกมันออกจากกระสุน แต่ไม่มีอะไรร้ายแรง - มันไม่ได้ขึ้นอยู่กับกระสุนเพียงแค่ว่าไม่มีใครบรรจุมันอย่างเป็นทางการนอกเหนือจากมัน

เวอร์ชันปัจจุบันในแผนผังแสดงหัวข้อย่อยรองรับการเพิ่มประสิทธิภาพ SSE และมีอินเตอร์เฟส C ++

เวอร์ชั่นเก่ากว่า (อาจไม่ได้รับการสนับสนุนในขณะนี้) รองรับรูปแบบ SOA และอินเตอร์เฟส C บริสุทธิ์


1
ดูเหมือนว่าใบอนุญาต zlib / libpng
Jari Komppa

ฉันสนใจสิ่งนี้ คุณบอกว่างานบางอย่างเกี่ยวข้องกับการแยกคุณมีลิงค์หรือข้อมูลอื่น ๆ เกี่ยวกับงานประเภทใดบ้าง

0

หรือสำหรับความเร็วhttp://sourceforge.net/projects/simdx86/


3
LGPL ดังนั้นมันจึงไร้ประโยชน์ ไลบรารีคณิตศาสตร์มีไว้เพื่อให้ถูกแทรกไว้ดังนั้นนี่จึงเป็นการบังคับให้โครงการของคุณเป็น (L) GPL เช่นกัน
Jari Komppa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.