first
This commit is contained in:
commit
b97b3a9ae4
79 changed files with 1729 additions and 0 deletions
34
exo2/shaders/2_read_screen_tex.gdshader
Normal file
34
exo2/shaders/2_read_screen_tex.gdshader
Normal file
|
@ -0,0 +1,34 @@
|
|||
shader_type canvas_item;
|
||||
render_mode blend_disabled;
|
||||
|
||||
// On definit un uniform, donc quelque chose que le shader a en input
|
||||
// ici hint_screen_texture signifie qu'on recupere la texture de l'ecran
|
||||
// repeat_disable qu'on souhaite pas que la texture soit infinie et se repete
|
||||
// filter_nearest qu'on veut pas d'interpolation bizzare
|
||||
uniform sampler2D screen_tex : hint_screen_texture, repeat_disable, filter_nearest;
|
||||
uniform vec3 new_green_color : source_color;
|
||||
|
||||
void fragment() {
|
||||
// Called for every pixel the material is visible on.
|
||||
vec3 screen_color = texture(screen_tex, SCREEN_UV).rgb;
|
||||
// Le produit scalaire (dot) est tres utile pour avoir une sorte de distance entre deux vecteurs
|
||||
// On veut savoir si le pixel derriere est vert,
|
||||
// donc on compare ca au vecteur vert rgb normalize (vec3(0, 1, 0))
|
||||
bool is_green = dot(normalize(screen_color), vec3(0, 1, 0)) > 0.69;
|
||||
if (is_green){
|
||||
// Moyenne ponderee, pour eviter d'avoir que du rouge (trop flat)
|
||||
COLOR.rgb = (3.0*new_green_color + screen_color)/4.0;
|
||||
}
|
||||
else{
|
||||
COLOR.rgb = screen_color;
|
||||
}
|
||||
// TODO
|
||||
// Ajoute du bruit, je veux que les feuilles aient du bruit
|
||||
// Ajoute une sorte de cadre, je veux bien voir les bordures de l'effet
|
||||
|
||||
}
|
||||
|
||||
//void light() {
|
||||
// // Called for every pixel for every light affecting the CanvasItem.
|
||||
// // Uncomment to replace the default light processing function with this one.
|
||||
//}
|
Loading…
Add table
Add a link
Reference in a new issue