Показать сообщение отдельно
Старый 04.02.2012, 11:02
C4Grey вне форума Посмотреть профиль Отправить личное сообщение для C4Grey Найти все сообщения от C4Grey
  № 3  
Ответить с цитированием
C4Grey

Регистрация: May 2007
Сообщений: 181
Отправить сообщение для C4Grey с помощью ICQ Отправить сообщение для C4Grey с помощью Skype™
Спасибо за совет, алгоритм выглядит интересным, до этого использовал Texture Splatting c добавкой рандома.
Попробовал шейдеры, вроде везде повключал ускорение на GPU, результат не особо радует. Алгоритм таков:
При смене размеров сцены генерируем спрайт с тайлами, размер равен размеру сцены, рисуем его в битмапу - это будет база для применения шейдерного фильтра. По-хорошему надо бы еще отдельно сгенерировать битмапу для тектуры смещения, но я просто добавляю начальный сдвиг к координатам и использую данные с одной текстуры. Таким образом, в шейдер передаем: текстуру воды, время, и размер текстуры(для зацикливания текстуры в шейдере - аналогов TextureWrapping из OpenGL для Flash я не нашел, увы...может чего подскажите, чтобы убрать из шейдера операцию?). В итоге получаем визуально приемлимый результат(с тайлами и цветами еще надо поиграться) для нормального режима. В фулскрине даже при разрешении 1366х768 выжать больше 18.3 FPS не получилось. А ведь в игре планируются частицы(Flintparticles), работа с сервером на Socket...Видимо, остается только делать много анимированных тайлов(бедный дизайнер) + Texture Splatting + использовать «Принцип Цикады».

Да, вот результат:
http://c4.site90.com/flash/water/new/
Графика не моя, используется только для демонстрации, взял с одной похожей по тематике игрушки.
Для фулскрина в консоли нужно ввести комманду "/fs"(без кавычек).