Ok, je suis nouveau à skyboxes et j'ai quelques problèmes en essayant d'obtenir une skybox gradient RADIAL. J'ai un dégradé de dégradé radial, mais quand je mets ça comme skybox, la partie qui interpole entre les deux couleurs est trop agrandie, ce qui veut dire que vous ne pouvez pas vraiment lui donner un dégradé.Comment faire un skybox gradient radial dans Unity?
Je pense que cela est parce que son thats shaders pas destinés à skyboxes. J'ai alors trouvé un shader pour un skybox à gradient linéaire qui fonctionne comme un dégradé linéaire, mais j'ai besoin qu'il soit radial, comme de la couleur du centre vers l'extérieur. J'ai regardé partout mais je ne peux pas trouver un dégradé radial SKYBOX shader. Ma question est - comment peut-on transformer un shader gradient linéaire en radial pour skybox? Ou comment puis-je faire fonctionner mon dégradé radial existant pour les skybox?
Je n'ai pas écrit, mais c'est le code pour le gradient linéaire skybox:
Shader "Custom/Horizontal Skybox"
{
Properties
{
_Color1 ("Top Color", Color) = (1, 1, 1, 0)
_Color2 ("Horizon Color", Color) = (1, 1, 1, 0)
_Color3 ("Bottom Color", Color) = (1, 1, 1, 0)
_Exponent1 ("Exponent Factor for Top Half", Float) = 1.0
_Exponent2 ("Exponent Factor for Bottom Half", Float) = 1.0
_Intensity ("Intensity Amplifier", Float) = 1.0
}
CGINCLUDE
#include "UnityCG.cginc"
struct appdata
{
float4 position : POSITION;
float3 texcoord : TEXCOORD0;
};
struct v2f
{
float4 position : SV_POSITION;
float3 texcoord : TEXCOORD0;
};
half4 _Color1;
half4 _Color2;
half4 _Color3;
half _Intensity;
half _Exponent1;
half _Exponent2;
v2f vert (appdata v)
{
v2f o;
o.position = mul (UNITY_MATRIX_MVP, v.position);
o.texcoord = v.texcoord;
return o;
}
half4 frag (v2f i) : COLOR
{
float p = normalize (i.texcoord).y;
float p1 = 1.0f - pow (min (1.0f, 1.0f - p), _Exponent1);
float p3 = 1.0f - pow (min (1.0f, 1.0f + p), _Exponent2);
float p2 = 1.0f - p1 - p3;
return (_Color1 * p1 + _Color2 * p2 + _Color3 * p3) * _Intensity;
}
ENDCG
SubShader
{
Tags { "RenderType"="Background" "Queue"="Background" }
Pass
{
ZWrite Off
Cull Off
Fog { Mode Off }
CGPROGRAM
#pragma fragmentoption ARB_precision_hint_fastest
#pragma vertex vert
#pragma fragment frag
ENDCG
}
}
}
Vous aimez cette -
Vous devez expliquer le look que vous allez pour. Voulez-vous que chaque côté de la skybox ait un dégradé radial? Ou voulez-vous juste un ciel avec un seul gradient radial qui est toujours au même endroit? – Soviut
Ill sur un exemple dans ma question - juste un radial qui reste au même endroit – skyguy