Смешивание Текстур нормалей в Shader

Шейдеры и все-все-все.

Смешивание Текстур нормалей в Shader

Сообщение Kabanelloo 31 июл 2015, 18:43

Доброго времени суток ) . Я не могу написать смешивание нормалей .

Есть основной _BumpMap

и на него нужно наложить _NormalDeteilMap

при это иметь _Scaler типа Float который регулирует смешивание + и - .

Я еще не реализовал смешивание и особо не получается.

И нужно получить на выход в o.Normal который принимает только tex2D . в RGB.

Вот я ломаю и никто не знает, Да и с стандарт Юнити шейдера вытащить не получается.

Я реализовал Смешивание текстуры дифузной и решил сделать такое же смешивание только нормалей. Получается не очень ) x_x

Помогите с этой функцией. Прошу )))) Есть конечно вот это http://blog.selfshadow.com/publications/blending-in-detail/

Там об этом речь идет только я не понимаю как это реализовать ....
Kabanelloo
UNITрон
 
Сообщения: 163
Зарегистрирован: 03 фев 2012, 21:55
Откуда: Kaliningrad/Crimea

Re: Смешивание Текстур нормалей в Shader

Сообщение alt3d 03 авг 2015, 10:25

Так а что, обычный lerp не подходит?
У меня так смешиваются нормал-карты, и вроде все корректно.

// Распаковываем текстуры
float3 normalFirst = UnpackNormal(tex2D(_NormalMapFirstTex, IN.uv_NormalMapFirstTex));
float3 normalSecond = UnpackNormal(tex2D(_NormalMapSecondTex, IN.uv_NormalMapSecondTex));

// Смешиваем и выводим результат в структуру
float3 normalResult = lerp(normalFirst , normalSecond , _NormalMix);
o.Normal = normalResult ;

Где:
_NormalMapFirstTex и _NormalMapSecondTex - слоты под карты нормалей,
uv_NormalMapFirstTex и uv_NormalMapSecondTex - их текстурные координаты,
_NormalMix - значение "смешивания"

А за ссылку, спасибо :).
Позже почитаю, интересно.
alt3d
Старожил
 
Сообщения: 687
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ

Re: Смешивание Текстур нормалей в Shader

Сообщение Kabanelloo 04 авг 2015, 11:59

Спасибо буду пробовать ) . Есть разные смешивания . Разные математ формулы. Я стараюсь выбрать оптимальную. Да вот были которые ужасно смешивают ))
Kabanelloo
UNITрон
 
Сообщения: 163
Зарегистрирован: 03 фев 2012, 21:55
Откуда: Kaliningrad/Crimea

Re: Смешивание Текстур нормалей в Shader

Сообщение Razor_V 14 окт 2015, 13:33

Можно сделать так:
Синтаксис:
Используется csharp
o.Normal =  (normalFirstr + (normalSecond * _NormalMix))-_NormalMix/2.0;

P.S.
Lerp выполняет плавную интерполяцию между двумя значениями.
Razor_V
UNец
 
Сообщения: 12
Зарегистрирован: 19 ноя 2014, 14:56


Вернуться в Shader Lab

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

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