Thư viện toán học C ++ tốt nhất cho Game Engine? [đóng cửa]


18

Tôi đang tìm kiếm một thư viện toán học C ++ mã nguồn mở nhanh cho công cụ trò chơi của mình với các tính năng sau:

  • nhanh (sse?)
  • vectơ
  • ma trận
  • tứ phương

phù hợp cho cả opengl và directx


1
Tôi không thấy lý do tại sao một thư viện toán học sẽ phụ thuộc vào API đồ họa. : P
Vịt Cộng sản

3
afaik opengl sử dụng ma trận chính cột và hàng chính directx. vì vậy sẽ thật tuyệt nếu thư viện hỗ trợ cả hai
pragmascript 18/03

1
Trong GL, bạn luôn có thể đặt ma trận chuyển tiếp và trong DX, bạn có thể chỉ định bố cục trong các shader. Điều chỉnh bằng tay cũng không phải là vấn đề lớn.
Anteru

1
Nền tảng rất quan trọng ở đây, bởi vì thật dễ dàng để tạo một thư viện toán học hoạt động tốt trên PC nhưng khủng khiếp trên bảng điều khiển hoặc ngược lại.
Kylotan

Câu trả lời:


11

XNA Math có thể dành cho bạn. Đây là thư viện toán học C ++ duy nhất được phân phối với DirectX SDK mới nhất và sử dụng nội tại SSE. Tôi không thể nói nhiều về hiệu suất của nó nhưng từ những gì tôi đọc về nó, nó có vẻ khá tốt.

Tài liệu tham khảo toán học XNA

Hướng dẫn lập trình toán học XNA

Tải xuống DX SDK

EDIT: Tôi cũng không chắc chắn về các điều khoản cấp phép. DX SDK Eula nói rằng "Mã phân phối" có thể không phải là

"chạy trên nền tảng khác với nền tảng Windows, Xbox và Windows Mobile;"

Tôi không hoàn toàn chắc chắn liệu điều này có áp dụng cho toán học xna hay không khi chỉ có mẫu mã và mã tiện ích được đánh dấu rõ ràng là "Mã phân phối"


Tôi không biết bất cứ điều gì về các điều khoản cấp phép của XNA, ví dụ, liệu có ổn không khi sử dụng chúng trong các hệ điều hành không phải microsoft. Điều đó nói rằng, tôi đã sử dụng thư viện toán học d3dx (gần giống như vậy) trong một dự án kết xuất phần mềm tại một thời điểm, vì vậy nó không phụ thuộc vào directx trong bất kỳ phương tiện nào.
Jari Komppa

1
Làm rõ: toán học d3dx có lẽ khá giống với các điều khoản cấp phép - mặc dù thực thi nó khác. Theo tài liệu SDK, toán học d3dx phụ thuộc rất nhiều vào nội tuyến và chuyển qua con trỏ trong khi xnamath phụ thuộc vào SIMD và nội tại.
Koarl

14

Chúng tôi sử dụng Toán học OpenGL

Mặc dù cái tên ngụ ý nó chỉ dành cho OpenGL nhưng tôi thấy không có lý do gì nó không hoạt động với DirectX. Đây là một thư viện chỉ tiêu đề, dễ sử dụng và được cập nhật rất tích cực.

Kiểm tra nó ra.


2
sử dụng giấy phép MIT
Jari Komppa

5

Hãy thử Eigen - nhanh, các mẫu biểu thức, được vector hóa, dễ sử dụng và được cấp phép theo MPL2



1

Thư viện vectormath của Sony, được sử dụng như một phần của Bullet Vật lý , đáp ứng tất cả các yêu cầu của bạn. Một số công việc liên quan đến việc tách nó ra khỏi Bullet, nhưng không có gì nghiêm trọng - nó không phụ thuộc vào đạn, chỉ là không ai từng đóng gói nó chính thức ngoài nó.

Phiên bản hiện tại trong cây đạn hỗ trợ tối ưu hóa SSE và có giao diện C ++.

Một phiên bản cũ hơn (có thể hiện không được hỗ trợ) cũng hỗ trợ các định dạng SOA và giao diện C thuần túy.


1
Có vẻ như giấy phép zlib / libpng.
Jari Komppa

Tôi quan tâm đến điều này. Bạn đã đề cập rằng một số công việc có liên quan đến sự tách biệt, bạn có bất kỳ liên kết hoặc thông tin nào khác về loại công việc đòi hỏi không?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.