Bonjour à tous.
Je recherche un shader permettant de faire un effet de scan sur une planète à la manière d'Eve Online.
Voici un gif :
Étant complètement noob en shader. Je voulais savoir si vous avez déjà écrit ce genre de shader et si vous pouvez m'aider.
J'ai rechercher sur le net et je n'arrive pas à trouver un truc similaire.
Merci d'avance.
[Recherche] Effet de scan sur une planète.
[Recherche] Effet de scan sur une planète.
Programmeur C# - JS- C++
Mon blog: https://www.blog.dinomaillet.fr/
Ma page: https://www.facebook.com/TacktylAppz
Mes jeux:
- Planet Guardian.
- Circle Reflex.
- Color Case.
Mon blog: https://www.blog.dinomaillet.fr/
Ma page: https://www.facebook.com/TacktylAppz
Mes jeux:
- Planet Guardian.
- Circle Reflex.
- Color Case.
Re: [Recherche] Effet de scan sur une planète.
Salut,
si je devais faire pareil je mettrais une color ramp qui scale et replace les valeur niveau de gris de ta texture avec une valeur de depart. un peu comme un cutout en fait.
peut être qu'il y a d'autres façons de faire.
si je devais faire pareil je mettrais une color ramp qui scale et replace les valeur niveau de gris de ta texture avec une valeur de depart. un peu comme un cutout en fait.
peut être qu'il y a d'autres façons de faire.
ʕ·͡ᴥ·ʔ ==> Mon Portfolio <== ʕ·͡ᴥ·ʔ
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
Re: [Recherche] Effet de scan sur une planète.
ou plus simplement du "Dissolve" :
https://www.google.com/search?q=unity3d+dissolve+shader
http://wiki.unity3d.com/index.php?title ... th_Texture
https://www.assetstore.unity3d.com/en/# ... r&dissolve
Avec des textures moins...chaotiques (Genre Metaballs) cela devrait le faire.
https://www.google.com/search?q=unity3d+dissolve+shader
http://wiki.unity3d.com/index.php?title ... th_Texture
https://www.assetstore.unity3d.com/en/# ... r&dissolve
Avec des textures moins...chaotiques (Genre Metaballs) cela devrait le faire.
Re: [Recherche] Effet de scan sur une planète.
je vois pas comment tu veux faire ça ZJP ?
ʕ·͡ᴥ·ʔ ==> Mon Portfolio <== ʕ·͡ᴥ·ʔ
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !
- boubouk50
- ModoGenereux
- Messages : 6216
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [Recherche] Effet de scan sur une planète.
Tu te sers de la map comme d'un masque. Il te "suffit" d'ajouter le niveau de gris à une variable externe comprise entre -1 et 1 pour avoir une ramp qui va de noir complet à blanc complet.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: [Recherche] Effet de scan sur une planète.
+1boubouk50 a écrit :Tu te sers de la map comme d'un masque. Il te "suffit" d'ajouter le niveau de gris à une variable externe comprise entre -1 et 1 pour avoir une ramp qui va de noir complet à blanc complet.
Il faut deux textures : une avec le dégradé coloré et l'autre avec le motif en niveaux de gris.
Et comme tu débutes en shader, voici un exemple :
Code : Tout sélectionner
Shader "Unlit/noise_map"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_Gradient("Gradient", 2D) = "white" {}
_Offset("Offset", Range(-1, 1)) = 1
_Value("Value", Range(0.1, 10)) = 1
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
// make fog work
#pragma multi_compile_fog
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
UNITY_FOG_COORDS(1)
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
sampler2D _Gradient;
float4 _Gradient_ST;
float _Offset;
float _Value;
v2f vert (appdata v)
{
v2f o;
o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
// sample the texture
fixed4 intensity = tex2D(_MainTex, i.uv);
float2 uv;
uv.x = clamp(pow(intensity + _Offset,_Value),0.01,0.999);
uv.y = 0;
fixed4 col = tex2D(_Gradient, uv );
// apply fog
UNITY_APPLY_FOG(i.fogCoord, col);
return col;
}
ENDCG
}
}
}
Et si tu as des questions sur les fonctions utilisées, n'hésites pas à demander.
Re: [Recherche] Effet de scan sur une planète.
Merci à vous pour vos réponses
Je pense qu'il me faudrais un mix entre ce code et ce que propose ZJP, un effet disolve
Pour donner plus de détail par rapport à l'image d'Eve Online. Ce scan permet de trouver les zones où les ressources de la planète sont les plus abondantes.
Mais je pense que vous l'avez compris
Petite question, est-il possible de lire des données d'un script C# à partir d'un script shader ?
Merci encore
Je vais continuer les recherches ^^.
C'est déjà pas mal merci Alesk.Alesk a écrit :+1boubouk50 a écrit :Tu te sers de la map comme d'un masque. Il te "suffit" d'ajouter le niveau de gris à une variable externe comprise entre -1 et 1 pour avoir une ramp qui va de noir complet à blanc complet.
Il faut deux textures : une avec le dégradé coloré et l'autre avec le motif en niveaux de gris.
Et comme tu débutes en shader, voici un exemple :
A toi de voir si le calcul de "uv.x" correspond à ce que tu cherchesCode : Tout sélectionner
Shader "Unlit/noise_map" { Properties { _MainTex ("Texture", 2D) = "white" {} _Gradient("Gradient", 2D) = "white" {} _Offset("Offset", Range(-1, 1)) = 1 _Value("Value", Range(0.1, 10)) = 1 } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag // make fog work #pragma multi_compile_fog #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; UNITY_FOG_COORDS(1) float4 vertex : SV_POSITION; }; sampler2D _MainTex; float4 _MainTex_ST; sampler2D _Gradient; float4 _Gradient_ST; float _Offset; float _Value; v2f vert (appdata v) { v2f o; o.vertex = mul(UNITY_MATRIX_MVP, v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex); UNITY_TRANSFER_FOG(o,o.vertex); return o; } fixed4 frag (v2f i) : SV_Target { // sample the texture fixed4 intensity = tex2D(_MainTex, i.uv); float2 uv; uv.x = clamp(pow(intensity + _Offset,_Value),0.01,0.999); uv.y = 0; fixed4 col = tex2D(_Gradient, uv ); // apply fog UNITY_APPLY_FOG(i.fogCoord, col); return col; } ENDCG } } }
Et si tu as des questions sur les fonctions utilisées, n'hésites pas à demander.
Je pense qu'il me faudrais un mix entre ce code et ce que propose ZJP, un effet disolve
Pour donner plus de détail par rapport à l'image d'Eve Online. Ce scan permet de trouver les zones où les ressources de la planète sont les plus abondantes.
Mais je pense que vous l'avez compris
Petite question, est-il possible de lire des données d'un script C# à partir d'un script shader ?
Merci encore
Je vais continuer les recherches ^^.
Programmeur C# - JS- C++
Mon blog: https://www.blog.dinomaillet.fr/
Ma page: https://www.facebook.com/TacktylAppz
Mes jeux:
- Planet Guardian.
- Circle Reflex.
- Color Case.
Mon blog: https://www.blog.dinomaillet.fr/
Ma page: https://www.facebook.com/TacktylAppz
Mes jeux:
- Planet Guardian.
- Circle Reflex.
- Color Case.
- boubouk50
- ModoGenereux
- Messages : 6216
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [Recherche] Effet de scan sur une planète.
Oui, la classe shader te permet de la faire, shader qui est utilisé par ton material utilisé dans ton renderer.Petite question, est-il possible de lire des données d'un script C# à partir d'un script shader ?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation