1.2, Аноним (-), 23:19, 13/11/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Есть Eigen ( http://eigen.tuxfamily.org/index.php?title=Main_Page ) для матричных рассчётов, поворотов, векторов и т.п. или GLM. - это чисто для математики.
Есть Box2D, и много чего подобно, - чисто для физики.
Ничего из описанного пока не использовал, но присматриваюсь к Eigen.
Вопрос к знатокам - зачем комбайн MathFu? Кто пробовал? Как по сравнению с Eigen? (Там тоже декларируются CPU-оптимизации)
| |
|
|
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
Смотря какого размера.
| |
|
|
3.14, Аноним (-), 04:41, 14/11/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> есть ещё PhysX
Проприетарь от нвидии с кучей причуд. Спасиб, конечно, но...
| |
|
|
1.8, A.Stahl (ok), 00:39, 14/11/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>Google
Я в геймдеве работаю уж лет почти 10. Чуть меньше. Гугл идёт лесом (читай...сами прочитаете). Никогда, ни при каких обстоятельствах не пользуйтесь тем, что предлагает гугл. Через пару лет вы останетесь у разбитого корыта. У гугла, видите ли, оптимизация расходов. Даже микрософтовские хрени живут дольше. Впрочем, если вы пишете хрень, которую через 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 с производными, развиваемых, сообществом и корпорациями, сообща ? там и фичастее и гибче и быстрее, бо.
| |
1.18, Аноним (-), 06:02, 14/11/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
"Работа библиотеки протестирована в Android, Linux, OS X и Windows."
Если операционные системы записывать в алфавитном порядке, Винда почти всегда будет последней в списке. :)
| |
|