| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > Как оптимизировать Open GL? |
| Автор: Sergos 20.5.2010, 19:45 |
| Всем привет. Я сделал небольшую 2Д игру на Java с Open GL (jogl). Мне нужно, чтоб эта игра нормально работала и на слабых компах. Я слышал, что некоторые видеокарты не поддерживают Open GL, а в Windows по умолчанию стоят старые драйвера. Можно ли как-то оптимизировать Open GL, чтобы игра работала даже на слабых видеокартах? Помогите! Кто сталкивался с такой проблемой? |
| Автор: VictorTsaregorodtsev 20.5.2010, 20:27 |
Вряд ли такие карты остались вообще в неединичном числе. ОпенЖЛ был по дефолту встроен в ВинНТ4 (а она - 96 года выпуска), некоторые нтёвые скринсейверы могли его сразу использовать (т.е. ОпенЖЛ вполне себе работал на компах и видюхах того времени). И с тех пор почти 15 лет прошло - видюхи должны ОпенЖЛ гонять без проблем в принципе. Драйвера (атишные или нвидиевские, и даже интеловские для интеловских встроенных в чипсет видюъ) тоже должны быть адекватными, ибо примерно половина 3Д-игрушек (если грубо считать игры не по числу проданных копий, а по числу наименований игр) делается на ОпенЖЛе, а вторая - на директиксе. Отсюда всякие 3ДМарки зависят от качества драйверов ЖЛевских драйверов, и производители видеокарт вряд ли захотят самостоятельно рыть себе могилу, выпуская неоптимизированные драйвера и получая из-за них плохие баллы в пузомерках (и проигрывая, из-за этих плохих баллов, продукции конкурентов). Так что оптимизируйте свои игрушечные алгоритмы в первую очередь - слабых видюх для 2Д сейчас не существует в принципе. |
| Автор: APXEOLOG 19.6.2010, 19:43 | ||
Я лично знаком с OpenGL проектом на яве и скажу тебе вот что - не делай этого. Я не знаю причин но простенькая 2D графика на яве жрет 100% моего 2.6Гц проца и походу совершенно не использует мою 512Мб видюху. |
| Автор: Rpahut 20.6.2010, 13:39 |
| 100% нагрузка для игры это нормально. В отличии от простых приложений, которые просыпаются при возникновении события, делают своё дело и снова засыпают, игра крутится в цикле и почти не спит. От неё требуется отрисовать как можно больше кадров в секунду, она и рисует. Это кстати не значит что если запустить приложение одновременно с игрой оно зависнет - ОС распределяет процессорное время в соответствии с приоритетом процесса, если надо будет - отнимет немного времени у игры. И на более слабом компьютере игра будет скорее всего работать нормально, тоже нагружая проц на 100%. Можно ограничить количество рисуемых в секунду кадров, отправляя программу поспать какое-то время на каждом проходе цикла - тогда одновременно с игрой можно будет запустить например Word и нормально в нем работать, только кому это нужно. |
| Автор: APXEOLOG 24.6.2010, 09:22 |
| Rpahut, у меня все остальное именно виснет если работает ява-игрушка =) Согласитесь, 20 фпс на 4х-ядерном компе с самой современной видео-картой это не то что ожидаешь от 2Д игрушки. |
| Автор: Rpahut 24.6.2010, 13:11 |
| Opengl нагрузки на проц почти не даёт в любом случае, если не рассматривать игры-тяжеловесы конечно. Что нужно такого нарисовать чтобы получить двадцать кадров - я вообще не представляю. Если ещё и виснет всё остальное, возможно дело в дурной архитектуре программы или в самой яве. |
| Автор: Rickert 24.6.2010, 18:57 |
| Вы тут господа пытаетесь обсуждать строение самолёта, не говоря о какой модели идёт речь. Приводите код, с чего вы взяли что у вас нагрузка именно в графической части: может вы физику неправильно считаете или ещё что? Как выводится информация в OpenGL и вообще какая она: растровая графика, геометрия? Вопросов миллионы, огласите список, иначе это всё равно что толочь воду в ступе. |
| Автор: Rpahut 26.6.2010, 00:09 |
| нда. Топикстартер похоже давно получил свой ответ и ушёл. Практичный человек |
| Автор: Sergos 17.8.2010, 10:05 |
| Вот я снова) Нагрузка явы на процессор идет из за неправильно написанного цикла обновления. Я ограничил отрисовку 60 кадрами, и в итоге игра использует 0-5 % процессора. А вобще ява вполне пригодна для 2д игр. Вот с красивой 3д графикой будет уже сложнее. |