Basically what I want is to read/write/blit to specific render textures/buffers of the pipeline. From what I know we can create new passes using Render Features, but can we modify or read from a pass ?
1- Can I sample in a shader a render texture from the pipeline ? (e.g. the gbuffer color RT)
2- Can I Blit() to a specific render texture of the pipeline ? (e.g. to the gbuffer color RT)
3- There is no WorldPosition gbuffer RT right ? I am currently depth-reconstructing one but it is frame delayed due to depth-prepass not happening I guess ?
Alright to answer one of my own questions - I managed to Blit() to a RT set by another Render Feature (Screen Space Shadows in this case) by just doing this:
public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor)
{
int width = (int)(cameraTextureDescriptor.width * _settings.screenSizeFactor);
int height = (int)(cameraTextureDescriptor.height * _settings.screenSizeFactor);
_tmpRTid = Shader.PropertyToID("_ContactShadowsRT");
RenderTextureDescriptor rtd = new RenderTextureDescriptor(width, height, RenderTextureFormat.R8, 0, 0);
cmd.GetTemporaryRT(_tmpRTid, rtd, FilterMode.Trilinear);
_contactShadowsRTid = new RenderTargetIdentifier(_tmpRTid);
_screenSpaceShadowsRTid = new RenderTargetIdentifier(Shader.PropertyToID("_ScreenSpaceShadowmapTexture"));
ConfigureTarget(_contactShadowsRTid);
}