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
    1457
  • 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
    979
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    605
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    674
  • image_training-quizzes_kids_shopping_quiz_614_0.webp
    Educational quiz for kids "Shopping in a store"
    29

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.

What problems does lighting setup solve?

A studio spends four hours per bake per scene. A UV seam artifact appears, the artist fixes it, and waits another four hours. This repeats three to five times daily across multiple scenes, wasting weeks. An incorrect lighting strategy from the start — all sources in Realtime — can cost 30–50% FPS on mobile or consoles at release. Our Expert Lighting and Rendering Setup Services address two core pain points: baking time and runtime performance. We audit the existing system, choose the right mix of dynamic lighting and baked methods, and deliver measurable gains. Over 30 projects delivered, from indie to AA. Certified Unity specialists guarantee the result.

Dynamic, static, and mixed lighting: how to choose?

Each light source in Unity has three modes. The table shows how they affect performance:

Mode Shadows GPU Load CPU Load Use Case
Realtime Dynamic High Medium Characters, moving objects
Baked Precomputed into texture Minimal None Static decorations
Mixed Hybrid Medium Low Key sources with shadows

A common mistake: a studio sets all lights to Realtime, resulting in 12 shadow-casting lights on screen. On mobile, that’s a guaranteed 30% FPS drop. Mixed Lighting with Subtractive or Shadowmask sub-modes is the practical compromise. Static objects get baked shadows, dynamic objects get realtime shadows from same sources — a balanced dynamic lighting mix.

Typical artifacts and their causes

Artifact Cause Solution
Light seams between objects UV islands not aligned Enable Stitch Seams or use Auto UV Charts with Pack Margin ≥ 4
Dark spots at object bases Collider intersection with floor Raise object 0.01–0.05 units or adjust Backface Tolerance to 0.2
Overbright at atlas seams UV islands too close in atlas Increase Pack Margin or assign large objects to separate atlases via Lightmap Parameters

How to optimize baked lighting without losing quality?

Choosing between Enlighten and Progressive Lightmapper

Unity supports two baking backends. Enlighten is legacy real‑time GI — officially outdated but still used on mobile due to low system requirements. Progressive Lightmapper (GPU) is a modern path‑tracing backend. On an NVIDIA RTX card, GPU baking is 5–10x faster than CPU. We default to Progressive Lightmapper (GPU) for PC and consoles.

Key parameters for a typical scene:

Lightmap Resolution:    10–20 texels/unit
Max Bounces:            2–4 (not default 8)
Samples (Direct):       32–64
Samples (Indirect):     512–1024
Denoiser:               OIDN or OptiX

Denoiser is mandatory. Without it, you need thousands of samples for clean results. With denoiser, 256–512 samples suffice. Iteration takes minutes, not hours. According to Unity documentation, this setup reduces baking time by 50–70% without quality loss.

Light Probes and Reflection Probes: why and how to set up?

Light Probes give dynamic objects the illusion of baked lighting. Place probes every 2–4 meters in areas with lighting variation. Too sparse placement causes sharp jumps when characters move. Probe Volumes (HDRP) replace manual placement with a volumetric grid — saves time on large open scenes.

Reflection Probes correct reflections on PBR materials. Without them, metal and mirrors reflect the skybox instead of the environment. Settings:

  • Baked for static rooms
  • Realtime for zones with changing environment (TV, screens)
  • Box Projection for correct room geometry reflection

Applying these rules reduces draw calls for reflections by up to 40%.

What is the impact of scene organization on baking speed?

Scene scale is the main enemy of fast baking. Here’s the process we use:

  1. Exclude objects smaller than 0.5 units — they receive lighting via Light Probes.
  2. Use Instanced Meshes for repetitive objects (trees, rocks, fences) — one UV atlas shared.
  3. Bake Terrain separately at reduced resolution (2–5 texels/unit).
  4. Check Backface Tolerance on complex geometry — prevents dark spots.

Following these steps cuts total bake time by 50–70%. In one open‑world Unity project, original bake time was 4 hours per scene. After optimization: 1 hour 20 minutes. Monthly time savings exceeded 40 hours, equivalent to $3,000 monthly cost reduction.

What’s included in lighting setup work

Our turnkey service delivers:

  1. Audit of current system — profiling via Frame Debugger and RenderDoc, identifying bottlenecks.
  2. Lighting strategy — documentation with mode selection (Mixed/Baked/Realtime) for your platform.
  3. Baking optimization — UV unwrapping, Progressive Lightmapper configuration, Light Probes.
  4. Reflection Probes setup and post‑processing (SSAO, SSR, Bloom) matching your artistic style.
  5. Final report with performance metrics (FPS budget, draw calls, frame times).
  6. Post‑delivery support for two weeks — remote session to review any issues and transfer knowledge.

Work process and timeline

We follow a clear workflow:

  • Analysis (1–2 days) — review scene, take screenshots, profile.
  • Design (1 day) — select strategy, create optimization plan.
  • Implementation (3–7 days depending on complexity) — UV fixes, Lightmapper settings, Light Probes, post‑processing.
  • Testing (1–2 days) — measure performance, remove artifacts.
  • Delivery — scene files, documentation, checklist.

Typical timeframe: 5 to 15 business days. Pricing is individual — contact us for a project estimate.

Get a free audit of your current lighting setup. Reach out to discuss your project — we will provide a concrete plan and timeline.