URP & HDRP Conversion

RCC ships with Built-in Render Pipeline materials and shaders by default. If you're using URP (Universal Render Pipeline) or HDRP (High Definition Render Pipeline), you need to run the Render Pipeline Converter once to make every material, shader, lens flare, and light intensity work correctly under the new pipeline.

This document explains why the converter exists, when to use it, and how to handle each pipeline.

Why Render Pipelines Matter

Unity supports three render pipelines that ship "in the box":

Each pipeline has its own shaders. A material with a Standard shader (Built-in) appears pink in URP because URP doesn't ship the Standard shader. To make a Built-in material work in URP, you must convert it to use URP's Lit shader (or a custom URP shader).

The same applies to RCC's vehicle materials, dashboard materials, environment materials, and so on.

When You Need the Converter

Run the converter when:

You don't need the converter if:

Pre-Conversion Setup

Before running the converter:

1. Install the Render Pipeline Package

Open Window → Package Manager. From Unity Registry, install:

2. Create a Render Pipeline Asset

Right-click in your project → Create → Rendering → and pick:

3. Assign the Asset

Open Edit → Project Settings → Graphics. Drag your new pipeline asset into the Scriptable Render Pipeline Settings slot.

If you also have a Quality settings preset configured, assign the pipeline asset there too (Project Settings → Quality → each quality level → Rendering).

Unity may prompt you to migrate your project to the new pipeline — accept.

After this, your scenes will render through URP / HDRP. Most materials will appear pink at this point, including RCC's. That's expected — the converter fixes it.

Running the Converter

In Unity:

Tools → BoneCracker Games → Realistic Car Controller → Render Pipeline Converter

A window opens with three big buttons:

Click the one matching your project.

What the Converter Does

The converter performs these steps:

  1. Sets the compile-time define: BCG_URP for URP, BCG_HDRP for HDRP. This switches RCC's conditional compilation branches that handle pipeline differences.
  2. Replaces materials: walks every material under Assets/RealisticCarControllerV4/Materials/ and swaps the shader to the equivalent URP / HDRP shader. Material properties (color, texture, smoothness, metallic) carry over.
  3. Updates lens flare components: the legacy LensFlare component (Built-in) is replaced with LensFlareComponentSRP (URP/HDRP).
  4. Updates light intensity units: HDRP uses lumens (large numbers, 500-3000 typical for vehicle lights). URP and Built-in use a unitless 0-8 scale. The converter rescales intensities so lights look approximately the same after the switch.
  5. Sets the HDRP volume profile: in HDRP mode, RCC instantiates the shipped Volume Profile prefab in the scene so HDRP's volumetric lighting and post-processing have something to work with.

The conversion is scene-aware — it iterates only objects in the current scene + any RCC prefabs. It doesn't modify your own custom materials outside the RCC folder.

Conversion is One-Way (Almost)

The converter is mostly idempotent — running it twice on the same pipeline doesn't break anything. But:

Always commit your work to Git before running the converter, in case something goes wrong.

Pipeline-Specific Behavior

Built-in Render Pipeline

URP (Universal Render Pipeline)

HDRP (High Definition Render Pipeline)

URP-Specific Notes

Renderer Features Required

If your URP Asset uses the default Universal Renderer, certain RCC visuals may not appear unless you enable specific renderer features:

To add a renderer feature: select your URP Renderer Data asset in the Project window, click Add Renderer Feature at the bottom of the Inspector, and pick from the list.

Additional Lights Mode

URP's URP Asset has an Additional Lights dropdown:

For vehicle headlights at night, you want Per Pixel. With Per Vertex, headlights will look blocky and won't light geometry well.

If you're targeting mobile and need performance, use Per Vertex and accept reduced light quality.

Camera Stack

URP supports a Camera Stack — multiple cameras rendering on top of each other. RCC's camera works fine as a base camera in any stack. If you have a separate UI camera, make sure the RCC camera is the base and the UI camera is an overlay.

HDRP-Specific Notes

Volume Profile

HDRP requires a Volume Profile to drive lighting, fog, exposure, etc. The converter spawns the included Volume Profile prefab (RCC_Settings.hdrpVolumeProfilePrefab) into your scene automatically.

If your scene already has a Volume, the converter respects it — you can edit your scene's existing volume to suit your art direction.

Exposure

HDRP uses physical exposure. The default Volume Profile sets exposure to a reasonable value for car scenes, but if your scene is too dark or too bright, adjust the Exposure component on the Volume.

Volumetric Lights

HDRP supports volumetric ("god ray") lighting on point and spot lights. By default, RCC vehicle lights have volumetrics turned off (they look strange inside a vehicle cabin). Turn them on per-light if you want the cinematic effect.

Light Intensity Units

HDRP requires lumens for spot/point lights. The defaults RCC sets after conversion:

Light Type HDRP Lumens
Head Light Low Beam 1000
Head Light High Beam 2000
Brake Light 800
Reverse Light 500
Indicator 400
Interior 200

Adjust to taste — these are starting points.

Manual Conversion Steps (If the Converter Fails)

If the automatic converter doesn't work (rare, but happens with extensively customized projects), you can convert manually:

  1. Open each RCC material under Assets/RealisticCarControllerV4/Materials/. Change its shader: - Built-in Standard → URP Universal Render Pipeline/Lit or HDRP HDRP/Lit. - Built-in Particles/... → URP Particles/... or HDRP equivalent.

  2. Replace each lens flare: every LensFlare component → remove and add LensFlareComponentSRP. Drag the appropriate lens flare data asset.

  3. Update light intensities if switching to HDRP: each spot/point light's intensity → multiply by ~500 (Built-in 2.0 → HDRP 1000 lumens).

  4. Set the scripting define: open Edit → Project Settings → Player → Other Settings → Scripting Define Symbols. Add BCG_URP or BCG_HDRP.

  5. Re-import RCC scripts so the conditional compilation reads the new define. (Sometimes Unity caches this — restart the editor if changes don't take effect.)

Common Conversion Issues

"Materials are still pink after running the converter"

Either the converter wasn't given write permission, or it ran but Unity didn't refresh. Try:

  1. Close the Render Pipeline Converter window.
  2. Right-click each RCC material in the Project window → Reimport.
  3. If pink persists, check the material's shader assignment in the Inspector. It should be Universal Render Pipeline/Lit for URP, not Hidden/InternalErrorShader.

"Lens flares appear too bright in HDRP"

HDRP lens flares are in physical brightness units. Lower the lens flare's intensity multiplier on the LensFlareComponentSRP. Or use a less aggressive lens flare data asset (RCC ships a few preset variations).

"Brake lights are invisible after URP conversion"

URP's Additional Lights mode is set to Disabled or Per Vertex. Set it to Per Pixel in your URP Asset.

"Decals don't appear in URP"

You need to enable the Decal Renderer Feature in your URP Renderer Data asset.

"Headlights are too dim / too bright in HDRP"

Adjust the light's Intensity in lumens. The default 1000 lumens may be too low for a brightly-lit scene or too high for a dimly-lit one.

"Compile errors after switching"

The BCG_URP or BCG_HDRP define isn't set. Either:

  1. Re-run the converter (it should set the define).
  2. Manually add the define in Project Settings → Player → Scripting Define Symbols.

"Performance dropped after HDRP conversion"

HDRP is more expensive than URP or Built-in by design. If your target is mobile, do NOT use HDRP — stick with URP or Built-in.

Performance Tips per Pipeline

Tip Built-in URP HDRP
Vertex lights for small bulbs N/A
Disable particle effects
Disable skidmarks
Reduce shadow distance
Disable real-time additional lights
Lower fixed timestep
Use static batching for scene geometry

For mobile: URP is the right pipeline. HDRP is for desktop / console only.

Next Steps