Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Bug Render scale no works in render pass feature.

Discussion in 'General Graphics' started by yackson-cc, Jul 19, 2023.

  1. yackson-cc

    yackson-cc

    Joined:
    May 14, 2016
    Posts:
    46
    Hi, please, i want to try render the game view in half scale, but is no working, why?

    Code (CSharp):
    1. public class RenderGameViewPass : ScriptableRenderPass
    2.    {
    3.       private readonly RenderGameViewSettings refRenderGameViewSettings;
    4.  
    5.       private RTHandle cameraRenderTexture;
    6.  
    7.       private RenderTextureDescriptor refRenderTextureDescriptor;
    8.  
    9.       public RenderGameViewPass(RenderGameViewSettings argRenderGameViewSettings)
    10.       {
    11.          refRenderGameViewSettings = argRenderGameViewSettings;
    12.          refRenderTextureDescriptor = new RenderTextureDescriptor(100, 100, RenderTextureFormat.ARGB32, 0, 1);
    13.       }
    14.  
    15.       public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData)
    16.       {
    17.          //renderingData.cameraData.cameraTargetDescriptor.width = (int)(renderingData.cameraData.cameraTargetDescriptor.width * refRenderGameViewSettings.renderScale);
    18.          //renderingData.cameraData.cameraTargetDescriptor.height = (int)(renderingData.cameraData.cameraTargetDescriptor.height * refRenderGameViewSettings.renderScale);
    19.          renderingData.cameraData.renderScale = 0.5f;
    20.       }
    21.  
    22.       public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
    23.       {
    24.        
    25.       }
    26.    }
     
  2. wwWwwwW1

    wwWwwwW1

    Joined:
    Oct 31, 2021
    Posts:
    631
    Hi, this ScriptableRenderPass is not executed because there's no
    ScriptableRenderer.EnqueuePass(RenderGameViewPass)
    .

    This is usually called in a ScriptableRendererFeature (like URP's SSAO), which can be added to a URP Asset.

    You can also try modifying the render scale in a URP Asset.
    Code (CSharp):
    1. // This is the URP Asset in use
    2. public UniversalRenderPipelineAsset URPAsset;
    3.  
    4. // Change render scale to 0.5
    5. URPAsset.renderScale = 0.5f;
     
  3. yackson-cc

    yackson-cc

    Joined:
    May 14, 2016
    Posts:
    46
    Hi, i need only modify the render scale of the game view, you suggestion asset.renderScale modify the entire game view with UI canvas, also i try your suggestion in queue but no works


    Code (CSharp):
    1. public class RenderGameViewFeature : ScriptableRendererFeature
    2.    {
    3.       public RenderGameViewSettings refRenderGameViewSettings = new();
    4.  
    5.       private RenderGameViewPass refRenderGameViewPass;
    6.  
    7.       public override void Create()
    8.       {
    9.          refRenderGameViewPass = new RenderGameViewPass(refRenderGameViewSettings);
    10.       }
    11.  
    12.       public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
    13.       {
    14.          if(renderingData.cameraData.isPreviewCamera || renderingData.cameraData.isSceneViewCamera)
    15.             return;
    16.  
    17.          renderingData.cameraData.renderScale = 0.5f;
    18.          renderer.EnqueuePass(refRenderGameViewPass);
    19.       }
    20.    }
     
  4. yackson-cc

    yackson-cc

    Joined:
    May 14, 2016
    Posts:
    46
    Please any help?
     
  5. wwWwwwW1

    wwWwwwW1

    Joined:
    Oct 31, 2021
    Posts:
    631
    I tried adjusting render scale with
    renderingData.cameraData.renderScale
    . The value of
    renderingData.cameraData.renderScale
    changed but the actual render scale doesn't.

    Maybe this isn't the right way to adjust render scale (per camera), so I'll leave this question to others who know.
     
  6. yackson-cc

    yackson-cc

    Joined:
    May 14, 2016
    Posts:
    46
    Thanks! Per camera render scale is what I need, @Jonas_Sid please any suggestion?