Introduction
This project came about at the intersection of KittyHorrorShow and reading about Angkor and the Khmer Civilization. I really liked her games "Grandmother" and "Monastery", and I had wanted to experiment with low-res rendering ever since I had played Ultima Underworld in early 2020, so it all came together, here.
The "narrative" was a play on how the gold went from adorning idols (in which gods resided) in past centuries to adorning secular museum goers (to the horror of said gods stuck in their idols watching the passersby).
3D Modelling
It was very cool to work on, especially since I had never done any 3D modelling. I tried Blender for a while, but the program was incredibly bloated (for one who isn't specialized in modelling), so I decided to implement my own tools and see what came of it.
I modeled everything myself with these customs tools, except the statues' bodies - for which I used a basic rigged model and then set their positions (and duplicated arms and heads where applicable!).
The tool was basic, but fit the purpose. I started by creating a "base", an horizontal crossection. Then I created the "vertical contour" (a cone would be a circular base with vertical contour going from 1 to 0). It was also possible to twist and rotate the "axis" of the model, for some of the props.
The architecture itself used to "fractal-like" techniques: the first to use repeated subdivision to create an intricate "base" (like a koch snowflake), and the second to simply copy the model, in a smaller scale successively.
Ornamentation and Texture Synthesis
I've also generated most of the textures myself, with various kinds of noise, as well as creating their normal maps.
The downscaling was particularly interesting, since the algorithm for the textures and the actual rendering was different (for aesthetic purposes).
The texturing benefitted from averaging the pixels within a certain area to preserve the original image as much as possible; but the rendering worked better if you sampled a single pixel from the area rather than averaging, precisely because it more faithfully simulates "low" resolution (where you don't have the computational power to render more pixels than you see on the screen).
The sky also required a completely different approach described here.
Sky
See this other page for details.
Sun-shafts / God-rays
An offshoot from Angkhorror was an experiment with god-rays, using simply procedural clouds (2D layer of clouds using 3D fbm to create an organic morphing effect).The inspiration for this came from Rabindranath Tagore's Gitanjali 42:
Early in the day it was whispered that we should sail in a boat, only thou and I, and never a soul in the world would know of this our pilgrimage to no country and to no end.
In that shoreless ocean, at thy silently listening smile my songs would swell in melodies, free as waves, free from all bondage of words.
Is the time not come yet? Are there works still to do? Lo, the evening has come down upon the shore and in the fading light the seabirds come flying to their nests.
Who knows when the chains will be off, and the boat, like the last glimmer of sunset, vanish into the night?
Though, to be totally honest, I still prefer his novels (Gora, especially) to his poems (though the lyrical aspect of his prose).
ANYWAY
I think this is a pretty common trick to render god rays. First, you render the whole scene into a silhouette (render every opaque object black, and semi-transparent objects shades of gray), with light sources in lighter colors. Then, you apply radial blur to the dark areas, away from the light, and it gives the effect of soft shadows.
I also like how the sea textures turned out.