Красный Сокол: Создание планеты

В нашей игре вы можете заметить что крутится планеты, и самый сок в том, что он динамическим освещается. На тёмных участках жители зажигают фонари, а на светлом всё освещается солнцем.

y4Bo5uHY5IEBJW

dAdYQZw

Подобного эффекты мы добились простым шейдером. Нам понадобилось две текстуры:

  1. Полностью освещённая сторона;
  2. Полностью затенённая сторона;

Далее при рендеринге сферы мы выбираем с помощью функции линейной интерполяции пиксель с одной из двух квартин в зависимости от освещённости пикселя. Освещённость пикселя считаем средствами юнити без каких либо изменений.

Основной код шейдера:

fixed4 frag (v2f i) : SV_Target
{
   fixed4 dayCol = tex2D (_MainTex, i.uv);
   fixed4 nightCol = tex2D (_NightTex, i.uv);
   fixed4 resultCol = lerp (nightCol, dayCol, i.diff);

   return resultCol * (i.diff * 2);
}