精選文章

SmallBurger Asset Home

  SmallBurger

2021年5月20日 星期四

在URP下處理平面反射的相關細節

在URP下,一般都是註冊RenderPipelineManager.beginCameraRendering這個事件,判斷是不是主camera,再進行相關反射的拍射處理(拷貝目前的camera資料及反射矩陣的設定…等),最後再呼叫UniversalRenderPipeline.RenderSingleCamera這個全域的函式(算是URP少數提供的全域函式之一)來渲染,不過如果直接這樣做,會造成原來的copy opaque,copy depth pass,renderShadow,postProcessing都會被執行到,蠻浪費的…


URP其實有提供UniversalAdditionalCameraData,而且一直在調整及擴充,目前我們有這些東西可以用…

additionalCameraData.requiresDepthTexture = false;
additionalCameraData.requiresColorTexture = false;
additionalCameraData.renderPostProcessing = false;
additionalCameraData.renderShadows = false;
//...
這樣就不會多執行到一些不想用到的pass,節省性能,相關效果影片如下:


Dream continues in...

沒有留言:

張貼留言