I took a class called Virtual Cinematography and for the final project, we were assigned to create a 10-second render of 3 unique environments, or "worlds." I really loved the concept but wanted to push it a bit further, so I decided to make a more complete 70-second animation that seamlessly blended between the worlds.
I wanted each world to advance through both scale and technology, so it starts with individual plants in a forest and ends up looking out into space at two planets.
The hardest part of the project was my choice to have it actually be "one take." The entirety of the scene was contained in a single continuous project file with one camera, being able to be rendered from start to finish in one go. All of the assets are enabled and disabled as the camera moves through the scene.
Each of the 3 worlds ended up requiring very different solutions, with most of the time for the first world being spent figuring out a good system to scatter all of the different assets throughout the scene while faking a bit of wind movement. Everything in it is from Quixel, except for the distant trees and leaves, which I made in Speedtree.

This is a slightly more distant look at the scene as the camera moves through it and all of the assets are loaded and unloaded.
The plants are removed over a few frames at a random threshold so that any light they are reflecting doesn't suddenly go off in a single frame.

For the second world, I wanted to switch to a completely different visual context, while maintaining the verticality of the trees in the background.
I thought it would be interesting to have the city cover the trees over time, so I made a procedural building system based on the Federal Building in the Chicago Loop. The asset allowed me to bring in individual layers of the building, as well as control various aspects of it so that I could create the illusion of even more varied structures. Each building is the same asset with tweaked parameters, though the second one is the closest to the actual building based on its observed proportions.

This is the main network for the procedural building system and the interface I built out to control it. I ended up deciding to add purchased props like air conditioners and vents to the outside to vary the surfaces, which were then bound to the different layers so that they could remain as instances while still moving as each building's floor came in.
World 3 was by far the most complex part of the project, with everything besides the shipping containers being made procedurally in Houdini. Each container was a fairly dense mesh, so I had to figure out a way to maintain individual instances across the many ships in the scene. In addition, the space scene is generally to scale, so the planets in the distance are truly massive in the viewport.
I initially was using an HDRI for the stars, but found that even at 32k, the stars were still soft. I ended up using some Voronoi noises to the same effect.
All of the best methods I found for creating a planet shader used Blender's cycles and relied on a node exclusive to it. But, I remembered that I had the complete source code for Cycles from an older project and it contained the source OSL code for all of the nodes. All it took was making it compatible the Redshift's OSL implementation.


This is the logic for applying the individual container instances in the scene. Each ship allowed for a specific ratio of container type, size, and color to be specified, along with the percentage of container segments missing. This meant that along with each ship being completely unique, you could specify the color of each one.
There are just over 120,000 individual containers in the scene, each at around 100,000 polys. Through the magic of instancing, the render time is about 1 second longer than if they were just basic cubes.
If you see the network overview on the left, you'll see that the setup is part of a downright embarrassingly large node network that was used to create the ships completely procedurally (671 nodes, last I checked).







