Nailing orange streetlight look

Godot Version

4.7

Question

I’m trying to nail the look of orange street lights at night, but I can’t quite get it to look right… Here is a reference of what I am going for:

As you can see in the picture, everything is draped in orange, with no other lights meaning no other colours. However, in my godot scene (where there are no other lights), I get an absolutely terrible effect.

As you can see, despite the orange light being the only light source in the scene, everything is lit as if the light was a lot less orange than it is. The light itself is set to a value of #f6a149, which is pretty orange and according to colour-picking the colour spectrum from wikipedia, the exact colour value of these lights in the real world!

Other maybe-relevant info:

  • I’m using default, real-time lighting, though not much changes with any GI (except my multimeshinstance doesn’t cast shadows, so I am not using that)
  • I do not have any ambient light in the scene, from a DirectionalLight3D, WorldEnvironment or otherwise; it is completely pitch-black except for these orange lights, as in real life.

So tl;dr, if anyone has any idea what I am doing wrong, I’d appreciate some pointers! :slight_smile:

Your example picture looks monochrome enough that you might want to try to apply a post-processing effect and convert all colors to one (ColorRect over the entire viewport with a shader).

I didn’t find it on godotshaders.com, but on shadertoy I found something similar to your example.

Edit: This would do something similar with gdshader: godotshaders.com/shader/color-replacer-2/.

Hey, just popping in to say I love the idea.
I might not be the most experienced person, but maybe try “cheating” by making the tree models themselves more black/orange?

I suspect your scene may be too saturated, or the light too little. The more saturated the objects in your scene, the more they keep their own color under colored light.

Another issue is that I suspect that the real orange light is spectral orange, not a combination of red and green. Godot, like most game engine, treats light as a sum of red, green, and blue light, which can be reflected independently by objects, which is why saturated green objects look green and saturated red objects look red in orange light. True spectral orange light doesn’t work like that: it can reflect as dark orange or bright orange depending on the albedo of the object, but it will always keep its orange hue (barring fluorescent objects). Reducing the saturation of the scene is still the right fix, but you might have to go past realistic into outright grayscale for the right esthetic effect.

Darkness also affects human color perception, but that shouldn’t be an issue here. The reference picture looks like a photo, and photos aren’t affected by darkness in the same way as human eyes.

I think what you’re looking for is the “sodium vapour lamp” look, which is actually more yellow, but obviously do whatever works for you.

All the streetlights were like that when I was a kid.

I suspect you might be right on the “spectral orange” thing. In my reference, colour picking any part of the trees return orange, and even in real reference photos I have taken myself where I know the underlying colour of the leaves, it always returns as just a dark orange..

I might go the route of manual colour grading/making the textures themselves less saturated, but I’m not sure, as I do want to have a bit more flexibility over the scene - sometimes with the orange lights off, specifically.

Nonetheless, thanks for the response! :slight_smile:

Crank the light energy way up over 1. Try with 32.

Additionally use a post processing gradient (black to light orange/red) in world environment node under adjustments > color correction.