Everything related to Maxwell Render and general stuff that doesn't fit in other categories.
By jtodd44
#397219
Can someone please help me? When I use the denoiser with a local render, it seems to work fine. However, when I try to render on my network cluster, it does not appear to create a denoised image. I have tried it using both the cpu and the local gpu for the second pass, but neither approach seems to work. I have also used a macro to define the output filename as suggested in another post. Any suggestions would be greatly appreciated.

Jim Todd
User avatar
By Forum Moderator
#397220
Hello Jim,

In the case of the network renders, depending on the type of job (single or cooperative) the denoiser is calculated by different machines; this is why it's important to use network paths when you set the output of the denoised image:

-When you launch a single job, the denoised image is calculated by the node computer and what is more important, the resulting image is stored by it (instead of sending it to the manager to save it), so it should be able to understand the output path. In the case of Macs, this is sometimes hard to achieve.

-On the other hand, when you launch a cooperative job with denoiser, the nodes do not compute the denoised image; they just launch a normal render (with the required passes) and send the mxi files to the manager; this merges the different mxi files down to two and generates the denoised image from those; then it saves the denoised image in the specified path. So in this case, the output path has to be accessible from the manager computer.

-Additionally, there's a bug when using three nodes in a cooperative job with denoiser; one of the renders gets black and the denoised image gets blurred; this doesn't happen with two, four, or any other amount of nodes.

-When doing animations it's important naming the denoised image as %scenename%_denoised.png (for example, the important part is %scenename% which will be replaced with the name of the mxs scene) when launching an animation job; otherwise, one frame will overwrite the previous one. It's also important to use network paths.
-The amount of memory is important, so if the GPU cannot host the whole scene, it is recommended to use the CPU to calculate the denoised image.


FIND THE TWO MXI PASSES IN CASE OF FAILURE

In the case the render or the denoiser fails, you should be able to find the two mxi passes in different locations depending on the type of job.
In the case of a single job, it works mostly as a local render, but in the node; it generates both passes and stores them in this path in the node:
Code: Select all
C:\Users\<username>\AppData\Local\Temp\maxwellrendertmp
In the case of a cooperative job, it works much like a normal network render: each of the nodes generates a single mxi file which is stored in its Temp folder:
Code: Select all
C:\Users\<username>\AppData\Local\Temp\mxnetwork\rendernode_<computername>
and when the render is finished, they are sent to the Temp folder of the manager:
Code: Select all
C:\Users\<username>\AppData\Local\Temp\mxnetwork\manager_<computername>
and then merged and denoised.

Once you get the mxi files you can execute a redenoise through command line.


REDENOISING USING COMMAND LINE

If we want to redenoise an image after closing Maxwell, the basic idea behind it is running mximerge.exe program that is in Maxwell Render installation folder. The problem is that we cannot run that program just by double-clicking on its icon as we have to add some arguments to make it do what we want.

-So, we have to open a Windows console in that folder; to do so, tap windows key, type "cmd" and hit enter.
You will get something like this:
Redenoising_00.png
but instead of Fernando it will be your user name.

-Then type
Code: Select all
cd C:\Program Files\Next Limit\Maxwell Render 4
That will make it Change Directory to Maxwell installation folder where mximerge.exe exists.
You'll get this:
Redenoising_01.png
-Then we'll have to execute the program with some extra arguments. If you only type mximerge and hit enter you will get some instructions of use and some examples, but basically what we have to type is this:
Code: Select all
mximerge -folder:"folder containing the mxi files of the same frame" -coopdenoiser:"output path and name of the denoised image" -target:"path and name of the merged mxi file"


You have to make sure you use the same spaces,colons and quotation marks but obviously replacing the sentences between quotations with the actual paths (also with quotation marks), so it will look like this:
Code: Select all
mximerge -folder:"E:\Google Drive\TESTS y capturas\Denoiser\mergetest" -coopdenoiser:"E:\Google Drive\TESTS y capturas\Denoiser\mergetest\output\denoised_image.png" -target:"E:\Google Drive\TESTS y capturas\Denoiser\mergetest\output\merged_file.mxi" 
And then just hit enter and it will merge all the mxi files included in the first folder after "-folder:", it will calculate the denoised image and store it in the path and with the name specified after "-coopdenoiser:" and will also save the merged mxi file in the path and with the name specified after "-target:"

In order to help you write the lengthy command, you can copy the paths from Windows file explorer and paste them in the command line.

I hope this helps.

We will try to improve the Denoiser workflow in a future update.

Cheers!
You do not have the required permissions to view the files attached to this post.
By jtodd44
#397224
The information in your post is extremely helpful. I was using a network path for the denoised image, but I suspect my cluster may not have access to that drive. I will contact my network administrator to see if they can correct that. I will also try a cooperative render to see if that corrects the problem.
Thanks for your help.

Jim Todd
Sketchup 2024 Released

Any idea of when the Maxwell Sketchup plugin will […]

Will there be a Maxwell Render 6 ?

Let's be realistic. What's left of NL is only milk[…]