Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2009.11.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
Жидкое стекло ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.007 c
2-1254829215
den49
2009-10-06 15:40
2009.11.22
Работа с потоками


15-1253632350
Дмитрий Белькевич
2009-09-22 19:12
2009.11.22
Компонент, выглядящий как создать таблицу в office 2007


2-1255248705
ChinYan
2009-10-11 12:11
2009.11.22
Модуль и Record


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


3-1229512363
Оптимайзер
2008-12-17 14:12
2009.11.22
Оптимизация запроса к DB2





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский