Лучшая математическая библиотека C ++ для игрового движка? [закрыто]


18

Я ищу быструю математическую библиотеку C ++ с открытым исходным кодом для моего игрового движка со следующими функциями:

  • быстро (сс?)
  • векторы
  • матрицы
  • кватернионы

подходит как для opengl, так и для directx


1
Я не понимаю, почему математическая библиотека все равно будет зависеть от графического API. : P
Коммунистическая Утка

3
afaik opengl использует основные матрицы столбцов и основные строки DirectX. так что было бы неплохо, если бы библиотека поддерживала оба
pragmascript

1
В GL вы всегда можете установить транспонированную матрицу, а в DX вы можете указать макет в шейдерах. Ручная настройка также не имеет большого значения.
Антеру

1
Платформа здесь важна, потому что довольно просто создать математическую библиотеку, которая прекрасно работает на ПК, но ужасна на консоли или наоборот.
Kylotan

Ответы:


11

XNA Math может быть для вас. Это математическая библиотека C ++ только для заголовков, которая распространяется с последним пакетом DirectX SDK и использует встроенные функции SSE. Я не могу много говорить о его производительности, но из того, что я читал об этом, он кажется довольно приличным.

XNA Math Reference

Руководство по программированию XNA Math

DX SDK скачать

РЕДАКТИРОВАТЬ: Я также не уверен в условиях лицензирования. DX SDK Eula заявляет, что «Вторично распространяемый код» не может быть

«работать на платформе, отличной от платформ Windows, Xbox и Windows Mobile»;

Я не совсем уверен, применимо ли это к математике xna, поскольку только пример кода и утилиты явно помечен как «Вторично распространяемый код».


Я не имею ни малейшего представления об условиях лицензирования XNA, например, можно ли их использовать, например, в операционных системах других производителей. Тем не менее, я однажды использовал математическую библиотеку d3dx (что очень похоже) в проекте программного рендеринга, так что он никоим образом не зависит от DirectX.
Яри ​​Комппа

1
Пояснение: математика d3dx, вероятно, почти то же самое с точки зрения лицензирования - хотя с точки зрения реализации она отличается. Согласно документации SDK, математика d3dx в значительной степени зависит от встраивания и передачи по указателю, тогда как xnamath зависит от SIMD и встроенных функций.
Koarl

14

Мы используем OpenGL Математика

Хотя название подразумевает, что это только для OpenGL, я не вижу причин, по которым он не будет работать для DirectX. Это библиотека только для заголовков, простая в использовании и очень активно обновляемая.

Проверьте это.


2
использует лицензию MIT
Jari Komppa

5

Попробуйте Eigen - быстро, шаблоны выражений, векторизация, проста в использовании и лицензирована в соответствии с MPL2



1

Библиотека векторной графики Sony, используемая как часть Bullet Physics , отвечает всем вашим требованиям. Требуется некоторая работа, чтобы отделить его от Bullet, но ничего серьезного - это не зависит от пули, просто никто никогда официально не упаковывал ее отдельно от нее.

Версия в настоящее время в дереве маркеров поддерживает оптимизацию SSE и имеет интерфейс C ++.

Более старая версия (возможно, теперь не поддерживаемая) также поддерживает форматы SOA и чистый интерфейс C.


1
Похоже на лицензию zlib / libpng.
Яри ​​Комппа

Я заинтересован в этом. Вы упомянули, что какая-то работа связана с разделением, есть ли у вас какие-либо ссылки или другая информация о том, какую работу это влечет за собой?

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.