Professional Setup of Dynamic Shadows and Reflections

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.

From immersive apps to game worlds and 3D scenes

Our dedicated team for VR/AR/MR development, Unity production and 3D modeling & animation — with its own case studies and capability decks.

Visit the dedicated studio
Showing 1 of 1All 242 services
Professional Setup of Dynamic Shadows and Reflections
Complex
~3 days
Frequently Asked Questions

Our competencies

What are the stages of Game Development?

Latest works

  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    1386
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    926
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    544
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    591

The most GPU-intensive aspects of the render pipeline are dynamic shadows and reflections. In our practice, we often see that default settings won't work: each project requires its own reflection setup and graphics optimization balance. Our optimized game graphics solutions are tailored to your target platforms, ensuring top rendering performance. On a mobile device, a 2-megapixel Shadow Map for one Directional Light can cost 4ms of GPU time; reducing to 512×512 saves 3ms. On desktop, missing Screen Space Reflections in a first-person shooter are immediately noticeable.

Why Dynamic Shadows Configuration Is Critical

Misconfiguration leads to failing the FPS budget or obviously poor visuals. Our certified Unity engineers have over 5 years of experience and 100+ optimized projects. We guarantee stable FPS and improved game graphics after optimization. Contact us for a project assessment.

Dynamic Shadows and Reflections: Where Performance Is Lost

Shadow casting works through an additional render pass — the Shadow Caster Pass. Every object within the shadow frustum is rendered again with a depth shader into a shadow texture. The more shadow-casting lights, the more additional passes.

The most painful case is a Spot Light or Point Light with Shadow Casting enabled on mobile platforms. A Point Light renders its shadow buffer as a cubemap — 6 faces, 6 render passes per source. In a scene with 5 such lights, that is 30 extra render passes per frame, increasing GPU load by up to 50%. On mobile devices, this doesn't fit into the 16 ms budget.

Practical approach: keep Shadow Casting only on the Directional Light (main directional light), switch Point and Spot Lights to no shadows, and compensate with a Blob Shadow projector or a soft-shadow decal under the character. The player won't notice the shadow is "fake" if its shape is plausible.

For Shadow Distance, it is critical to set an adequate value. In Unity this is Quality Settings → Shadow Distance. A typical mistake is leaving the default 150 units for a mobile top-down project where the far visibility is 30 units. Unity still renders everything beyond that distance into the shadow buffer, but never displays it.

Shadow Cascades for Directional Light

A Directional Light with a single Shadow Map without cascades either produces detailed shadows near the camera at the cost of quality in the distance, or covers the whole range with low resolution near the camera. Shadow Cascades split the shadow texture into zones: the near zone gets high resolution, the far zone low.

For PC projects, 4 cascades are standard and improve shadow quality 3x near the camera compared to 1 cascade. For mobile, 2 cascades max, and preferably 1 with a small Shadow Distance. The default Cascade Split in Unity is uniform, but logarithmic works better: 0.05 / 0.15 / 0.35 — most of the Shadow Map resolution goes to the first meters in front of the camera, where shadow detail is most noticeable.

Shadow Normal Bias and Shadow Bias determine whether you get "shadow acne" (striped self-shadowing artifacts) or "peter panning" (shadows detached from objects). Normal Bias 0.4, Bias 0.05 is a starting point for most scenes. For thin objects (leaves, grates), Normal Bias needs to be lowered to 0.1–0.2, otherwise the shadow disappears completely.

Reflections: Screen Space vs Probe-based

Screen Space Reflections (SSR) is a post-processing effect that works only with what is on screen. It is cheap and convincing for horizontal surfaces (floor, water), but breaks at screen edges and doesn't show what is behind the camera. In HDRP it is configured via Volume → Screen Space Reflection, key parameter is Minimum Smoothness (surfaces below this value don't get SSR, which is correct — matte surfaces don't reflect).

Reflection Probes work everywhere SSR fails: vertical surfaces, ceiling reflections on the floor, interiors. A Baked reflection capture is a snapshot of a cubic panorama at a specific point in space, pre-baked offline. A Realtime probe is recalculated during gameplay.

The problem with Baked probes is staticness. If the scene has animated objects (flags, water, characters), they do not appear in the reflection. The compromise: Realtime probe with Refresh Mode On Awake for objects that change rarely (an opening door), and Baked for everything else.

Box Projection is mandatory for interiors. Without it, a Reflection Probe behaves like an infinitely distant source, and the reflection does not match the actual room geometry. With Box Projection and correctly set Box Size, a mirror on the wall will show correct perspective.

How to Avoid Typical Reflection Mistakes

From our practice: on an isometric project requiring a river with plausible reflections on Android. SSR was unavailable (OpenGL ES 3.0 on target devices struggles with the post-process stack). A Baked reflection capture gave a static image without the sky.

Solution: a custom water shader in ShaderGraph with UV distortion using a Normal Map (simulating waves) + a Reflection Probe in Realtime mode with Refresh Mode Every Frame but very low Shadow Resolution (128×128) — it reflected only the sky and horizon. For dynamic objects (boats), we added a Planar Reflection Camera — a separate camera renders the scene with inverted Y-axis into a Render Texture, which the water shader blends with the probe using Fresnel dependence. The result looked convincing at the cost of one additional render pass at 60% resolution. By switching to a 128×128 reflection probe, we saved 2ms of GPU time per frame, and clients typically save $1,000–$3,000 per scene by avoiding unnecessary shader work.

Optimizing Dynamic Shadows and Reflections for Rendering Performance

Diagnostics: Step-by-Step

  1. Frame Debugger: Break down the Shadow Caster Pass per light to identify costly sources.
  2. GPU Usage: Profile milliseconds per render pass with Shadow Casting enabled.
  3. Adjust parameters: Tweak Shadow Distance, Cascades, and Bias based on profiling data.
  4. Verify: Re-profile to ensure improvements (e.g., target <1ms per shadow pass). This diagnostic service costs $500–$800 and includes a detailed report.

For Reflection Probes, Rendering Debugger in the Reflections view mode → Probe Volume shows which probe affects a specific surface and whether Box Projection is correct.

Unity Documentation: Frame Debugger
Unreal Engine: Rendering Debugger

Method Advantages Disadvantages
Screen Space Reflections Fast, good for horizontal surfaces Frame-dependent, no reflections behind camera
Baked Reflection Probes Low cost (5x cheaper than realtime), works everywhere Static, no dynamic object reflections
Realtime Reflection Probes Dynamic reflections High cost, often requires resolution reduction (e.g., 128×128)

What's Included in Shadow and Reflection Setup

  • Audit of the current scene and performance bottleneck identification
  • Selection of optimal shadow parameters (Shadow Distance, Cascades, Bias) — our shadow optimization reduces rendering time by 30% on average, and we have achieved up to 60% improvement in some projects
  • Reflection Probe configuration with Box Projection
  • Custom shader creation when necessary (e.g., water reflections saving up to $2,000 per level)
  • Integration and profiling
  • Documentation and handover of settings to the team
Stage Timeline
Render pipeline and performance analysis 1–2 days
Shadow configuration for one scene (PC/console) 1–3 days
Shadow configuration with mobile optimization 3–7 days
Reflection Probes for a set of interiors 3–5 days
Full shadow + reflection pipeline, multiple platforms 2–4 weeks
Documentation and handover included

We will evaluate your project and propose a turnkey settings package within the timelines shown. Our team has 5+ years of experience and has completed 100+ graphics optimization projects, reducing rendering costs by an average of 30%. Write to us — we'll consult and give you a cost estimate. Get a consultation on graphics configuration for your game. Contact us.