Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.22;
Скачать: CL | DM;

Вниз

Эффект горячего воздуха   Найти похожие ветки 

 
Жидкое стекло ©   (2007-07-04 14:59) [0]

Здравствуйте. Как сделать эффект горячего воздуха на плоском изображении?


 
@!!ex ©   (2007-07-04 15:55) [1]

Так же как и в 3D. шейдерами проще всего.


 
@!!ex ©   (2007-07-04 15:58) [2]

В RenderMonkey есть пример Reflection-Refraction там искажается изображение когда камера под водой.
Для огня надо юзать тотже эффект.


 
Jkot ©   (2007-07-04 16:41) [3]

Я такое на GLSL делал поделится?


 
@!!ex ©   (2007-07-04 16:44) [4]

> [3] Jkot ©   (04.07.07 16:41)

Делись!


 
Jkot ©   (2007-07-04 17:03) [5]

VP

varying vec2 TexCoord;

void main(void)
{
 gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
 TexCoord  =gl_MultiTexCoord0.xy;
}


FP


uniform sampler2D BaseTex;
uniform sampler2D NormalTex;
uniform sampler2D AlphaTex;
uniform vec2 Phase;
uniform float Size;
uniform float Intensity;

varying vec2 TexCoord;

void main(void)
{
 float Alpha  = texture2D(AlphaTex,TexCoord).r;
 vec4  Color  = texture2D(BaseTex,TexCoord + Alpha * ( normalize ( texture2D(NormalTex,(TexCoord * Size) + Phase ) ).xy*Intensity-Intensity/3)  );
 Color.w      = Alpha;
 gl_FragColor = Color;
}


Phase - сдвиг для текстуры преломления, просто изменяеш x,y здесь и создеётся эффект что пар  движется

Intensity- интенсивность

Size -Scale для текстуры преломления.

BaseTex - здесь нужно передать то что по зади спрайта изображающего пар тоесть рендер в текстуру.

NormalTex - текстура для прелоления R обозначает сдвиг по x G по Y, впринципе подходят Dot текстуры для воды в общем клавное что-бы было похоже на  волны на воде и тайлёное.

AlphaTex - текстура из которой берётся R компонента как альфа текстура. Альфа должна быть 0 по краям а то будут лаги. уфф... в общем всё =)


 
Sapersky   (2007-07-04 18:36) [6]

Что такое "на плоском изображении"? Чистый софтвер?
Тогда см. FastLIB:
http://prdownloads.sourceforge.net/skinner/FastLib.zip?download
Вроде в этом дистрибутиве должен быть пример с bump-mapping; в примере поставить blending mode - none, в lightmap - картинку, в bumpmap - карту рельефа.


 
Жидкое стекло ©   (2007-07-05 00:35) [7]

>Что такое "на плоском изображении"? Чистый софтвер?

На плоском - значит не в 3D :) И чистый софтвер не цель, но ключ к пониманию. Интересует именно алгоритмическая часть, чтобы её можно было реализовать на обычных битмапах.

К сожалению, в [5] я вижу, что задействован какой-то алгоритм искажения, но пока не могу его понять.

Более всего пока подходит [6]. В пресете Reflective Text вижу задатки искажений. Наклепал плавный рельеф - в общем, похоже. Если других идей/способов не предложат, то остановлюсь на этом.


 
Jkot ©   (2007-07-05 06:06) [8]

> К сожалению, в [5] я вижу, что задействован какой-то алгоритм искажения, но пока не могу его понять.

ключ к пониманию вот эта строка:

Color  = texture2D(BaseTex,TexCoord + Alpha * ( normalize ( texture2D(NormalTex,(TexCoord * Size) + Phase ) ).xy*Intensity-Intensity/3)  );

Выбрасываем доп. функции.

texture2D(BaseTex,TexCoord +normalize ( texture2D(NormalTex,(TexCoord)) ).xy*Intensity);

Получается BaseTex нормальный задний фон TexCoord нормальные координаты а кним добавняется r и g ( как x и y) из текстуры преломления..


 
Sapersky   (2007-07-05 13:30) [9]

И [5], и [6] - один и тот же бамп-мэппинг (bump-mapping):
Dst[x,y] = Src[x + Bump[x,y].x, y + Bump[x,y].y]
В [5] модифицируются текстурные координаты, а в [6] - непосредственно пиксели картинки.
Аппаратно реализовать можно и без шейдеров. См. пример BumpUnderwater (или BumpWaves) из DX8 SDK ( http://www.clootie.ru ).


 
Жидкое стекло ©   (2007-07-05 19:42) [10]

Решил сделать на основе бамп-мэппинга, только вот не могу подобрать эту вот карту рельефа (чтоб получился горячий воздух). Сделал синусоидальную.

Закачать можно тут:
http://www.speedyshare.com/419733847.html
или
http://www.sharing.ru/dl/061589/hotair.rar.html
(300 кб, rar)

Похоже?


 
@!!ex ©   (2007-07-05 20:20) [11]

ИМХО нет.
Есть замечание, что слишком дискретный эффект.


 
Жидкое стекло ©   (2007-07-05 20:43) [12]

Дискретный - всмысле, можно рёбра посчитать?


 
@!!ex ©   (2007-07-05 21:13) [13]

> [12] Жидкое стекло ©   (05.07.07 20:43)

У меня возникло ощущение, что не плавный эффект.


 
Jkot ©   (2007-07-06 05:43) [14]

Я не понял ты мой шейдер юзал?


 
@!!ex ©   (2007-07-06 10:16) [15]

> [14] Jkot ©   (06.07.07 05:43)

Врядли. скорее fastlib.


 
Sapersky   (2007-07-06 16:30) [16]

На тёмном фоне плохо видно, что там за эффект вообще. Лучше бы машину в профиль поставить (вид сбоку).
Дискретный - скорее пикселизованный, что ли, или "блочный"... видимо, артефакты jpeg вылезают.

Попытался состряпать карту рельефа на собственном генераторе текстур:
http://slil.ru/24600602
(67 кб, rar)
Сохранить карту рельефа - переключиться на эффект "Distort" + контекстное меню у картинки.



Страницы: 1 вся ветка

Текущий архив: 2009.11.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.013 c
1-1225292591
Циркуль
2008-10-29 18:03
2009.11.22
Не печатаются изображения на принтере


2-1255069689
Xmen
2009-10-09 10:28
2009.11.22
Работа с дисками


4-1212570514
dll
2008-06-04 13:08
2009.11.22
LoadLibrary


15-1253824205
Юрий
2009-09-25 00:30
2009.11.22
С днем рождения ! 25 сентября 2009 пятница


15-1252405705
@!!ex
2009-09-08 14:28
2009.11.22
Подскажите хороший проигрыватель онлайн-радио