Rookie Awards 2024 - Open for Entries!
Environment and Crowd Project - 2023 Rookies Awards
Share  

Environment and Crowd Project - 2023 Rookies Awards

Adewale Ogunbekun
by AdewaleOG on 10 May 2023 for Rookie Awards 2023

As a 3D generalist, I challenged myself by delving into the world of environment creation, specifically in the area of terrain building. This allowed me to explore a VFX department I was not as familiar with and broaden my skillset. I also deepened my understanding of crowd simulation.

1 530 0
Round of applause for our sponsors

Introduction

Greetings, my name is Adewale Ogunbekun, and I'm excited to share my third-year student specialism project with you. Throughout this project, my goal was to gain knowledge about a new department in VFX production. I am pleased to say that the final product was a success, as it taught me how to use Houdini to procedurally create a landscape environment and a basic crowd simulation. To ensure the project's success, I meticulously gathered references for each aspect of the production, ranging from the crowd simulation to the shot's mood, composition, and atmosphere. My process involved extensive research and experimentation to achieve the final product. I hope my passion and dedication to this project shine through and that my process is clear enough for you to follow along and enjoy. Thank you for taking the time to learn about my work.

SpeedTree

After collecting my references, I began considering the assets I would need and how I would create them. Although I initially considered utilizing Megascan assets, I decided to push my skills further and learn how to craft trees using Speedtree. My first endeavor was creating a pine tree, which was a success. Although I produced several other trees, I ultimately did not include them in the final shot because they did not add significant value to the composition.

Heightfield

Through the use of a custom-painted mask and a series of heightfield nodes, I successfully created a detailed and optimized ground mesh for my environment. The process involved careful consideration of various factors, such as the resolution of the mesh and the overall performance of the final product. With this technique, I was able to create a visually appealing and realistic ground mesh that complements the environment's overall aesthetic. I am confident that this approach will prove useful in future projects, and I look forward to exploring its potential further.

Mask Generation

Once I had converted the heightfield to geometry, I utilized some of the masks generated by the heightfield, such as the dirt mask, by importing them into the VOPnet node. From there, I combined several masks and added anti-aliased noise to create a unique custom base mask. By using a custom base mask while scattering the assets, I was able to add more variety and depth to the environment.

Optimisation

To further optimize the terrain, I deleted sections that wouldn't appear in the camera view. Although this step required reworking some of the previously created masks, it was critical to saving memory and maximizing performance during asset scattering. By avoiding scattering assets in areas that wouldn't appear in the final shot, I was able to create a more efficient and streamlined environment. Despite the additional work, the optimized environment was worth the effort, resulting in a more realistic and visually appealing final product.

Optimisation Cont'd

Instancing

At this stage, I began scattering assets using the instance node in Houdini. To start, I imported the ground geometry and utilized another VOPnet to create a custom scatter region using the base mask created earlier. I then used an attribute paint node to add or remove density masks in areas where I needed more control over the scattered assets.

I also added a VOPnet to set color variation by mixing two color jitter nodes during the shading phase of the project. This step was critical in achieving a more visually appealing and varied environment.

Texturing the Terrain

For texturing the terrain, I downloaded several textures from Mega scans and applied them separately to different parts of the terrain using Arnold's user data node. This approach allowed me to utilize the base masks created during the terrain generation phase, such as the grass mask and bedrock, to create a more realistic and varied terrain.

By making slight color corrections to each texture, I was able to achieve a visually appealing and textured terrain within a short time frame.

Crowd Simulation


For my crowd simulation, I used Mixamo assets and animations. I began by configuring my agents using the agent prep node, which allowed for accurate collision detection with the terrain. Using the agent layer node, I attached a knife asset to my agent's right hand to add an additional layer of realism.

To further improve my agent's animations, I utilized an agent transition graph to seamlessly transition between different animations. This involved selecting frames that were similar from both animations and blending the transition within a set frame range. After preparing my agents and their animations, I created the crowd simulation using a series of point generations and spawning each agent onto these points.

Once the agents were prepared and their spawn points were created, I moved on to creating the simulation within the DOPnet. Here, I was able to create forces that affected the agents, such as the path they followed using a curve as a guide, as well as setting when animations switched from a walk to a run cycle using triggers.

Rendering Comp and Conclusion


After texturing my crowd simulation using Arnold, I set up a basic render using Arnold for Houdini. With the help of a colleague at Escape, I was able to do a simple comp in Nuke, which contributed to the final result. Overall, I am proud of choosing this project as my first environment, as I learned a lot of valuable techniques throughout the process. Next time, I plan to divide the scene into separate regions and work with a higher level of detail, using more detailed tree assets for foreground trees and low-poly ones for background trees.

Moving forward, I aim to develop my knowledge of atmospheric renders within Houdini and improve my asset management by separating them into individual render layers, providing more control during the compositing phase.

Thank you for taking the time to read through my process and for the opportunity. I hope you enjoy the final render and breakdown.

Final Comp and Breakdown


Comments (0)

This project doesn't have any comments yet.