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

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

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

Регистрация: Sep 2009
Сообщений: 127
По умолчанию Программный эффект лупы

Привет всем, в общем, возникла необходимость сделать эффект лупы, как в играх жанра hidden object, типа вот этой - http://vkontakte.ru/app1995682, но сколько не бился, так и не смог понять, как это вообще сделать.

Чувствую, что решение очень простое, но не идет, и все тут..

Старый 03.04.2011, 15:35
dodoaav вне форума Посмотреть профиль Отправить личное сообщение для dodoaav Найти все сообщения от dodoaav
  № 2  
Ответить с цитированием
dodoaav

Регистрация: Mar 2011
Сообщений: 21
Например, такой вариант. Создаем увеличенное изображение и накладываем круглую маску с размерами лупы. При движении лупы двигаем маску. В итоге лупа показывает увеличенное изображение.
__________________
Пытаюсь делать игры для детей

Старый 03.04.2011, 15:56
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 3  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Не самый лучший вариант. Изображение еще и двигать нужно будет.
Здесь по-лучше: http://active.tutsplus.com/tutorials...tionscript-30/

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

Регистрация: Sep 2009
Сообщений: 127
goodguy, вариант не подойдет, потому что то, что внутри лупы будет размазанным и нечетким

dodoaav, думаю, стоит попробовать, спасибо за идею, но все равно думаю, есть какая-то более простой способ, этот может быть очень затратным, особенно, если придется передвигать крупный объект..

Старый 03.04.2011, 17:56
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 5  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
goodguy, вариант не подойдет, потому что то, что внутри лупы будет размазанным и нечетким
С чего бы это?

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

Регистрация: Sep 2009
Сообщений: 127
goodguy, как я понял, увеличивается не часть изображения, а берется рисуется битмапка, и затем она увеличивается. Это неплохо, когда увеличение должно быть небольшое, но когда нужно значительно увеличить часть уменьшенного изображения, это неподходит Просто сравните, какой пример у него и как это сделано в приложении-рефференсе.

Добавлено через 31 секунду
Впрочем, я могу ошибаться ^^

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

Регистрация: Oct 2010
Адрес: Новосиб
Сообщений: 122
http://www.adobe.com/cfusion/exchang...extid=1698089#

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

Регистрация: Sep 2009
Сообщений: 127
Хороший вариант, но я посмотрел исходники - он берет пиксели, которые отображаются на экране, а не пиксели исходного изображение, как следствие, при увеличении в 2 раза (как в рефференсе), видна пикселизация.

Добавлено через 20 минут
Нашел неплохое готовое решение, ИМХО, то, что нужно: http://www.flabell.com/products/thanks_user/218

Добавлено через 36 минут
Мда, похоже, это тот же самый вариант, который предлагал dodoaav... Придется писать велосипед ^^

Старый 03.04.2011, 21:09
kseniya вне форума Посмотреть профиль Отправить личное сообщение для kseniya Найти все сообщения от kseniya
  № 9  
Ответить с цитированием
kseniya
 
Аватар для kseniya

Регистрация: Oct 2010
Адрес: Новосиб
Сообщений: 122
да вы правы =(
Тогда такой вариант... фильтр должен не увеличивать а уменьшать всё что за окружностью, сейчас набросаю..

Код:
<languageVersion : 1.0;>
kernel NewFilter
<   namespace : "lense filter";
    vendor : "kseniya_slyazina@mail.ru";
    version : 1;
    description : "lense";
>
{
    parameter float r_index
    <
        minValue:       -1.0;
        maxValue:       1.0;
        defaultValue:   -1.0;
        description:    "";
    >;
    
    parameter float thickness
    <
        minValue:       2.0;
        maxValue:       300.0;
        defaultValue:   200.0;
        description:    "";
    >;
        
    parameter float radius
    <   
        minValue:       0.0;
        maxValue:       2880.0;
        defaultValue:   0.0;
        description:    "";
    >;
    input image4 source;
    output pixel4 result;
    parameter float2 center
    <
        minValue:       float2(0.0);
        maxValue:       float2(2880.0);
        defaultValue:   float2(230.0,172.8);
        description:    "";
    >;
    
    const float sqrt_2 = 1.414213562;
    const float pi =  3.14159265;
    
    void evaluatePixel()
    {
        float2 out_cor = outCoord();
        float2 out_vector = out_cor - center;
        float len = length( out_vector );
        
        if( len > radius - thickness/2.0 && len > radius + thickness/2.0 ){
            float d_center = len - radius;
            float z = sqrt( thickness*thickness + d_center+d_center );
            out_cor -= out_vector/len*z*tan( atan(d_center/z)*r_index);
        }
        result = sampleLinear(source,out_cor);
    }
}


Последний раз редактировалось kseniya; 03.04.2011 в 21:49.
Старый 03.04.2011, 22:32
ratin вне форума Посмотреть профиль Отправить личное сообщение для ratin Найти все сообщения от ratin
  № 10  
Ответить с цитированием
ratin
 
Аватар для ratin

Регистрация: Sep 2009
Сообщений: 127
kseniya, к сожалению, я не очень разбираюсь в PixelBender, попробовал адаптировать ваш код под ваш пример, но картинка осталось такой же..

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

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

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


 


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


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