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

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

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

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
По умолчанию PixelBender эффект свечения

Хочу создать фильтр свечения ярких объектов (скажем если сфоткана яркая точка то вокруг нее появится мягкий свет) в pixelbender...

Я знаю как узнать координаты самых ярких пикселей, проблема как их потом "размыть" по соседним... Кто нить может помочь?

Проблема в том что циклы он не поддерживает, выходит при радиусе размытия скажем 20 пикселей мне придется вручную писать 2*(20^2)=800 if'ов?

вот что я уже написал:

Код:
<languageVersion: 1.0;>

kernel glowWhite
<   namespace : "AIF";
    vendor : "Adobe Systems, Inc.";
    version : 1;
    description : "Glows white"; >
{
    input image4 src;
    output float4 dst;

    parameter float threshold 
    <       
        minValue:float(0.01);
        maxValue:float(1.0); 
        defaultValue:float(0.5);
    >;
    
    parameter float multiplier 
    <       
        minValue:float(0.01);
        maxValue:float(5.0); 
        defaultValue:float(2);
    >;
    // evaluatePixel(): The function of the filter that actually does the 
    //                  processing of the image.  This function is called once 
    //                  for each pixel of the output image.
    void
    evaluatePixel()
    {
        // Obtain the input pixel color
        float4 inputColor = sampleNearest(src, outCoord());

        // Calculate (1 - channel) for each of the RGB channels
        dst.rgb = inputColor.rgb;
        
        float2 pos = outCoord();
        
        float4 sampled1 = sampleNearest(src, float2(pos.x, pos.y+2.0));
        if(sampled1.r>threshold && sampled1.g>threshold && sampled1.b>threshold){
            dst.rgb *= multiplier;
        }
        
        // set the alpha value equal to the alpha of the input
        dst.a = inputColor.a;
    }
}
скриптик окрасит светлые пиксели в кардинально белый цвет
как теперь размыть это дело?

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

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

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


 


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


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