Currently, PBRT and Mitsuba renderer plugins capture status and results from the unix() command. This is useful for logging during big, unattended jobs.
But capturing results also suppresses command outputs during rendering, which means Matlab won't display rendering progress indicators during rendering. Andy Lin noticed that if we don't capture the results, Matlab will display them live. See forum: https://groups.google.com/forum/?hl=en#!topic/rendertoolbox3-discussion/1ig1_91MEEk
So we have to choose between live progress indicators vs command result logging.
We can add a RenderToolbox3 preference value like "isCaptureCommandResults", and modify the PBRT and Mitsuba renderer plugins to capture results or display live results, as indicated.
I see two little catches:
It would be recommended but not mandatory for other renderer plugins to respect the preference value, which might be confusing to users.
Capturing command status also allows Matlab to continue executing instead of throwing an error, if there is a rendering error. To keep this behavior when displaying live results, we could put the rendering command in a try-catch block.
We could write a utility that encapsulates these considerations;
Currently, PBRT and Mitsuba renderer plugins capture status and results from the unix() command. This is useful for logging during big, unattended jobs.
But capturing results also suppresses command outputs during rendering, which means Matlab won't display rendering progress indicators during rendering. Andy Lin noticed that if we don't capture the results, Matlab will display them live. See forum: https://groups.google.com/forum/?hl=en#!topic/rendertoolbox3-discussion/1ig1_91MEEk
So we have to choose between live progress indicators vs command result logging.
We can add a RenderToolbox3 preference value like "isCaptureCommandResults", and modify the PBRT and Mitsuba renderer plugins to capture results or display live results, as indicated.
I see two little catches:
We could write a utility that encapsulates these considerations;
This would invoke unix(), respecting the value of isCaptureCommandResults, and using a try-catch block as needed.