Hello, i am trying to learn a bit more about rendering by creating a basic custom render pipeline.
I am using Unity 6.3. I created a basic rendergraph pass for clearing the render target but i always get erros about the size. i think the backbuffer is always 1x1 instead of the camera size.
internal void RenderCamera(RenderGraph renderGraph, ScriptableRenderContext context, Camera camera)
{
context.SetupCameraProperties(camera);
var cmd = CommandBufferPool.Get($"{camera} command buffer");
var parameters = new RenderGraphParameters
{
commandBuffer = cmd,
scriptableRenderContext = context,
currentFrameIndex = Time.frameCount,
};
try
{
renderGraph.BeginRecording(parameters);
// backbuffer
RenderTargetIdentifier renderTarget = camera.targetTexture != null ? new RenderTargetIdentifier(camera.targetTexture) : new RenderTargetIdentifier(BuiltinRenderTextureType.CameraTarget);
TextureHandle cameraTargetTexture = renderGraph.ImportBackbuffer(renderTarget);
using (var builder = renderGraph.AddRasterRenderPass("pass", out PassData passData))
{
builder.SetRenderAttachment(cameraTargetTexture, 0, AccessFlags.WriteAll);
builder.AllowPassCulling(false);
builder.SetRenderFunc(static (PassData passData, RasterGraphContext context) =>
{
context.cmd.ClearRenderTarget(true, true, Color.green);
});
}
renderGraph.EndRecordingAndExecute();
}
catch (Exception e)
{
if (renderGraph.ResetGraphAndLogException(e))
throw;
}
context.ExecuteCommandBuffer(cmd);
CommandBufferPool.Release(cmd);
context.Submit();
}