Динамическое небо средствами СкайБокс - Форум Игроделов
Пт, 03 Май 2024, 09:32 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » SkyBox » Динамическое небо средствами СкайБокс (не скайдом)
Динамическое небо средствами СкайБокс
NapalmRainДата: Ср, 05 Мар 2014, 22:53 | Сообщение # 1
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Доброго всем времени суток!
Уже поднимал данный вопрос, но, к сожалению, так и не получилось добиться нужного результата.
Понял, что средствами юнити этого не решить (подобных Material.Lerp)
Встал вопрос о шейдере. По полученным советам набросал простенький шейдер

Но есть у этого шейдера одна маленькая недоработочка. В самой игре небо с таким шейдером выглядит тусклым. Скайбокс, конечно, меняется, всё прекрасно, но красоты картинки нет вовсе. Может кто подскажет, где я повернут не туда?
 
СообщениеДоброго всем времени суток!
Уже поднимал данный вопрос, но, к сожалению, так и не получилось добиться нужного результата.
Понял, что средствами юнити этого не решить (подобных Material.Lerp)
Встал вопрос о шейдере. По полученным советам набросал простенький шейдер

Но есть у этого шейдера одна маленькая недоработочка. В самой игре небо с таким шейдером выглядит тусклым. Скайбокс, конечно, меняется, всё прекрасно, но красоты картинки нет вовсе. Может кто подскажет, где я повернут не туда?

Автор - NapalmRain
Дата добавления - 05 Мар 2014 в 22:53
seamanДата: Ср, 05 Мар 2014, 23:23 | Сообщение # 2
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Думаю оттого, что оно не освещается (не реагирует на светильники). Нужно что-то подавать на DiffusePower или на Emission. Лучше всего некую сумму цветов, например поставить desaturation после Lerp-а и подать на Emission.
Поэкспериментировать....
 
СообщениеДумаю оттого, что оно не освещается (не реагирует на светильники). Нужно что-то подавать на DiffusePower или на Emission. Лучше всего некую сумму цветов, например поставить desaturation после Lerp-а и подать на Emission.
Поэкспериментировать....

Автор - seaman
Дата добавления - 05 Мар 2014 в 23:23
NapalmRainДата: Чт, 06 Мар 2014, 01:12 | Сообщение # 3
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
seaman, премного благодарен!
Получилось путём добавления выхода с Lerp'а на Emission.
Осталась одна, не совсем понятная проблемка... угол наклона скайкуба... Получается небо находится постоянно под наклоном.
Пример под спойлером:

Попытка смены параметра ориентации куба в шейдере (Positiv X, Negativ X и т.д.) не дала результатов.

Добавлено (06 Мар 2014, 01:12)
---------------------------------------------
Теста ради создал просто щейдер с одной только опцией кубмап и поместил её в качестве скайбокса, такая же история. Он почему-то наклонён...

 
Сообщениеseaman, премного благодарен!
Получилось путём добавления выхода с Lerp'а на Emission.
Осталась одна, не совсем понятная проблемка... угол наклона скайкуба... Получается небо находится постоянно под наклоном.
Пример под спойлером:

Попытка смены параметра ориентации куба в шейдере (Positiv X, Negativ X и т.д.) не дала результатов.

Добавлено (06 Мар 2014, 01:12)
---------------------------------------------
Теста ради создал просто щейдер с одной только опцией кубмап и поместил её в качестве скайбокса, такая же история. Он почему-то наклонён...


Автор - NapalmRain
Дата добавления - 06 Мар 2014 в 01:12
waruiyumeДата: Чт, 06 Мар 2014, 02:50 | Сообщение # 4
Нет аватара
 
Сообщений: 85
Награды: 1
Репутация: 37
Статус: Offline
У Вас горизонт завален, Кэп.

Код

Shader "RenderFX/Skybox Cubed2Texures" {
Properties {
  _Tint ("Tint Color", Color) = (.5, .5, .5, .5)
  _Tex ("Cubemap", Cube) = "white" {}
  _Tex1 ("Cubemap1", Cube) = "white" {}
  _BlendPos("BlendPos", Range(0, 1)) = 0
}

SubShader {
  Tags { "Queue"="Background" "RenderType"="Background" }
  Cull Off ZWrite Off Fog { Mode Off }

  Pass {
    
   CGPROGRAM
   #pragma vertex vert
   #pragma fragment frag

   #include "UnityCG.cginc"

   samplerCUBE _Tex;
   samplerCUBE _Tex1;
   fixed4 _Tint;
   fixed _BlendPos;
    
   struct appdata_t {
    float4 vertex : POSITION;
    float3 texcoord : TEXCOORD0;
   };

   struct v2f {
    float4 vertex : POSITION;
    float3 texcoord : TEXCOORD0;
   };

   v2f vert (appdata_t v)
   {
    v2f o;
    o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
    o.texcoord = v.texcoord;
    return o;
   }

   fixed4 frag (v2f i) : COLOR
   {
    fixed4 tex = texCUBE (_Tex, i.texcoord);
    fixed4 tex1 = texCUBE (_Tex1, i.texcoord);
    fixed4 blendResult = lerp(tex, tex1, _BlendPos);
    fixed4 col;
    col.rgb = blendResult.rgb + _Tint.rgb - unity_ColorSpaceGrey;
    col.a = blendResult.a * _Tint.a;
    return col;
   }
   ENDCG  
  }
}   

Fallback Off

}



 
СообщениеУ Вас горизонт завален, Кэп.

Код

Shader "RenderFX/Skybox Cubed2Texures" {
Properties {
  _Tint ("Tint Color", Color) = (.5, .5, .5, .5)
  _Tex ("Cubemap", Cube) = "white" {}
  _Tex1 ("Cubemap1", Cube) = "white" {}
  _BlendPos("BlendPos", Range(0, 1)) = 0
}

SubShader {
  Tags { "Queue"="Background" "RenderType"="Background" }
  Cull Off ZWrite Off Fog { Mode Off }

  Pass {
    
   CGPROGRAM
   #pragma vertex vert
   #pragma fragment frag

   #include "UnityCG.cginc"

   samplerCUBE _Tex;
   samplerCUBE _Tex1;
   fixed4 _Tint;
   fixed _BlendPos;
    
   struct appdata_t {
    float4 vertex : POSITION;
    float3 texcoord : TEXCOORD0;
   };

   struct v2f {
    float4 vertex : POSITION;
    float3 texcoord : TEXCOORD0;
   };

   v2f vert (appdata_t v)
   {
    v2f o;
    o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
    o.texcoord = v.texcoord;
    return o;
   }

   fixed4 frag (v2f i) : COLOR
   {
    fixed4 tex = texCUBE (_Tex, i.texcoord);
    fixed4 tex1 = texCUBE (_Tex1, i.texcoord);
    fixed4 blendResult = lerp(tex, tex1, _BlendPos);
    fixed4 col;
    col.rgb = blendResult.rgb + _Tint.rgb - unity_ColorSpaceGrey;
    col.a = blendResult.a * _Tint.a;
    return col;
   }
   ENDCG  
  }
}   

Fallback Off

}


Автор - waruiyume
Дата добавления - 06 Мар 2014 в 02:50
NapalmRainДата: Пн, 10 Мар 2014, 11:44 | Сообщение # 5
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Разобрался с заваленным горизонтом. Возникла проблема немного другого плана.
Не совсем понимаю тонкости настройки при создании cubemap.
Подготовил текстуры. Импортировал по инструкции
создал cubemap, указал у него размер 1024 (такой же как у картинок) но вот результат что-то совсем не радующий.

Может кто-то сталкивался с подобной ситуацией?


Сообщение отредактировал NapalmRain - Пн, 10 Мар 2014, 11:45
 
СообщениеРазобрался с заваленным горизонтом. Возникла проблема немного другого плана.
Не совсем понимаю тонкости настройки при создании cubemap.
Подготовил текстуры. Импортировал по инструкции
создал cubemap, указал у него размер 1024 (такой же как у картинок) но вот результат что-то совсем не радующий.

Может кто-то сталкивался с подобной ситуацией?

Автор - NapalmRain
Дата добавления - 10 Мар 2014 в 11:44
seamanДата: Пн, 10 Мар 2014, 12:37 | Сообщение # 6
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
создал cubemap

И где этоделают в инструкции?
Цитата
указал у него размер 1024

И где Вы это сделали?
 
Сообщение
Цитата
создал cubemap

И где этоделают в инструкции?
Цитата
указал у него размер 1024

И где Вы это сделали?

Автор - seaman
Дата добавления - 10 Мар 2014 в 12:37
NapalmRainДата: Пн, 10 Мар 2014, 13:19 | Сообщение # 7
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
С последней проблемой разобрался самостоятельно.
Цитата seaman ()
И где этоделают в инструкции?

В инструкции написано, как импортировать текстуры для использования их в качестве скайбоксов. Кидать их потом просто на скайбокс или создавать для этого кубмап - это уже второй вопрос.
Цитата seaman ()
И где Вы это сделали?

В самом кубмапе.

Идея косяка в том, что Юнити (не совсем понятно почему, возможно просто баг) не реагирует на изменение размера кубмапа уже после того, как ему указали тектуры. Если сначла создать пустой кубмап, задать ему самы большой размер текстур (face size = 2048), а уже потом закидывать на него тектуры, то такого косяка не будет.


Сообщение отредактировал NapalmRain - Пн, 10 Мар 2014, 13:20
 
СообщениеС последней проблемой разобрался самостоятельно.
Цитата seaman ()
И где этоделают в инструкции?

В инструкции написано, как импортировать текстуры для использования их в качестве скайбоксов. Кидать их потом просто на скайбокс или создавать для этого кубмап - это уже второй вопрос.
Цитата seaman ()
И где Вы это сделали?

В самом кубмапе.

Идея косяка в том, что Юнити (не совсем понятно почему, возможно просто баг) не реагирует на изменение размера кубмапа уже после того, как ему указали тектуры. Если сначла создать пустой кубмап, задать ему самы большой размер текстур (face size = 2048), а уже потом закидывать на него тектуры, то такого косяка не будет.

Автор - NapalmRain
Дата добавления - 10 Мар 2014 в 13:19
MishavetДата: Вс, 25 Янв 2015, 16:16 | Сообщение # 8
Нет аватара
 
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
Сказали б хоть откуда скачать Готовенькое wink Я думаю я не один такой ленивый
 
СообщениеСказали б хоть откуда скачать Готовенькое wink Я думаю я не один такой ленивый

Автор - Mishavet
Дата добавления - 25 Янв 2015 в 16:16
NapalmRainДата: Пн, 26 Янв 2015, 11:39 | Сообщение # 9
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Mishavet, вот тут я думаю вас сильно разочаровать)
Хотя, я конечно могу чего-то не знать и пропустить, но я потому и написал собственную систему, ибо готового ничерта нет.
Точнее есть) Но за денежку)
 
СообщениеMishavet, вот тут я думаю вас сильно разочаровать)
Хотя, я конечно могу чего-то не знать и пропустить, но я потому и написал собственную систему, ибо готового ничерта нет.
Точнее есть) Но за денежку)

Автор - NapalmRain
Дата добавления - 26 Янв 2015 в 11:39
Форум Игроделов » UNITY3D » SkyBox » Динамическое небо средствами СкайБокс (не скайдом)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024