Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Программирование графики  (Прочитано 1858 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alsoijw

  • Автор темы
  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Программирование графики
« : 22 Ноябрь 2013, 17:16:19 »
Проблема: 2Д графика использует ЦП 99 - 100%. Графика простейшая - заготовка для анимации.
Код
(Нажмите, чтобы показать/скрыть)
Нагрузку можно существенно снизит. Как оптимизировать этот код?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Программирование графики
« Ответ #1 : 22 Ноябрь 2013, 20:02:48 »
Цитировать
while 1:
Ну вот и всё. Изучай что такое vsync, или хотя бы используй таймер, который будет обновлять картинку 30-60 раз в секунду и остальное время спать.

P.S. Программа должна рисовать 30-60 кадров в секунду, лучше 60 чем 30, и остальное время спать. С while 1 такого не будет.

Оффлайн alsoijw

  • Автор темы
  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Программирование графики
« Ответ #2 : 22 Ноябрь 2013, 20:05:49 »
quiet_readonly,
Можешь дать код?

Пользователь решил продолжить мысль 23 Ноябрь 2013, 15:48:50:
Новый код
(Нажмите, чтобы показать/скрыть)
Стало чуть лучше: ЦП 50 - 90%. Некоторый прогресс.

Пользователь решил продолжить мысль 23 Ноябрь 2013, 16:26:56:
Еще одна версия еще лучше:
(Нажмите, чтобы показать/скрыть)
ЦП 40 - 50 %(Кое что фоном 0 - 10%)
« Последнее редактирование: 23 Ноябрь 2013, 16:26:56 от alsoijw »
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Grigory Smirnov

  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Программирование графики
« Ответ #3 : 24 Ноябрь 2013, 12:10:40 »
Не используй pygame и производительность вырастет :)

Оффлайн alsoijw

  • Автор темы
  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Программирование графики
« Ответ #4 : 25 Ноябрь 2013, 19:35:17 »
Не используй pygame и производительность вырастет :)
А что использовать для графики?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Программирование графики
« Ответ #5 : 25 Ноябрь 2013, 20:00:35 »
Задача нарисовать картинку, мультик или написать игру?
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн alsoijw

  • Автор темы
  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Программирование графики
« Ответ #6 : 25 Ноябрь 2013, 20:04:10 »
задача = игра. если нужен с++ говорите, заодно код приведите, скажите как откомпиллировать.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Программирование графики
« Ответ #7 : 25 Ноябрь 2013, 20:13:49 »
Нафига C++, если Вы на питоне пишете? И ладно, если игра то ничего не могу посоветовать.
Ubuntu 14.04 (Unity), MSI GE40

Anubis-wins

  • Гость
Re: Программирование графики
« Ответ #8 : 27 Ноябрь 2013, 14:17:20 »
Попробуйте Qt с OpenGl, возможности более богатые для написания графики, для начала можете почитать http://habrahabr.ru/post/132674/

Оффлайн alsoijw

  • Автор темы
  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Программирование графики
« Ответ #9 : 28 Ноябрь 2013, 20:06:14 »
Попробуйте Qt с OpenGl, возможности более богатые для написания графики, для начала можете почитать http://habrahabr.ru/post/132674/
Можно название пакета Из каких пакетов состоит(какие нужны)?

Пользователь решил продолжить мысль 28 Ноябрь 2013, 20:13:30:
И еще момент: OpenGl разве не только трехмерная? Или поддерживает двухмерную графику и не сильно нагружает ЦП?
« Последнее редактирование: 28 Ноябрь 2013, 20:13:30 от alsoijw »
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Кровавый

  • Старожил
  • *
  • Сообщений: 1626
  • Логика творит чудеса!
    • Просмотр профиля
Re: Программирование графики
« Ответ #10 : 28 Ноябрь 2013, 20:43:40 »
И еще момент: OpenGl разве не только трехмерная? Или поддерживает двухмерную графику и не сильно нагружает ЦП?


Про подпространства слышали? Двумерное пространство - это подпространство трехмерного пространства. :)
А если проще, то поддерживает рисование как 3D, так и 2D. Только там есть свои подводные камни.


По поводу пакетов, поставите QtCreator из репозиториев, получите и все необходимые для работы библиотеки. Могут понадобиться дополнительные, например,
sudo apt-get install libgl1-mesa-dev libglu1-mesa-devА вообще, по этому поводу очень много информации в Google.
Железо: AMD FX8350 4.2Ghz + 2x4Gb Kingston HeyperX + Asus M5A97 R2.0 + HDD WD WZ10EZEX 1TB 7200 rpm + SSD 128 GB + Win 10 x64.

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Программирование графики
« Ответ #11 : 29 Ноябрь 2013, 08:18:52 »
Еще одна версия еще лучше:
(Нажмите, чтобы показать/скрыть)
ЦП 40 - 50 %(Кое что фоном 0 - 10%)

Весьма неплохо, но надо переименовать main в render_frame и вынести код, который не относится к рисованию отдельного кадра. Например, сейчас pygame инициализируется на каждом кадре, также на каждом кадре выставляется размер окна и заголовок. Это всё надо сделать один раз при создании окна, а не по таймеру.

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: Программирование графики
« Ответ #12 : 29 Ноябрь 2013, 11:01:56 »
Почитать примеры программ использующих pygame.

Оффлайн alsoijw

  • Автор темы
  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Программирование графики
« Ответ #13 : 29 Ноябрь 2013, 18:41:00 »
Примеры у меня работают далеко не все. Некоторые примеры для меня очень сложны.

Пользователь решил продолжить мысль 29 Ноябрь 2013, 22:24:39:
Qt поставил, но он на английском. Где русский?
« Последнее редактирование: 29 Ноябрь 2013, 22:24:39 от alsoijw »
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7188
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Программирование графики
« Ответ #14 : 30 Ноябрь 2013, 02:45:00 »
alsoijw, какой русский... Вы программировать собираетесь не зная английского? Вообще русификация полная должна быть. Как ставили и откуда?

 

Страница сгенерирована за 0.09 секунд. Запросов: 25.