On the logs, you find this kind of progress indicator :
V-Ray: (Estimated time remaining: 0h 0m 8.6s): 70 % completed
A render manager can read the logs, and guess the current progress state, but reading big logs files takes time.
Instead, would it be possible to set a mel script, that would be called each time the “x % completed” is emited ?
For example in Render Settings-->VRay Common , you already have this :
Post Render Frame Mel
The new entry would be called “Frame Progress MEL”, for example.
If I type “myScript” in there, VRay would call it as “myScript(0.7)” when 70% progress is achieved.
Then it would be our responsibility to tweak myScript so that it emits the right signal to be understood by our render manager.
Will make a note to look into it but we found that doing things during rendering tends to make the Maya (specifically the Qt UI) somewhat unstable. It might work more successfully for command-line render jobs though.
Thanks !
I have thought about a problem : there are several steps involved in the render of a picture : several passes, GI, etc… each having its own percentage, so we could end up with percentages that go from 0% to 100% several times for a single picture. That would not be ideal, as a render manager expects a picture to go from 0% to 100% only once.
So, maybe the percentage emited from VRay should be a global one :
0% : before translation.
10% : after translation.
20% : bitmaps loaded.
40% : prepass 1 of 3 done.
60% : prepass 2 of 3 done.
80% : prepass 3 of 3 done.
90% : unloading bitmaps.
100% : done.
No, that’s not going to happen unfortunately - there may be many phases involved in the render: frame preparation, (caustics) photon map, light cache, irradiance map prepasses, final render. It is difficult to come up with a meaningful uniform percentage metric.
In fact at the moment we’re calling vraySetProgress MEL function when the progress changes.
Can you try to modify it to suit your needs and tell us if this solution is good enough?