According to at least one embodiment, each rendering engine is permitted to halt execution (by choice or due to an unforeseen event) at any time without critically impacting the overall rendering task. When a particular rendering engine halts execution, some render resources may be lost, which may cause the entire (or overall) performance of the system to slow. However, the overall performance of the rendering task may be continued by other rendering engines that remain active. Therefore, even if a majority of the rendering engines halts execution due to one or more reasons, the rendering task itself may be completed if, e.g., at least one rendering engine remains active. Accordingly, a robustness of the system is improved.
In single-machine Monte Carlo Raytracing (MCRT), rendering is halted (or deemed complete) once all the computed pixels have reached a certain level of mathematically-determined convergence or quality. In a multi-machine context, any one particular rendering engine may not be able to determine when to halt rendering operations. This is because it is likely that the particular rendering engine has only a portion of the information that is required to make such a determination. According to at least one embodiment, when multiple rendering engines (or hosts) are employed, a merge process (e.g., merger 140 of