AOVs (Arbitrary output variables) - sometimes called render passes or render layers - are data that are being calculated to produce the beauty pass (=the final render).
AOVs examples: depth, normals, albedo…
Being able to export them separately allows more options at compositing step.
Sorry to see that you are having problems.
Here are a few questions for trying to isolate the issue.
Are you using the AOVRecorder with an HDRP scene? The AOV Recorder will only record AOVs from an HDRP scene.
How do you start the recording? With the recorder window or with a record clip on the timeline?
What are your recording options?
What is your camera input? Are you trying to record the main camera or a tagged camera?
Would it be possible to zip and upload you project for us to investigate and try to reproduce the issue here?
Thanks,
Hi Mad_Banny,
To give you an update, I wasn’t able to reproduce your issues with the AOV Recorder using the HQ_Deffered_HDRenderPipelineAsset that you provided. If you can provide a small project that would reproduce the problems or a list of steps that would be very useful.
I do hope you intend to quickly integrate that with Unity Recorder, also to extend support of AOVs to LWRP and even standard pipeline.
Please tell me you don’t intend to keep it separate.
AOVRecorder is a plugin of Recorder, so it is actually part of Recorder. We choose to make it a separate package because it highly depends on High Definition RP (it’s using HDRP new AOV Request API) and we didn’t want this dependency to burden Recorder, there are a lot of users that have no interest in AOVs.
For now, there is no AOV API in LWRP, but when there will be, the plan is to indeed allow AOVRecorder to use it.
There is no plan to make AOV Recorder work with Legacy Render Pipeline.
Could we at least move the option to add AOV to the import window of the Recorder (just like samples) with a huge !warning! text about HDRP support only? Making it a separate package (but still the same tool and GUI element to interact with), seems a bit redundant.
One thing that would be very useful for anyone working in video production would be to have ‘masks’, similar to cryptomattes or multimasks? Color coding by material/entity/layer … This is a must for compositing.
I understand your concern but we made a choice considering :
AOVRecorder is a tool that not everyone is interested in
HDRP is a required dependency BUT we can’t impose that dependency to all Recorder users
Package management is still in development, for example conditional dependency remains a too recent feature (we support until 2018.4)
And we know by experience (including in Recorder) using reflection causes more issues in the long term.
That said, 2 things will happen that could be disruptive of this decision:
AOV Request API being ported in URP (no ETA)
2018.4 being “deprecated” enough so we can freeze the Recorder dev on it (not happening in a near future, but will happen for sure)
Until that, it is what it is. We remain confident we chose the best solution possible considering the current parameters, even with its obvious disadvantages.
Cryptomatte :
Adding ObjectID / Cryptomatte passes is indeed in our scope. I can’t provide you an ETA though.
Hey, I’m trying to write my own custom recorder. However, all the recorders in the Recorder packages are marked as “internal”. How did you guys manage to have AOVRecorder inherit from BaseTextureRecorder which is internal?
We are trying to use the AOVRecorderSettings in the scripted capture method. The ImageRecorderSettings work just fine for us, but the one thing we can’t seem to figure out is where to set the AOVGType in the settings. We want to be able to record out the alpha for a matte. Does anyone know how to do this?
The other thing with this is even though I set the AOVCameraInputSettings, it isn’t setting the targetCamera in AOVCameraInput.RenderAndReadbackAOVCapture.
Hi!
Really great that you guys added this package. We are using Unity to render and still do a traditional composting workflow as a final step after unity, so any additional passes we can get out of unity are greatly appreciated!
We still have a bunch of questions, we hope you can help us with!
will multichannel exrs be eventually supported? For our comp workflows it just makes everything more conveniant
currently there only seem to be the commonMaterialProperties available as render passes (plus depth)
It would be fantastic to have access to the other information you can view in the debug view like the LightingModes for example to get proper diffuse lighting and specular lighting passes.
I tried to expand the current package to be able to render these Lighting passes by using “LightingProperty” and “SetDebugLightingMode”, but I couldn’t quite get it to run (it alway rendered the beauty instead of the expected lighting pass)
will MotionVector pass be included soon? we want to add motion Blur in Comp!
How would you go about adding more complex custom render passes?
I am currently implementing an object/material/asset ID solution that depends on shader overrides. Currently it is done using an additional render process after rendering beauty and the other passes.
I would love to include this process directly into the “main” render process and render it to its own pass.
Do you have any suggestions on how to get that to work?
Lastly the ID passes rely on metadata that should be written into the header of the exr. Currently this is done in a separate follow-up process. Is it somehow possible to write medata into the exrs when rendering with aov recorder or are you guys thinking about adding that?
I hope you guys can give us some answers.
Thanks for all the good work for making films with unity!!
Hi!
Really great that you guys added this package. We are using Unity to render and still do a traditional composting workflow as a final step after unity, so any additional passes we can get out of unity are greatly appreciated!
We still have a bunch of questions, we hope you can help us with!
will multichannel exrs be eventually supported? For our comp workflows it just makes everything more conveniant
Yes we are planning to add multichannels exr support to the AOV Recorder.
currently there only seem to be the commonMaterialProperties available as render passes (plus depth)
It would be fantastic to have access to the other information you can view in the debug view like the LightingModes for example to get proper diffuse lighting and specular lighting passes.
I tried to expand the current package to be able to render these Lighting passes by using “LightingProperty” and “SetDebugLightingMode”, but I couldn’t quite get it to run (it alway rendered the beauty instead of the expected lighting pass)
will MotionVector pass be included soon? we want to add motion Blur in Comp!
Also, yes we are planning to make more AOVs types available like the motion vector pass.
In HDRP version < 6.7 the AOV recorder is using the debug api for creating the AOVs, from HDRP version 6.7 and above we are using a new AOVRequest API. This allow us to make requests for the AOVs that we want to gather and record.
How would you go about adding more complex custom render passes?
I am currently implementing an object/material/asset ID solution that depends on shader overrides. Currently it is done using an additional render process after rendering beauty and the other passes.
I would love to include this process directly into the “main” render process and render it to its own pass.
Do you have any suggestions on how to get that to work?
Lastly the ID passes rely on metadata that should be written into the header of the exr. Currently this is done in a separate follow-up process. Is it somehow possible to write medata into the exrs when rendering with aov recorder or are you guys thinking about adding that?
I hope you guys can give us some answers.
Currently this is not possible. But I can see how this could be very useful.
Thanks for all the good work for making films with unity!!