Информация

Обсуждало 4 человека

Изометрия

Логика и программирование
13 февраля 2013 в 18:05:55

Кто нить побывал кодить изометрию? Что то как на си шарпе замутить у меня не удалось, скорости AS3 не хватило, 400 копи пикселей работает дальше тормозит жестко. На си шарпе 20 000 копирований делает при 60 фпс. Есть ли какие нить методы оптимизации? Мне нужно хотяб 1000 объектов разом рисовать.

Обсуждение (вниз)

Не хватает только вашего мнения. Зарегистрируйтесь, чтобы написать!

26 февраля 2013 в 19:08:06

Ага млин буферизация не перерисовываещихся частей исправляются все проблемы :)

17 февраля 2013 в 16:43:41

Ну да, но скоро доделаю ХД

17 февраля 2013 в 16:21:55

Что значит возьми, ее еще в сети то нету хД

17 февраля 2013 в 13:34:17

Да и возбми игру поляриса манго самурай без 3д ускорителя работает на ура и она охуительная. А вообще флешевцы должны все методы для работы с графикой перевести на gpu как енто работает в других средах разработки. И что то мне кажется что в CS7 так и будет

17 февраля 2013 в 12:52:10

Dracyla я же сказал, что такая технология не подходит, ты начал все равно рекламировать я тебя попросил скинуть свои труды на ней(что бы действительно увидеть что за технология такая) зачем ставить 3 точки? и какой то непонятный набор символов.

16 февраля 2013 в 22:14:11

iDenChig, >__<...

16 февраля 2013 в 21:47:20

Dracyla flash он ток умеет работать с 3д и ничего кроме он не предоставляет. Скинь какуюнить демку свою, а не авторов где видно насколько он шикарен?? Так же помоему с шейдерами не работал на флеше. А любое взаимодействие с 3д сводится к кодингу на шейдерах

15 февраля 2013 в 22:18:33

iDenChig, и еще одно... в Adobe тоже предлагают использовать Starling ;)

15 февраля 2013 в 22:15:14

iDenChig, несколько причин, по которым я выбрал Starling:
1) я не хочу изобретать велосипед, а сэкономленное время лучше потрачу на отдых;
2) процесс взаимодействия ничем не отличается от привычного, имена классов и их свойств совпадают - DisplayObject, Sprite;
3) если не хватает функционала Starling (а я лично этой проблемы не испытал), можно в любой момент переопределить метод render и работать напрямую с Context3D;
4) для Starling уже реализовали неплохую библиотеку компонентов, я им не пользуюсь, но его существование уже плюс, так как не придется и над этим вопросом велосипедить.

P.S.:
ты: есть ли какие-нить методы оптимизации, чтобы во флэше изометрия работала быстрее?
я: используй Starling
ты: для работы с GPU я лучше буду использовать другие среды
я: а где логика? если тебе нужно выполнить задачу на флэше, почему бы не использовать ВСЮ мощь ДАННОЙ (флэш) среды?... бред

15 февраля 2013 в 21:56:19

Dracyla зачем себя ущемлять starling переписать свой код под чужие замуты потерять кучу нужных методов и свойств, если проще уже на чистом stage3D писать?? И еще раз повторюсь если использовать 3д ускоритель то в более мощных средах.

15 февраля 2013 в 21:35:15

iDenChig, а я тебе говорю, зачем copyPixels, если можно с GPU работать?.. в чем смысл? XD

15 февраля 2013 в 20:20:19

Maldan енто без ромбов

15 февраля 2013 в 20:15:00

Ну так нормально все у меня под 60 все летает

15 февраля 2013 в 20:08:37

Сам ромбик походу дофига ресов жрет

15 февраля 2013 в 19:51:51

http://file.flashdocs.ru/?file=1000212 вот 416 объектов ток для отрисовки терраина, как в воркрафт2. Осторожно глаза ))

15 февраля 2013 в 19:48:40

sw_alex 20 объектов в изометрии ты шутишь?)) Dracyla я понял как самому работать с GPU на флеше. Я тебе не про либы я про сам флешь, если я буду использовать GPU то я скорей всего с юнити3д работать начну. Там есть конкретный редактор 3д мирка, что во флеше над собственный редактор мутить. Да и шейдорасы там на си подобном языке пишутся, а не на страшно асемблеро подобном языке.

14 февраля 2013 в 18:37:12

Как это не случиться, разбери компилятор и оптимизируй копиПиксель, ну потом наверное еще и флеш плееры придется все переделывать хД

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

14 февраля 2013 в 18:09:26

важно еще учесть то, что Adobe постепенно улучшают общение Flash и GPU, и всякие библиотеки типа Alternativa3D, Starling соответственно тоже не стоят на месте, шаг за шагом повышая скорость отрисовки объектов на экран... а copyPixels как есть, так больше с ним ничего и не случится XD..

14 февраля 2013 в 18:07:43

Maldan, и все же, Starling (библиотека для отрисовки 2D графики при помощи GPU) будет работать быстрее, чем обычный copyPixels %)

14 февраля 2013 в 16:46:30

GPU то используют конечно много для чего, и даже для брута паролей, но вот ассемблерный код там намного урезанее чем в CPU, так как предназначен только для обработки тяжелой графики, это уже люди умудряются использоваться команды GPU в других целях, но однако не просто это все, а просто 2Д картинки и прочее так это если использоваться его напрямую, а во флеше таких возможностей нет, там все сильно уреазно, шейдерная версия 2.0 и то неполная

14 февраля 2013 в 16:18:15

А, ещё ж видео современные видяхи отлично декодируют. Ищи DXVA, если интересно.

14 февраля 2013 в 16:15:15

Во, для примера ссылка. http://ru.wikipedia.org/wiki/DirectCompute

14 февраля 2013 в 16:14:14

Неа. GPU сейчас используют даже для обычных вычислений, никак не связанных с графикой, но для которых возможно параллельное исполнение. Например, физические рассчёты или работа с массивами. GPU состоит из кучи мелких процессоров, которые выполняют одновременно одну команду, но с разными данными на входе. И засчёт своего количества могут быстро обработать гору однообразных данных, такую как картинка или треугольники эти. Тогда как CPU выполняет команды по одной (ну там сильно сложнее конечно, до 4х и больше одновременно может, но с GPU не сравнится). И передавать обратно в CPU картинку нет никакого смысла - GPU сам выводит её на экран, и пишет что надо в память. И с 2D-графикой работать тоже видяхи умеют. Даже в современных версиях браузеров используется видеоускорение - а это и есть работа GPU в 2D.

14 февраля 2013 в 15:16:59

GPU помоему не предназначен для простой 2д графики, так как он растерезирует треугольники, то есть имеется сложная модель 3д он рассчитывает все вершины, отрисовывает все пиксели и потом полученную растровую картинку передает процессору, то есть мы получаем картинку обратно практически тем же копипикселем, тогда какой смысл копипикселить то что копипиксельнет GPU? Да и GPU может только растерезировать треугольники, по пикселям он работать не умеет, на крайняк можно написать сложный шейдер используя Pixel Bender Toolkit

14 февраля 2013 в 14:59:32

Не ну почему же не будет быстрее если использовать GPU. Ведь в таком случае CPU отвечает за вызов функций, а GPU копипикселит (для CPU это очень тяжелая операция, ведь он копирует пиксели последовательно, а GPU может распараллелить эту задачу). Без GPU процессору приходится делать и то, и другое.
Оптимизировать тут тоже конечно надо. Зачем каждый кадр копировать 1000 объектов, когда реально изменяется штук 20?..

14 февраля 2013 в 14:19:42

Я бы не сказал, что быстрее, если отрисовывать битмапку Full HD копипикселей и GPU то GPU несомненно отрисует быстрее, но когда копипиксельишь 1000 маленьких изображений, тот тут уже не в GPU дело, ведь сам вызов функции для GPU отрисовки занимает больше времени так как содержит больше функций, а копипиксель намного меньше, поэтому копипиксель в таких случаях работать будет быстрее, но я конечно же не тестил это все, но из практики просто знаю что не в GPU дело а в оптимизации алгоритма, вот делают на флеше 3Д без GPU, графика там хоть и послабже, но работают очень быстро, и делают игры на молехилле которые и по графике говно да еще и лагает ппц, это уже говорит о кваливицированности разработчика и тут никакие GPU не помогут

14 февраля 2013 в 13:57:34

Maldan, если "копипикселить" будет GPU, то и работать все будет явно быстрее %)

14 февраля 2013 в 13:28:24

Не думаю что Starling поможет, там ведь просто аппаратная графика, а лагает то уж точно не от графики а от количества вызовов функции, да и вообще алгоритма рендера в целом, в общем нужно просто оптимизировать сам процесс отрисовки, так как лагать то там нечему это ж раст обычный, старайся уменьшить количество вызовов функций до минимума, чем меньше функций тем работает быстрее, да и вообще всех рассечтов, например я заменил в алгоритме Math.PI на 3,14... и получил приток скорости, но это в моем случае, там оптимизировать то надо было 2 строчки хД но все же даже такие мелочи придают скорости

14 февраля 2013 в 12:15:06

iDenChig, эм... шутка? Starling вообще-то бесплатный XD

14 февраля 2013 в 11:57:37

Dracyla я бы взял юнти и не мучался, один фиг по цене одинаково. Так там еще скорость в раз 15 наверное шустрее

14 февраля 2013 в 11:56:55

Dracyla нет

14 февраля 2013 в 11:13:33

не проще ли взять Starling и не мучатся?

14 февраля 2013 в 11:03:15

http://file.flashdocs.ru/?file=1000211 вот работа при 500 объектах

14 февраля 2013 в 10:58:54

100х60

14 февраля 2013 в 02:53:47

А какой размером объект? У меня мелкие обхекты 8х8 - 16х16 рендерить от 2000 и более при 60фпс

13 февраля 2013 в 23:49:21

Шейдер на молехилле единственный вариант.
Fundux.ru v.3.0 © 2006-2021 AleXNoD
Портал русских флеш игр и flash мультов