![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| Randajad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 15.3.2012 Репутация: нет Всего: 8 |
Сабж, господа!
Каково это? Пришел в голову вариант создания в одном окне нескольких контекстов. Каждый рисует свою часть сцены. Камерой подгоняется под единую картинку. Экспериментальные тесты есть, все отлично. Рисую крутящийся треугольник из нескольких потоков. На таком простом примере проблем нет. Но встают дальнейшие глобальные проблемы. Как рисовать большую сцену из многих мешей? Как реализовывать Occlusion Query? Какие еще способы повышения производительности можно реализовать? Какие проблемы при этом будут? С уважением. |
|||
|
||||
| Randajad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 15.3.2012 Репутация: нет Всего: 8 |
Почитал интернетов. Говорят, производительность от того, что я буду вызывать функции опенгеля в разных потоках, не повысится. Так ли это?
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 5 Всего: 459 |
Правильно говорят. На самом деле функции опенгла почти ничего не делают во время вызвова. Они лишь формируют команды, которые будут исполнятся движком. Функции написаны так, чтобы не отъедать много проца. Большая часть работы будет делаться видеокартой и параллелится на ней (на видеокарте) при возможности. Ускорение может быть только при не оптимальном использовании или если не установлены драйвера OpenGL и используется софтовый рендер. Возможно процом считаются операции матричных преобразований. Эти операции могут отнимать немало процессорных ресурсов. В любом случае к вопросу распараллеливания следует подходить если довольно оптимальный алгоритм отъедает уже 50-70% проца и больше. Но в любом случае, нет смысла заниматься передачей вершин в разных потоках. Эта задача не ресурсоемкая.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
Первый способ повышэния производительности -- это умерить свои аппетиты. Затем пойдёт экспериментальное сравнение разных подходов и ихвестных оптимизацый.
Распараллеливание в рамках одной машыны, как тут правильно заметили, чаще всего вообще не является способом повышэния производительности. И если пойдут характерные задачи, на которых оно будет являться -- скорее всего, и без вас распараллелят внутри реализацыи. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 5 Всего: 459 |
Тем не менее современные игры, не смотря на аппаратное ускорение сильно используют процессор. Правда все же, я думаю, что распараллеливают все таки не рендер. там очень много ресурсов есть физика, т.е. проверка коллизий, ИИ, расчет механики сцен и т.д. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |