Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.01.2014, 23:30
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 1  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
По умолчанию Растеризация для увеличения производительности

Всегда с жадностью вчитывался в статьи и темы посвящённые растру и ждал время..
Сейчас оно наступает и мне нужно брать направление, но самостоятельно сложно, по этому я хочу спросить несколько вопросов, посвящённые теме.
Первое что меня интересует - приходится ли в реальных условиях, прибегать к самостоятельному рендерингу в bitmap? Спрашиваю так по тому, что есть Starling и возможно все им и пользуются, плюс у него доступ к cpu,
которым, на сколько мне известно, не кто больше из 2D не обладает ( если я не прав, то скажите, что ещё есть ).
Вторым пунктом у меня это эффекты, которые рисуются вектором ( классом Graphics ), которым замены вроде нет. У меня по этому вопросу очень большая прореха. Вроде читал, что если рисовать эти эффекты в битмапу, то производительность возрастает, но когда вдумываюсь, то получается, что я нарисовал эффект, на который уже потратил мощьность для вычисления и потом ещё его в битмапу.. это ещё плюс производительности.
Остановлюсь пока на этом, так как для начала нужно в этом разобраться.

Старый 07.01.2014, 03:42
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 2  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Мало чего понял....
В ряде случаев графика в растре - быстрее. В других случаях - лучше битмап.
Соотв оно рисуется сразу либо так, либо эдак...
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 07.01.2014, 04:08
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 3  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
получается, что я нарисовал эффект, на который уже потратил мощьность для вычисления и потом ещё его в битмапу.. это ещё плюс производительности.
Но ведь если вы сделаете из вашего вектора с эффектами - битмап, то компьютеру больше не придётся при рендере вырисовывать всё это заново каждый раз. По этому лучше один раз потратить мощность на создание растровой картинки, чем тратить постоянно, пересчитывая вектора и наложенные фильтры.
Конечно ситуации разные бывают, смотря что вам нужно.

Старый 07.01.2014, 14:34
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 4  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Спасибо Вам за то, что взялись мне объяснять, теперь я просто так не отстану
Цитата:
В ряде случаев графика в растре - быстрее. В других случаях - лучше битмап.
А можно немного подробнее, про растровую графику я догадываюсь, наверное имеется ввиду - не программно рисовать, а загружать jpg, png, хотя это то наверное битмап.. Но вот про битмап не понимаю. Что имеется ввиду - загружать в формате bmp или ещё что-то? И в каких случаях одно предпочтительней другого?
Цитата:
то компьютеру больше не придётся при рендере вырисовывать всё это заново каждый раз
Теперь кажется понял, если оставить в векторе, то каждый кадр все рисуется с самого начала, а если перерисовать в битмапу... а битмапу FP не перерисовывает каждый кадр с вектора? Или он её кеширует и берёт из кеша?
И ещё пару вопросов- с точки зрения "правильности", все отдельные растровые изображения или перерисованные в битмапу вектора, лучше рисовать в одну битмап?
И если у меня так же есть какое-то кол-во картинок или вектора и мне нужно его перемещать, то лучше будет изменять координаты перерисовки в общую битмапу чем двигать сам перерисовываемый источник?
И ещё, если мне надо вращать и искажать, то чем будет более целесообразно манипулировать - первоисточником ( он может быть как растром так и вектором ) или опять так перерисовывать исходя из расчетов искажения? И при искажении вектора лучше будет искажать уже битмапу в которую он перерисован?

Старый 07.01.2014, 15:37
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 5  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Когда вы делаете draw объекта, то по сути это скриншот, который уже не имеет никакого отношения к тому объекту, который он изобразил. Вы можете и удалить векторный вариант, но ведь картинка (битмап) останется, так как это отдельный объект уже. А нарисовать на экране растровую картинку, где уже известны все пиксели - намного быстрее, чем создать векторную фигуру по формулам и внутренне перевести её в раст, чтобы опять же отобразить на экране. Ведь любой вектор переводится в раст, перед отображением, так как монитор это такие же клеточки.

Старый 07.01.2014, 18:27
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 6  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
samana Спасибо! Пока вроде все понятно, если что спрошу

Старый 08.01.2014, 11:02
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 7  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Akopalipsis, у меня в блоге единственная запись — может полезно будет.

А вообще нужно отталкиваться от задачи.

Цитата:
Первое что меня интересует - приходится ли в реальных условиях, прибегать к самостоятельному рендерингу в bitmap?
— Условия же разные бывают.

Мне приходится. Но только на этапе разработки. То есть на каждом старте приложения происходит отрисовка текстур в битмапдаты и создание текстурных атласов, так намного быстрее тестировать, добавлять / изменять графику. В момент, когда я решу, что графика полностью готова — я запущу приложение с флагом для сохранения текстур: как только все отрисуются (все битмапдаты), я получу архив с пнгэшками. Их и буду использовать в релиз-версии приложения, без отрисовок и т.п.

Цитата:
И ещё пару вопросов- с точки зрения "правильности", все отдельные растровые изображения или перерисованные в битмапу вектора, лучше рисовать в одну битмап?
Есть отличная статья про это, там объясняется: http://gamespoweredby.com/blog/2013/...le-developers/

Вкратце: да, лучше все текстурки загонять в минимальное количество атласов, сохраняя между ними промежуток в пару пикселей. При рендеринге элементов с помощью старлинга — очень желательно не смешивать глубины элементов с разными атласами. Все это необходимо для уменьшения дроколов, которые, в свою очередь, сильно влияют на производительность.

Цитата:
И ещё, если мне надо вращать и искажать, то чем будет более целесообразно манипулировать - первоисточником ( он может быть как растром так и вектором ) или опять так перерисовывать исходя из расчетов искажения? И при искажении вектора лучше будет искажать уже битмапу в которую он перерисован?
Мне кажется, что в большинстве случаев достаточно будет искажать старлинг-дисплей-обжект, но не изменять его текстурку или что-то заново отрисовывать.

P.S.: на сколько мне известно, не кто больше
__________________
hauts.ru

Старый 08.01.2014, 22:47
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 8  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Hauts Большое Спасибо! Вашу статью в блоге я уже давно прочёл, за что Вам ещё отдельное Спасибо!
Чтобы разбавить спокойный вечер, спрошу вот что - я всегда хотел спросить, да и вот в этой теме впервые спросил, есть ли аналоги Starling.
Когда я его чуть-чуть смотрел, мне он показался очень грамотным и полноценным,но чересчур Starling'овым. Все в нем должно быть его, родное,
а значит не какого собственного творчества. И вот я узнаю о Genome2D, смотрю его доки и у меня появился другой вопрос - не получится ли так, что недостаток опыта, который скажется на грамотности построения логики, тех же компонентов, событий и прочего, что сведёт всю его первозданность и скорость, на нет? На сколько он сложен и предрасположен к собственному творчеству? Какое у Вас о нем мнение?

Старый 09.01.2014, 10:50
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 9  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Akopalipsis, я с Genome2D не работал.

Причина в том, что я считаю, что проблемы нужно решать по мере поступления. И пока я не сталкивался с теми проблемами производительности или архитектуры старлинга, которые не мог бы решить, вследствие чего, пришлось бы переходить на Genome2D.

Если меня не устраивает скорость — я анализирую, пробую и исправляю. И, как мне подсказывает опыт, — в подавляющем большинстве случаев проблемы на моей стороне (неправильная организация DO, логические ошибки и т.д.).

А вообще — я же прекрасно понимаю, что если я сталкиваюсь с трудностями или непониманием причин, то, скорее всего, виноват в этом я. Над старлингом работает куча очень крутых спецов своего дела. Несравненно умнее и опытнее меня. Поэтому и "грешить" на старлинг, если я написал g-код, не имеет смысла, пока не перепробую все, что только придумаю для решения ситуации.

В общем, наверное, совет: не хватайтесь за всё сразу. Начните со старлинга. Придумайте какую-нибудь тестовую игрушку и реализуйте её до той степени готовности, пока она вам самому не начнёт нравиться.

К примеру, тот же биллиард. Вид сверху, пошаговые удары. Там и математика, и рендеринг. Если стараться сделать хорошо — уверяю, столкнетесь с кучей совсем неочевидных проблем. Решив которые, вероятно, прокачаете скилл.

Цитата:
не получится ли так, что недостаток опыта, который скажется на грамотности построения логики, тех же компонентов, событий и прочего, что сведёт всю его первозданность и скорость, на нет?
— Вопросы подобного характера, по своей сути не подразумевают однозначного ответа. Но проще считать, что "да", именно вашими ошибками вы погубите производительность. Тогда и добавится еще один пункт "правил" разработки — "пишите грамотно, качественно и столько раз, пока не добьётесь цели".

Цитата:
На сколько он сложен и предрасположен к собственному творчеству?
— Вопрос аналогичного характера, как и предыдущий. Думаю, что вы с трудом найдете такую задачу, решение которой с Genome2D будет чрезмерно сложным, а вот её же решение на нативных дисплейобджектах будет вполне простым. "Сложным" — имею в виду с точки зрения возможностей / архитектуры. Так-то почти любая более-менее осмысленная задача составляет сложность.
__________________
hauts.ru

Старый 09.01.2014, 14:32
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 10  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Hauts Спасибо за объяснение!

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 01:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.