I need to build a 3d exhibition targeting WebGL and using the Universal Render Pipeline (URP)
All the rooms and stands in the exhibition is dynamic and can be changed and placed in runtime.
I’m pretty confused about the right approach for lighting.
I’m guessing baking lightmaps is not an option because all the objects is dynamic, and also it will increase a lot the build size.
And I just can’t get good results with real time lighting…
I want to achieve an equal light spread with clean/bright/shiny looks, similar to the images attached.
I would greatly appreciate any guidelines and ideas.
What should I focus on? post processing? textures? materials? and so on…
It depends what is dynamic in your scene.
If you just move some props like chairs, you could build a high density field of light probes and use blend probe lighting for the dynamic objects. This means they get indirect lighting from the set of light probes. Objects which can be moved would not be marked as “Lightmap Static”. Everything that stays the same would be baked. I guess the walls and the floor will not move? So than bake them.
Unfortunately, for UPR Light Proxy Volumes are not available, that would give you more detailed lighting for larger objects.
If you change your lights at runtime, there is no option in URP since it’s lacking Realtime GI. This means the scene’s indirect lighting would look out of place when you change a light in a strong way like completly different color or high contrast intensity. So you have to drop indirect lighting at all and just stick to realtime (no baking required) if you want to avoid wrong looking light. Otherwise you have drop the feature that your lights are dynamic and use the bake workflow.
Also be warned you cannot have realtime shadows for point lights in URP. It’s planned but I guess you have a deadline and cannot wait too long. For the lamp fixtures in example picture 3, you would need light cookies, but this is also not supported by URP. But maybe you can fake it with some emissive planes.
Another problem might be the reflections. If you have a shiny floor or some glass and mirrors, you need to place reflection probes. You may also have to update them at runtime when some objects change their position. But this depends how obvious the change is. Like if you cannot really see any difference in the reflection, you might get away with having baked reflection probes.
By looking your example pictures (picture 1 and 2) you would not get away with baked reflection probes because the floor is too shiny and clean. Any change would be noticeable.
About the build size. Do you have any guidelines about it? You could compress your lightmaps and decrease their resolution. But this also comes with less visual quality.
You have to find a compromise between performence, build size and what URP is capable of.