Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I used to work with Luis and this's the feature he suggested me to implement, and here it is.
LPE AOV uses OSL's accumulator to do the calculation which is kinda different from appleseed's current AOV system.
The relationship between LPE AOV accumulator and LPE AOV is not one to one like the other applessed AOVs do, so there's a totally new entry in the project for LPE AOVs and the code structure is not quite the same.
I think the integration of LPE into appleseed's AOV system is mostly done, what comes next is the generate correct light path events and I believe there're still some problems need to solved.
As documented in OSL's wiki, currently supported events are:
Plus a customed one:
This event is added coz I found a lot light path termiated due to different terminations, need some suggestions on this part.
Scattering events support info:
Custom label is not supported yet.
There's a test scene sandbox/tests/test scenes/aovs/06 - LPE aov.appleseed, you can play with it first. DCC software supported is not implemented yet so you can only add LPE AOV in the text editor, sorry for the inconvenience. Save the AOVs via the "save main image and aovs" button in appleseed.studio.
In the above scene only mesh light is tested.
Volume support is added but not tested, need to setup another test scene.
And for the scattering mode part, I really need you guys' options.
Previously hit event is handled before bsdf is evaluated which caused the light path event generated to be incorrect, in the current implementation I postponed the handling of hit event(after bsdf is evaluated), which caused emitter event could be generated at index 0 and is conflicting with the assertion in LightPathStream::create_path_from_sampled_emitter.
I don't know if my current implementation will cause other problems.
A known issue is that the "<" symbol in the expression will cause problem when parsing project file, haven't try to solve this yet.
And in the last, here are some aov pictures rendered from the test scene:
direct_diffuse
greenwallonsphere
indirect_diffuse
specular
terminate
transparent