Краща математика 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.