The original Sponza environment was modeled by Frank Meinl at Crytek in the early 2000s. It’s based on a real landmark in Dubrovnik, Croatia, and the versatile 3D environment is still widely used by graphics developers for rendering and global illumination testing. In fact, several teams at Unity use Sponza to verify and test features.
In the years since the environment’s inception, many advances have been made in real-time rendering. For example, the introduction of physically based shading and lighting ushered in a new era of photorealistic visuals that weren’t possible before. This means the original Sponza environment was no longer compatible with the latest rendering standards, including physically based rendering (PBR).
In this blog, I’ll walk you through some updates I’ve made to the environment to help Unity developers realize its full potential.
To ensure that this environment remains relevant in the modern era, I converted all of its materials to comply with PBR standards. All control textures, like smoothness, ambient occlusion, metalness, etc. were created manually using Knald and Adobe Photoshop. I used the latter to remove baked-in lighting from the albedo textures.
The first conversion was for the High Definition Render Pipeline (HDRP), and the Universal (URP) and Built-in Render Pipelines followed shortly after. All versions of the project take full advantage of the capabilities of each render pipeline. However, in terms of graphical features, the HDRP version is the most complete.
PBR-compliant materials naturally allow for physically correct shading. The HDRP version has physically based lighting and exposure. The URP and Built-in Render Pipeline versions are created to match the HDRP version as closely as possible.
If you’d like to learn more about lighting in HDRP, check out this video:
Global illumination is what makes the lighting in a scene look realistic. Without it, we’d be stuck with pitch-black shadows and no indirect lighting.
In Unity, there are several methods for calculating global illumination:
The remastered Classic Sponza environment was created with Progressive Lightmapper in mind. All lightmapped objects have custom lightmap UVs. Light probe groups are used to illuminate some objects, like vegetation.
Feel free to explore other global illumination solutions in Unity using Sponza.
You can download Classic Sponza from Unity’s public GitHub repository. You’ll also find information on cloning and setup.
We plan to share more projects like this in the future. Stay tuned.
If you’d like to discuss this article or share other resources you’d like to see updated, feel free to connect with me here or in the forums. And, be sure to watch for future technical blogs from other Unity developers as part of the ongoing Tech from the Trenches series.