Najlepsza biblioteka matematyczna C ++ dla Game Engine? [Zamknięte]


18

Szukam szybkiej biblioteki matematycznej C ++ dla mojego silnika gry z następującymi funkcjami:

  • szybki (sse?)
  • wektory
  • matryce
  • czwartorzędy

odpowiedni zarówno dla opengl, jak i directx


1
I tak nie rozumiem, dlaczego biblioteka matematyczna byłaby zależna od graficznego interfejsu API. : P
Kaczka komunistyczna

3
afaik opengl używa głównych macierzy kolumn i głównych wierszy directx. więc byłoby miło, gdyby biblioteka obsługiwała oba
pragmascript

1
W GL zawsze można ustawić transponowaną matrycę, aw DX można określić układ w modułach cieniujących. Ręczne dostosowywanie również nie jest wielkim problemem.
Anteru

1
Platforma jest tutaj ważna, ponieważ dość łatwo jest stworzyć bibliotekę matematyczną, która działa świetnie na PC, ale okropnie na konsoli i odwrotnie.
Kylotan

Odpowiedzi:


11

XNA Math może być dla Ciebie. Jest to biblioteka matematyczna C ++ zawierająca tylko nagłówki, która jest dystrybuowana z najnowszym zestawem SDK DirectX i wykorzystuje elementy wewnętrzne SSE. Nie mogę dużo mówić o jego wydajności, ale z tego, co o nim czytałem, wydaje się całkiem przyzwoity.

XNA Math Reference

Przewodnik po programowaniu XNA Math

Pobieranie DX SDK

EDYCJA: Nie jestem również pewien warunków licencyjnych. DX SDK Eula stwierdza, że ​​„Kod Dystrybucyjny” może nie być

„działa na platformie innej niż Windows, Xbox i Windows Mobile;”

Nie jestem całkowicie pewien, czy dotyczy to matematyki xna, ponieważ tylko przykładowy i użyteczny kod jest wyraźnie oznaczony jako „Kod dystrybucyjny”


Nie mam pojęcia o warunkach licencyjnych XNA, np. Czy można je stosować na przykład w systemach operacyjnych innych niż Microsoft. To powiedziawszy, użyłem biblioteki matematycznej d3dx (która jest prawie taka sama) w projekcie renderującym oprogramowanie w pewnym momencie, więc nie jest w żaden sposób zależna od directx.
Jari Komppa,

1
Wyjaśnienie: matematyka d3dx jest prawdopodobnie podobna do warunków licencyjnych - pod względem implementacji jest jednak inna. Zgodnie z dokumentacją SDK matematyka d3dx w dużym stopniu opiera się na wstawianiu i przekazywaniu wskaźnika, podczas gdy xnamath opiera się na SIMD i wewnętrznych.
Koarl

14

Używamy matematyki OpenGL

Mimo że nazwa sugeruje, że jest to tylko OpenGL, nie widzę powodu, dla którego nie miałby działać w DirectX. Jest to biblioteka tylko z nagłówkami, łatwa w użyciu i bardzo aktywnie aktualizowana.

Sprawdź to.


2
korzysta z licencji MIT
Jari Komppa

5

Wypróbuj Eigen - szybkie szablony ekspresji, wektoryzowane, łatwe w użyciu i licencjonowane na licencji MPL2



1

Biblioteka vectormath firmy Sony, używana jako część Bullet Physics , spełnia wszystkie Twoje wymagania. Oddzielenie go od Bullet wymaga pewnej pracy, ale nic poważnego - nie zależy to od kuli, tyle że nikt nigdy nie zapakował jej oficjalnie poza nią.

Wersja obecnie w drzewie punktorów obsługuje optymalizacje SSE i ma interfejs C ++.

Starsza wersja (prawdopodobnie teraz nieobsługiwana) obsługuje również formaty SOA i czysty interfejs C.


1
Wydaje się, że jest to licencja zlib / libpng.
Jari Komppa,

Jestem zainteresowany tym. Wspomniałeś, że część pracy wiąże się z separacją, czy masz jakieś linki lub inne informacje na temat tego, jaki rodzaj pracy się z tym wiąże?

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.