This is an old revision of the document!
Camera
Camera.SetReplacementShader
SetReplacementShader will not render objects if their original materials don't contain any properties required by the replacement shader. For example, if your replacement shader uses _MainTex, and there is an object in the scene that doesn't have _MainTex, it won't be rendered at all.
SetReplacementShader will use the Materials of the existing objects in the scene1). However, it only seems to apply keywords that are registered as multi_compile
. Per-material keywords registered with shader_feature
do not get applied. For example, if you call SetReplacementShader with the default URP Lit.shader
, these keywords will all be turned off:
Shaders can be replaced in the SceneView using SceneView.SetSceneViewShaderReplace
.