The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Google представил MathFu 1.0, математическую библиотеку для разработчиков игр

13.11.2014 22:57

Компания Google объявила о выпуске MathFu 1.0, открытой библиотеки с реализацией математических функций, востребованных в игровых приложениях. Библиотека предоставляет набор C++ классов для манипуляции с геометрическими данными с использованием векторов, матриц и кватернионов.

С практической точки зрения данные функции можно использовать для выполнения геометрических расчётов для графических библиотек или для вычислений, необходимых при формировании анимации или симулировании физических эффектов. Библиотека написана на языке C++ и использует инструкции SIMD для увеличения производительности. Работа библиотеки протестирована в Android, Linux, OS X и Windows.

  1. Главная ссылка к новости (http://googledevelopers.blogsp...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/41056-mathfu
Ключевые слова: mathfu, game
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (26) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ананим (?), 23:07, 13/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Под лицензией апач 2.
     
  • 1.2, Аноним (-), 23:19, 13/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Есть Eigen ( http://eigen.tuxfamily.org/index.php?title=Main_Page ) для матричных рассчётов, поворотов, векторов и т.п.  или GLM. - это чисто для математики.

    Есть Box2D, и много чего подобно, - чисто для физики.

    Ничего из описанного пока не использовал, но присматриваюсь к Eigen.

    Вопрос к знатокам - зачем комбайн MathFu? Кто пробовал? Как по сравнению с Eigen? (Там тоже декларируются CPU-оптимизации)

     
     
  • 2.3, Аноним (-), 23:24, 13/11/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Всё это хрень, матрицы давно пора считать на GPU
     
     
  • 3.6, Аноним (-), 23:50, 13/11/2014 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Для перещения объекта в пространстве задать матрицу [4 x 4] и перемножить её на другую [4 x 4], думаю, не дорогая операция.

    На шэйдерах, да, быстрей, но если итоговая матрица нужна - то её не "достанешь" из шэйдеров.

    А если имелось в виду использование open-cl, то расходы на пересылку туда-сюда, могут и не покрыть выигрыша в скорости.

     
     
  • 4.11, Аноним (-), 02:14, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Разработчикам игр, на которых ориентирована библиотека, согласно новости, не надо итоговую доставать из видеокарты. Разработчикам игр надо загрузить в видеокарту модели, шейдеры и получить картинку на экране.
     
     
  • 5.16, Ordu (ok), 04:47, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +6 +/
    У вас сильно идеализированное представление о геймдеве. Вы путаете задачу рендеринга с геймдевом вообще.

    Часть геометрии неизбежно обсчитывается на процессоре. Весь "мир" в видекарту грузить глупо, в идеале туда надо грузить только то, что попадает в поле зрения камеры. Обратные преобразования координат -- из экранных в "мировые" -- это тоже можно делать средствами видокарты/opengl, но иногда это проще сделать на процессоре, перемножив несколько матриц, обратив результат и получив таким образом "преобразователь" экранных координат в мировые на процессоре.

    Кроме того, коллизии и прочие элементы "физики" обсчитывать можно где угодно, но результаты нужны на стороне CPU. И вот это уже не параллелится так хорошо как отрисовка, особенно в силу того что многие данные "кешируются" с предыдущих итераций, и на каждой итерации обновляются, что приводит к тому, что обновение этих данных может свестись к пересчёту по формуле и сохранению нового результата, или к нескольким итерациям пересчётов по формулам для разных объектов с сохранением нескольких новых результатов, или к изменению структур отображающих взаимное расположение объектов.

     
     
  • 6.25, Аноним (-), 13:58, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > в идеале туда надо грузить только то, что попадает в поле
    > зрения камеры.

    В идеале в современную видеокарту надо грузить все что хорошо считается пачкой SIMD-образных ALUшек. Хоть физику частиц (реалистичный дым/туман/эффекты/...) и чего там еще - нормально ляжет на архитектуру современных GPU и будет в *десятки* раз быстрее системного проца.

    > на процессоре, перемножив несколько матриц, обратив результат и получив таким образом
    > "преобразователь" экранных координат в мировые на процессоре.

    Современная видеокарта - это прежде всего крутая SIMD-образная числодробилка с уймой вычислительных элементов и убер-скоростной памятью к которой очень быстрый последовательный доступ (современные могут под 200Гб/сек и более, до чего обычному DDR3, даже трехканальному как у i7 - как пехом до пекина).

    > результаты нужны на стороне CPU.

    Тут как бы вопрос в объеме вычислений. Все что можно считать параллельно - GPU посчитает в ...цать раз быстрее. Для чего он собственно и нужен. И GPU нынче как раз стараются сделать максимально generic, перейдя к унифицированным вычислениям. На них можно вообще неграфические вычисления гонять нынче по этому поводу. Массиву числокрушилок все-равно что дробить.

     
     
  • 7.29, Ordu (ok), 01:37, 15/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Тут как бы вопрос в объеме вычислений. Все что можно считать параллельно
    > - GPU посчитает в ...цать раз быстрее. Для чего он собственно
    > и нужен. И GPU нынче как раз стараются сделать максимально generic,
    > перейдя к унифицированным вычислениям. На них можно вообще неграфические вычисления гонять
    > нынче по этому поводу. Массиву числокрушилок все-равно что дробить.

    Какие интересные вещи вы рассказываете. Это вы в википедии подчерпнули в статье про GPU, или базируетесь на своём собственном опыте реализации 3d-движка/игрули? Если второе, то давайте лучше ссылку сюда: мне было бы интересно посмотреть, как у вас там всё сделано. Если же первое, то примите во внимание, что википедию читаете не только вы, всё что написано в педивикии -- это общеизвестные факты, и озвучивать их повторно нет никакой нужды.

     
     
  • 8.31, Аноним (-), 07:23, 15/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это чуть с иного бока - смотрение на эволюцию архитектур GPU и изучение что они ... большой текст свёрнут, показать
     
     
  • 9.32, Ordu (ok), 08:13, 15/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Короче вы нихера не знаете о тех алгоритмах вычислительной геометрии, которые ис... текст свёрнут, показать
     
  • 4.13, Аноним (-), 04:40, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > думаю, не дорогая операция.

    А теперь туман. Делаем миллионы particles. Как, вам все еще не дорого? :)

     
  • 3.26, бро (?), 19:59, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    и повторять эквивалентную матричную математику для каждой вершины модели, например на модель 10000 полигонов = 30000 идентичных матричных умножений (проекция*камера*мировая) на ГПУ, толи раз перемножить на ЦПУ?
     
  • 3.27, Vkni (ok), 21:33, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Всё это хрень, матрицы давно пора считать на GPU

    Смотря какого размера.

     
  • 2.4, umbr (ok), 23:32, 13/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    есть ещё PhysX
     
     
  • 3.14, Аноним (-), 04:41, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > есть ещё PhysX

    Проприетарь от нвидии с кучей причуд. Спасиб, конечно, но...

     

  • 1.5, maxis11 (ok), 23:46, 13/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем это, если есть GLM?
     
     
  • 2.7, Аноним (-), 00:17, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты-то коптишь, без всякого толку причем
     

  • 1.8, A.Stahl (ok), 00:39, 14/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Google

    Я в геймдеве работаю уж лет почти 10. Чуть меньше. Гугл идёт лесом (читай...сами прочитаете). Никогда, ни при каких обстоятельствах не пользуйтесь тем, что предлагает гугл. Через пару лет вы останетесь у разбитого корыта. У гугла, видите ли, оптимизация расходов. Даже микрософтовские хрени живут дольше. Впрочем, если вы пишете хрень, которую через 2 года никто не помянет даже негромким тихим словом, то можете посмотреть. Но смысл?

     
     
  • 2.12, Аноним (-), 02:15, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    чем это гугл обидел геймдев?
     
     
  • 3.15, Аноним (-), 04:42, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > чем это гугл обидел геймдев?

    Они не геймдев, они всех. У них половина проектов - поматросил-бросил и тот перец прав в том плане что закладываться может быть чревато.

     
  • 2.22, Нанобот (ok), 11:54, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    ты ж не думаешь, что они ихняя библиотека использует сервера гугла для выполнения вычислений? (я к тому, что "оптимизация расходов" не должна влиять на работоспособность библиотеки)
     

  • 1.9, Аноним (-), 00:50, 14/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    У них в этой библиотеки список зависимостей из всех предыдущих их библиотек, теперь ясно, как они их поддерживают.
     
  • 1.10, Аноним (-), 01:49, 14/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    чем это лучше Octave с производными, развиваемых, сообществом и корпорациями, сообща ? там и фичастее и гибче и быстрее, бо.
     
     
  • 2.24, Аноним (-), 13:45, 14/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Octave? Для геймдевов? Are you sure?
     

  • 1.18, Аноним (-), 06:02, 14/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "Работа библиотеки протестирована в Android, Linux, OS X и Windows."
    Если операционные системы записывать в алфавитном порядке, Винда почти всегда будет последней в списке. :)
     
  • 1.30, Аноним (-), 03:38, 15/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Си-интерфейса нет. А жаль
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру