Surreal 90s CGI Surfaces
inspired really heavily by 90s CGI renders, but real-time in Godot
Parems:
Texture: Self-explanatory, but this shader is designed to be used with Godots built-in noise generator. (Make sure check “seamless”!)
Flow: Setting this to a higher value caused the texture and normal map to be animated, good for spinning planets, water, etc
Glow: This just causes it to glow. TBH I did this by accident but I liked the effect so I kept it lol
Glossy: Simple bool that makes it shiny and reflective when turned on. Great with Blender 4.6’s updated screenspace reflections!
Has Bump: Toggles whether or not the normalmap will be used
Normal Map: I would also use a noise texture for this, to get that 90s/Y2k-era look. Just make sure to check “normal map” on the noise texture (and ofc seamless again)
To use, just pop this script into a shader material on a 3D model. You can get a lot of different looks from it with the parems above
Shader code
shader_type spatial;
uniform sampler2D Texture;
uniform float flow = 0;
uniform float glow = 1.0;
uniform bool glossy = false;
uniform bool has_bump = false;
uniform sampler2D normal_map;
void vertex() {
}
void fragment() {
vec2 uv = vec2(UV.x + TIME * flow, UV.y + TIME * flow);
vec4 noise = texture(Texture, uv);
vec3 color = vec3(noise.r, noise.g, noise.b);
//vec3 final_color = color * vec3(0, 0, .25);
ALBEDO = color * glow;
if (glossy == true) {
METALLIC = 1.0;
ROUGHNESS = 0.0;
} else {
METALLIC = 0.0;
ROUGHNESS = 1.0;
}
if (has_bump == true) {
vec4 normmap = texture(normal_map, uv);
NORMAL_MAP = vec3(normmap.r, normmap.g, normmap.b) * 1.;
}
}
//void light() {
// // Called for every pixel for every light affecting the material.
// // Uncomment to replace the default light processing function with this one.
//}

