Форум: "Игры";
Текущий архив: 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