Показать сообщение отдельно
Старый 23.05.2007, 11:46
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 6  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
Цитата:
Сообщение от zafod
Я вот не пойму, почему нельзя отрисовывать скажем 100 мувиклипов во флешке с приличной скоростью.

Я просто не знаю как это во flash делается, я занимаюсь DirectX и OpenGL, там я спрайты заливаю в видеокарту, подключаю шейдеры и пошло - это все для быстрой отрисовки. А во flash как мне быстро отрисовывать я не в курсе. Мне подсказали _root.attachMovie( inst, newInst, depth, {objectInit} ) - но это прям такие тормоза. Это если у меня 11 fps то это он всего 11 раз мне аттачил клип на сцену в секунду? Как то должно быть же побыстрее?
Странно, такой большой, знает DirectX, а не знает таких простых вещей:

1. Видеокарта - это целая куча процессоров, которые занимаются только тем, что перемалывают твои спрайты и шейдеры в параллельном режиме. А Флэш пользуется только одним процессором, центральным. Выключили поддержку процессоров на карте (запустили DirectX в режиме эмуляции) - о, как замедлилось всё на порядок-другой.

Идём дальше.
2. Флэш вообще не использует hardware layer графической системы. Поэтому весь вывод идёт через медленные, но работающие на всём железе графические функции операционной системы. Забыли про DirectX и DirectDraw вообще, открыли обычный виндовый канвас, и рисуем в нём кистями. Что, неудобно спрайты руками двигать? Заботится о сглаживании общей картинки? А уж с векторными изображениями как можно запариться... А ещё эта неизбавимая головная боль с фонтами... А ведь Флэш ещё может те же элементы показать и под Mac, и под Linux. И даже иногда на сотовом телефоне. И выглядеть будет одинаково везде.

3. Флэш - это вебная технология, т.е. размер конечного приложения и размер самого плагина - критичные величины. Сколько, говорите, ваше DirectX приложение весит? Ага, зато текстуры 256x256, ну-ну. А сам новый DirectX? Ни фига себе. А сколько мне будет стоить видеокарта для запуска этого нового DirectX. Что, всё равно в том разрешении, что у меня на мониторе, не запустится? А зачем я это тогда три дня скачивал? Нда...

4. Флэш начинался как инструмент для рисования. Ну, это как Adobe ImageReady: огромная среда с кучей инструментов, фильтров, настроек, а вывод результата - в маленький такой gif-файл. Спрашиваете, почему нельзя поставить частоту кадров 30 и где поддержка HDR и альфа-канала? А Вы, извините, с какой планеты будете?

5. Никто особо не заботился сперва об оптимизации скорости работы внутреннего языка, это просто не было предназначено для работы на предельной загрузке процессора, не было предназначенно для масштабирования (т.е. и на Flash 6 умельцы делали движки, которые могли собирать 10-20 треугольников в крутящуюся 3D-фиговину, но никто и никогда всерьёз не предлагал, а давайте теперь сделаем 1000-2000 полигонов хотя бы и забацаем Дум на флэше). Только с выпуском версии 9 скорость работы языка (интерпретатора, заметте) возрасла значительно. И теперь практически сравнима с работой скомпилированных проектов на Java.

Домашнее задание: подумать теперь почему такие популярные проекты как YouTube, Google, MySpace, MSN, а также сайты игр, написанных на том же DirectX и OpenGL (HalfLife, WarCraft, NeedForSpeed, уж им то, казалось бы сам бог велел) используют так много Флэша, а вот той же Java, или тем более DirectX вообще никакой попытки нет добавить.

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

С графоманством надо завязывать.
__________________
Верить никому нельзя. Мне - можно. :)