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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.12.2011, 08:09
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 1  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
По умолчанию 2d filters via GPU

Действительно ли можно? Попросили меня сделать пост-эффекты, обеспечивающие блюмы и hdr. Первый уронил фпс в полтора, второй - в два раза. Блюм - это наложенный с альфаканалом bData.clone через BlurFilter, а hdr - тот же блюр, только с предварительным threshold.

В какую сторону вообще копать, чтобы заставить изображение рассчитываться на видеокарте?
__________________
Дебаггер не предлагать

Старый 28.12.2011, 11:46
Fillini вне форума Посмотреть профиль Отправить личное сообщение для Fillini Найти все сообщения от Fillini
  № 2  
Ответить с цитированием
Fillini
 
Аватар для Fillini

Регистрация: Nov 2008
Адрес: Казахстан
Сообщений: 204
Отправить сообщение для Fillini с помощью ICQ
Не уверен, но вроди если сделать фильтры через шейдеры то будет поддержка GPU. Читайте Pixel Bender

Старый 28.12.2011, 11:54
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 3  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Нене, фильтрами нереально. AGAL учите - там шанс есть.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 28.12.2011, 12:14
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 4  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
Агал давно уже выучен, настроен и рисует мне вью, на который и добавляется собственно пост-эффект. То есть я снимаю с него отрендеренную bitmapData, а потом уже блюрю и всячески извращаюсь
__________________
Дебаггер не предлагать

Старый 28.12.2011, 13:54
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 5  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Ну так в несколько проходов на агале и делайте. http://www.nulldesign.de/2011/12/07/nd2d-blur/
GPU = только АГАЛ, к сожалению (скажите спасибо тем, кто решил сделать пиксельбендеровские шейдера слабо похожими на те, что видеокарта поддерживает).
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 28.12.2011, 17:43
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 6  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
Дело в том, что агал не умеет считывать цвет "соседнего" пикселя во фрагментном шейдере. А значит сразу обламывается с блюром. Да и hdr не сильно то получится сделать.

Посмотрел PB. Ужаснулся. Язык без циклов - это пять
__________________
Дебаггер не предлагать

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Ну вот у ребят с ND2D как-то получиось сделать blur. Думаю, что и с HDR это возможно. Другое дело, то blur делается в несколько проходов, а это не самый оптимальный способ. Но он работает
__________________
...вселенская грусть

Старый 29.12.2011, 00:38
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 8  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
Если я правильно их понял - у них идут те же операции с битмапДата, только сильно уж высокоуровневые, переданные на "чтение" по uv. Дублированные-передублированные естественно. Тут как минимум нужно учитывать количество мест под текстурные семплеры на видяху.

Есть ещё один вариант(для блюра) - дважды рендерить сцену. (Для настоящего hdr+glow - вообще четырежды - на затемнённые, на высветленные, обычную и четвёртую, блюрящуюся) В оптимизированном варианте второй раз конечно не саму сцену, а Sprite на x+1 перед вьюпортом, на котором лежит текстура с изменяющимися в шейдере uv. Но всё равно конкретно моя сцена будет недовольна необходимостью на каждый кадр грузить в гпу новый семплер.

Ну и как мизерикорд. На опенгл двойной блюр по xy роняет фпс в два раза. Четвертной - в шесть. И это для маленьких спрайтов. А у меня блюр надо класть в идеале на 1080p =)
__________________
Дебаггер не предлагать


Последний раз редактировалось BuKT; 29.12.2011 в 00:42.
Старый 29.12.2011, 02:56
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 9  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Цитата:
Сообщение от BuKT Посмотреть сообщение
Дело в том, что агал не умеет считывать цвет "соседнего" пикселя во фрагментном шейдере.
Сразу скажу - с agal не было нужды работать (но писал и на шейдерном ассемблере под DirectX и на юнитевском языке, который близок к GLSL/HLSL). В агале есть "tex 0x28 texture sample (fragment shader only)", в котором "destination equals load from texture source2 at coordinates source1. In this case, source2 must be in sampler format." Похоже на директ. Что там мешает этот source2 выставить в координаты соседних пикселов и получить что надо?
По-моему народ с ND2D как-то так и сделал. Ну проходов может быть много, да. Но не всю сцену рендерить несколько раз, по текстуре её проходы только. Но на gpu. Но может быть медленнее даже пиксельбендеровского фильтра, надо тестить.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 29.12.2011, 06:42
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 10  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
Цитата:
destination equals load from texture source2 at coordinates source1
Во втором операнде должен находиться предварительно загруженный туда текстурный семплер. Проще говоря - flash.display3D.textures.TextureBase.
__________________
Дебаггер не предлагать

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

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

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


 


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


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