InZOI is the newest surprise hit from InZOI Studios. Leveraging AI and lifelife visuals to build a vibrant city simulation, it’s the next-gen SIMS. However, it’s still in early access and suffers from the ocassional bugs and stutters. InZOI is based on Unreal Engine 5 which brings with it all the kinks and complexities of Lumen, Nanite, and Virtual Shadows. Here’s our optimization guide for InZOI.
Windows/System Settings to Optimize
Enable Resizable BAR.
Turn on Game Mode.
Enable Hardware-accelerated GPU Scheduling (HAGS) and Windowed Optimizations.
Use the Windows “High Performance” power profile and set your GPU power management mode to the same.
Disable Memory Integrity. Windows Menu->VBS->Device Security.
Ensure you use the proper XMP/EXPO memory profile (if available).
Overclock your GPU if you’re narrowly missing the 60 FPS mark.
InZOI shows decent resolution scaling, producing an average of 61 FPS at 4K, 78 FPS at 1440p, and 91 FPS at 1080p (maximum quality settings with DLAA). These is the usual range we see with Unreal Engine 5 games as polygon counts are resolution bound.
Test Setup
CPU: Intel Core i9-12900K @ 5.3 GHz.
Cooler: Arctic Liquid Freezer III 420.
GPU: NVIDIA RTX 4090 FE.
Motherboard: MSI PRO Z790-P WIFI.
Memory: 16 GB x2 @ 6000 MT/s CL30.
Graphics presets drastically vary the visual quality and performance in InZOI. We recorded a ~50% deficit between the highest and lowest quality settings at 4K using DLSS “Quality” upscaling:
Very Low: 135 FPS (100%).
Low: 115 FPS (85%).
Medium: 107 FPS (79%).
High: 86 FPS (64%).
Ultra: 73 FPS (54%).
Ultra + RT: 68 FPS (50%).
Graphics Quality
InZOI: Ray Tracing & Occlusion Culling
Ray Tracing (Hardware Lumen) doesn’t perform much worse than the default software-based Lumen implementation. The lows are a mess but that can be fixed.
Hardware ray tracing is 6-8% slower than the stock lighting system.
Very Low is just 3% slower but looks worse than stock Lumen.
Medium (or lower) look dismal due to the scant ray count and distance.
High or above is recommended.
Ultra increases the ray tracing distance over high.
Like traditional ray tracing algorithms, it replaces the distance fields with BVH which is rebuilt every frame.
Polygon intersection testing offers notable quality upgrades over distance fields.
However instead of pixels, it operates on probes, surface cache texels, and tiles.
Hardware Lumen works well with skinned meshes (moving objects), and produces more detailed reflections.
Ray tracing also uses Far Field traces which significantly improves distant lighting. It extends the global illumination and reflection coverage to 1 km from the camera.
Fallback Mesh reduces the geometric complexity of meshes against which rays are traced. This removes lighting detail produced by geometry as the rays are tested against coarse (mostly flat or blocky) meshes.
Fallback meshes dramatically improve ray tracing performance.
The 1% lows increase from 44 to 58 FPS.
It reduces the detail of meshes and character models used for ray traversal and intersection.
Skeletal meshes (characters) tank frame rates as the BVH structures need to be rebuilt every frame.
However, it dilutes lighting detail as much of the finer surface geometry is culled.
Mesh vs Fallback Mesh
InZOI employs Dynamic Occlusion Culling for moving objects. The technique tests for object visibility in the viewport and culls any that are blocked from view or too far away.
Hardware Occlusion issues a visibility query for each object, every frame. Only, the results are read the next frame.
This can cause object pop-in if the player or the object moves fast.
A high visible object count can tank frame rates.
Depth Occlusion tests object visibility using a low resolution mip mapped version of the scene depth render target.
It employs more liberal object culling, requiring fewer texture accesses.
It’s faster than Hardware Occlusion.
Ray tracing produces considerably worse lows with both occlusion methods. This is likely because they add an overhead (delay) to the dynamic object BVH construction, which is executed every frame. Ergo, disabling occlusion raises the lows when using high-poly meshes for ray tracing.
RT Off vs. On
Depth Occlusion performs the best if you’re using the low-poly fallback mesh or software Lumen. The former reduces the BVH construction delay, while the latter limits it to static objects (once per scene). Depth Occlusion grants a 10% performance bump over “Off” when using software Lumen.
Shaders, Plants & Effects Quality
Shader Quality sets the quality of various material and lighting shaders, including shadows, reflections, global illumination, materials, and water. The most notable effects are:
Shadows: Higher quality options improve shadow softness quality by precision blurring of edges (penumbra) based on the distance from the casting object and light source.
Global Illumination: Higher quality options improve diffuse lighting quality, especially in enclosed and occluded spaces.
Reflections: Adjusts the range of objects considered for reflection, particularly affecting reflection color detail.
Material Detail: It also controls surface shaders, including parallax mapping, normal maps, blending, tessellation, etc.
Face and Hair: It sets the quality of subsurface scattering for character skin and hair.
Overall, the performance and visual impact is subtle.
Shader Quality
Plant Quality is supposed to adjust the vegetation quality, density, and draw distance. However, at the moment, it doesn’t do anything.
Effects Quality sets the detail of special effects, including smoke, fog, smog, color effects, emissives, etc. It negligibly impacts performance.
Reflections & Global Illumination
InZOI leverages Lumen reflections, which are performance friendly, but nowhere near as detailed or accurate as hardware ray tracing. They rely on screen space ray tracing for onscreen reflections and distance field tracing for offsreen reflections.
The latter are approximations, often producing noisy reflections, inaccurate or missing detail, or both.
They only reduce performance by 1-2% at “High” and up to 5% at “Ultra.”
High falls back to global distance fields, drastically reducing finer object detail.
Medium and low further reduce reflection detail and LOD.
Very Low disables most reflections.
Reflection Quality
Lumen Explained: Is it Ray Tracing?
Lumen, by default, uses software ray tracing. This implementation includes Screen Tracing, Mesh Distance Fields, and Global Distance Fields, each used on different sections of the scene. The Final Gather is resolved by the Skylight, combining atmospheric and local lighting.
Screen Tracing is the first step in the Lumen pipeline.
It is conducted against objects in the depth buffer or screen space.
It is primarily used for object boundaries and crevices as a higher quality SSAO replacement.
Objects missed are served by the distance fields.
Mesh Distance Fields are 3D representations of an object (or set of combined objects).
Each point in an MDF stores the nearest distance to an object surface within the volume.
This is computed offline, and allows skipping the empty space in the MDF when ray marching.
Ray marching is an optimized form of ray tracing used to calculate diffuse lighting.
You march along a ray’s path in small steps.
At each step, the distance to the closest surface is calculated using an MDF.
Shading is applied if a surface is detected in the ray’s proximity.
The amount of shading applied depends on the distance to the object.
Upon intersection, shadow, diffuse, and reflection rays are cast outwards towards light sources or probes.
Mip-maps: High resolution MDFs for nearer objects, and scaled down variants for the rest
Global Distance Fields are abstract volumes obtained by combining all the MDFs in the scene.
The result is a bare-bones geometrical representation with minimal per-object detail.
The GDFs are used for large-scale or “global” lighting.
GDFs are cached and updated only when required.
Surface Cache forms Lumen’s backbone:
It stores the material and lighting data for various surface points, called cards.
Upon intersection (see SDFs), the lighting at a point is referenced from this cache.
It is calculated, cached, and updated gradually over frames.
Up to 12 cards per mesh/object
Indirect Lighting is calculated using light probes placed in the scene. The distribution is scant (1 per 4×4 tile). For each texel, data is interpolated from the four closest probes and from previous frames.
The Final Gather backs the software ray-tracing results. It is based on the Screen Space Radiance Cache.
It uses screen probes that are placed on pixels (screen space).
Screen Space Radiance probes operate at 1/16 the resolution.
Their results are interpolated spatially and temporally.
Using importance sampling, the lighting from the previous Screen Radiance Cache is reprojected into the current frame.
The Cache indexes the direction and the position of each frame’s rays, assisting temporal reprojection.
When it fails, the World Space Cache is used.
A separate, low-resolution World Radiance Cache is used for distant lighting.
They are placed in world space and operate at 1/256 the resolution.
They utilize temporal acumulation with gradual updation.
The World Space Radiance Cache has higher directional resolution but lower spatial resolution.
It works well in situations where all of the lighting in a room is coming from a small distant window.
The Screen Space probe rays are shorter, falling back to the World Space Cache upon misses.
Areas with detailed geometry use a denser probe grid, and ambient occlusion is added to the temporally sampled lighting for a refined result.
Light tracing is optimized by prioritizing sections with luminance in the last frame.
Lumen GI remains quite expensive despite its promises. It drains performance by up to 20% at the highest-quality option:
Ultra is ~20% slower than the lowest quality. It features higher GI resolution, coverage, and distance. Light bleeding is also more accurate.
High reduces the resolution and draw distance of GI. Light bleeding is less accurate. Roughly 11% slower.
Medium/Low fall back to a mix of distance-field ambient occlusion (large scale) and screen space ambient occlusion (small scale).
No notable performance hit, but also no actual GI and limited AO coverage.
Very Low disables everything.
Global Illumination
Shadow Quality & Performance: Virtual Shadows
InZOI leverages Virtual Shadows that are quite taxing at the higher quality settings. The resulting contact hardened shadows are pretty to look at but suffer from noisy penumbras:
Ultra and High presets look and perform about the same (~15%).
Medium reduces penumbra quality and shadow LOD (~10%).
Low disables Virtual Shadows, replacing them with blocky proxies (~8%).
Very Low disables all shadows.
Shadow Quality
Draw Distance and Detail
Background Quality Detail sets the LOD for various objects, including buildings, vegetation, shadows, vehicles, etc. Barring the ultra quality (-4%), all the options perform nearly the same.
Background Detail
Object Draw Distance sets the render distance of vegetation, buildings, vehicles, lamp posts, etc. The lowest quality option 4-5% faster than the rest (perform about the same).
Oject Draw Distance
Lighting Draw Distance sets the distance at which a light source contributes to the lighting of a scene. It impacts global illumination, reflections, shadows, etc. It only comes into play at night with artifical light sources.
Post Processing Quality
Post Processing adds various blur effects including motion blur, depth of field, lens flare, chromatic aberration, etc. It doesn’t notably impact performance or visuals.
Anti-aliasing, Upscaling & Frame Generation
Upscaling options are limited to DLSS at the moment. Strangely, InZOI uses a second temporal filter (anti-aliasing) in addition to DLSS which is necessary to smoothen out finer geometry like grass and hair. It also denoises the noisy Lumen output, including global illumination, reflections, and Virtual Shadows. Luckily, the performance hit is trivial.
DLSS “Quality” grants a 46% performance bump over DLAA, with the balanced and performance modes conferring a 56% and 68% gain over native antialiasing.
DLSS 3.5
InZOI uses DLSS 3.5 which can be upgraded to DLSS 4using our guide for a substantial quality improvement, especially at lower-quality presets.
DLSS 4
FSR 3 upscaling and frame generation can be enabled by tweaking the “GameUserSettings.ini” in the “C:\Users\USERNAME\AppData\Local\BlueClient\Saved\Config\Windows” directory:
Under [/Script/BlueClient.B1GameUserSettings], edit the following:
FSR3Value=X.
Set X to 2 for “Performance,” 3 for “Balanced,” 4 for “Quality,” and 5 for “Native AA.”
FSR3FI=True.
Enables FSR 3 Frame Generation.
Frame Generation works well in a game like InZOI and is necessary for a smooth experience with ray tracing. It grants a 60% performance bump over native 4K when used alongside DLAA and can be paired with upscaling for twice the framerates.
INZOI: VRAM Usage
InZOI uses up to 10 GB of VRAM at 4K using the maximum quality settings, including ray tracing. Lower resolutions like 1440p and 1080p reduce it to ~9 GB.
Note:Activating “Smart Zoi” mode increases the VRAM usage by 2-4 GB. In our case, it peaked at 12.1 GB at 4K using the maximum quality settings and frame generation.
Hardware ray-tracing reduces the VRAM usage to ~9 GB (with upscaling) as Lumen’s reliance on cache decreases. Unfortunately, memory usage doesn’t change much at lower quality settings, dropping to 8 GB at the least.
InZOI: CPU Bottlenecks
Like most Unreal Engine 5 games, InZOI shows no notable CPU bottlenecks. It’s completely GPU-bound with most of the stutters caused by shader compilation and resource loading delays.
InZOI Performance Summary
Occlusion: Change this to “Off” if you’re using ray tracing.
Otherwise set it to “Depth Information.”
Fallback Mesh: Enable if the above doesn’t help with ray tracing performance.
Shadow Quality: Reduce it to medium for a 10% frame rate boost with minimal quality reduction.
Global Illumination: Switch to medium for DFAO, granting a ~20% FPS bump.
Processors, PC gaming, and the past. I have been writing about computer hardware for over seven years with more than 5000 published articles. Started off during engineering college and haven't stopped since. Find me at HardwareTimes and PC Opset.