Procedural Night Scene with blender

geometry nodes
May 2022

Hiroshi Nagai is a legend.
After recreating his other piece with geometry nodes the other time, I think it is worth doing something similar as a practice. So I picked a night scene from his collection, a scene with high rise buildings at night with a foreground of humbling stores. The scene consists mainly of:
  1. Foreground: flat stores, road with ambience from the light of the store
  2. Foreground - Midground seperator: some Greenery with heavy shade
  3. Midground: Buildings with "random" height
  4. Background: Sky
I also wanted to add more twists to the static illustration. What about lighting it up? transiting from the beginning of sunset to darker ambience? How would the buildings and stores react the transition, and the sky?
Again, a rule of thumb for this piece is no image texture. :D Shader + Geometry Nodes only. I don't know, but I really enjoyed the process of thinking solutions with GN/Shader editor.
The illumination from buildings are modelled with a brick texture. The bias of brick texture determines the randomness of which windows to light up and the intensity, hence by tuning the bias it creates this effect of the building gradually being fully light up. There are 2 variation of illuminating colors. For those closer to the background they should be more white instead of the yellow light. This is done by using a "Greater Than" node based on the Y location of the building instance. If the Y location is greater than a certain value, the mix factor (basically acts as a switch) for the mix rgb node will have a factor of 1 for the white color. I really like how you can define one material and with the right variables, there can be a lot of variations in the same material based on location or other factors (or even random).
The shadow projected on the ground from the store front is one of the highlights of the original piece. The shape is achieved by placing 2 area lights with different dimensions (both rectangle) and intensity, and rest is the color-ramp set up to get the color right. (Gosh I love voronoi)..
One major mistake I made with this was using grease pencil object as the city illumination, and distributed them with geometry node on the plane. This heavily slowed down the rendering, probably converting them as mesh would be much friendlier for computer. But anyhow, the biggest lesson I learnt from this is the combination of colors can effectively put shading on the scene, either by omitting the details, or blurring the boundary between objects with similar colors.

Built with Gatsby ^5.3 + Notion Email 📥 Twitter 💬 Github 👩‍💻 LinkedIn