PMG

Форумы по созданию игр
Текущее время: 28 мар 2024 13:23

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Шейдер огня
СообщениеДобавлено: 18 сен 2010 17:42 
Не в сети
Любитель

Зарегистрирован: 19 сен 2008 14:48
Сообщения: 44
У меня есть пиксельный шейдер:
Код:
float fTime0_X;

sampler Flame;
sampler Noise;

float4 ps_main(float2 tex_coord : TEXCOORD0   ) : COLOR0
{   
   float3 coord;

   coord.x = tex_coord.x;
   coord.y = tex_coord.y + fTime0_X;
   coord.z = 1;

   float noisy = tex2D(Noise, coord);
   float heat = noisy + tex_coord.y;
   float4 flame = tex2D(Flame, heat);
   
    return flame;
}

Скриншот следующий:
Изображение
Текстура Flame:
Изображение
Текстура Noise:
Изображение

В этом пиксельном шейдере меня интересует вопрос, почему смешиваеться цвет и координаты:
Код:
float heat = noisy + tex_coord.y;

Я понимаю если смешивается "цвет+цвет" или "координата+координата", но как это "цвет+координата". Что это нам дает? Причем если заменить на следующий код:
Код:
float heat = noisy + tex_coord.x;

то текстура Flame поворачиваеться на 90 градусов, то есть огонь горит сверху вниз горит как и раньше, а текстура Flame наложена слева на право- вот скриншот:
Изображение

Поэтому не пойму откуда форумула
Код:
float heat = noisy + tex_coord.x;

знает использую я tex_coord.y или использую tex_coord.x ? Если все равно результат float и координаты x(0,1) и y(0,1) значит огонь не должен менять ориентацию так как результат один float heat. Откуда формула знает о том использую я x или использую y текстурных координат? Но все что я понял что это одна текстура двигаеться сверху вниз (Noise) а другая (Flame) на нее просто накладываеться для создания оттенков огня . Но чисто математически я этого понять не могу - float heat = noisy + tex_coord.y.

Объясните пожалуйста, заранее благодарен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Шейдер огня
СообщениеДобавлено: 20 сен 2010 08:44 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Я думаю не большое случайное смещение не помешает :)

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Шейдер огня
СообщениеДобавлено: 20 сен 2010 12:51 
Не в сети
Любитель

Зарегистрирован: 19 сен 2008 14:48
Сообщения: 44
Большое спасибо MagicWolf - я уже догадался сам что вроде как цветовой рельеф, или цветовой шум из текстуры Noise накладывается на координату X текстуры Flame и получается что текстура Flame (градиент) повторяет узор текстуры Noise.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB