Краща математика C ++ для ігрового двигуна? [зачинено]


18

Я шукаю швидку математику-бібліотеку C ++ для мого ігрового двигуна з такими можливостями:

  • швидкий (sse?)
  • вектори
  • матриці
  • кватерніони

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


1
Я не бачу, чому математична бібліотека так чи інакше залежатиме від графічного API. : P
Качка комуністична

3
afaik opengl використовує основні матриці стовпців та магістраль рядків directx. тож було б добре, якби бібліотека підтримувала обидва
pragmascript

1
У GL ви завжди можете встановити транспоновану матрицю, а в DX ви можете вказати макет у шейдерах. Налаштування вручну - теж не велика справа.
Anteru

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

Відповіді:


11

XNA Math може бути для вас. Це лише математична бібліотека C ++, яка розповсюджується за допомогою останнього SDD DirectX і використовує SSE. Я не можу багато говорити про його ефективність, але з того, що я читав про нього, це здається досить пристойним.

XNA Математична довідка

Посібник з програмування XNA Math

DX SDK завантажити

EDIT: Я також не впевнений в умовах ліцензування. У DX SDK Eula зазначено, що "Розподільний код" може бути не

"працювати на інших платформах, крім платформ Windows, Xbox та Windows Mobile;"

Я не зовсім впевнений, чи застосовується це до математики xna, оскільки тільки зразок та корисний код явно позначені як "Розподільний код"


Я ні про що не маю уявлення про умови ліцензування XNA, наприклад, чи нормально, наприклад, використовувати їх у операційних системах, які не є мікрософт. Це означає, що я використовував математичну бібліотеку d3dx (що майже однакове) в проекті рендерингу програмного забезпечення в один момент, тому це не залежить від directx жодними засобами.
Jari Komppa

1
Уточнення: математика d3dx - це, мабуть, майже те саме, що стосується ліцензійних умов - хоча це не залежно від реалізації. Відповідно до документації SDK, математика d3dx в значній мірі покладається на вбудовану лінію та проходить повз покажчик, тоді як xnamath покладається на SIMD та внутрішні символи.
Коарл

14

Ми використовуємо математику OpenGL

Навіть незважаючи на те, що назва означає, що це просто для OpenGL, я не бачу причин, щоб він не працював для DirectX. Це лише бібліотека із заголовками, проста у використанні та дуже активно оновлюється.

Перевір.


2
використовує ліцензію MIT
Jari Komppa

5

Спробуйте Eigen - швидкі шаблони виразів, векторизовані, прості у використанні та ліцензовані відповідно до MPL2



1

Бібліотека вектораматеріалів Sony, яка використовується як частина Bullet Physics , відповідає всім вашим вимогам. Деякі роботи пов'язані з відокремленням від Bullet, але нічого серйозного - це не залежить від кулі, тільки те, що ніхто ніколи офіційно не пакував її.

Наразі версія дерева в кулі підтримує оптимізацію SSE та має інтерфейс C ++.

Старіша версія (можливо, зараз не підтримується) також підтримує формати SOA та чистий C інтерфейс.


1
Схоже, ліцензія zlib / libpng.
Jari Komppa

Мене це цікавить. Ви згадали, що якась робота пов'язана з розділенням, чи є у вас посилання чи інша інформація про те, яка робота передбачає?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.