Rendering Large Flames

Ok, so I’ve written a pair of scripts to allow rendering a fractal in strips. This is useful since it allows rendering images that would otherwise be too large to fit into memory. If you render in 3 strips, for example, you’ll require only 1/3 as much memory, but on the flip-side the render will also take 3 times as long.*

It works pretty well: Just run slice_flame.py on a flame, render all flames in the resulting file, then run join_strips.py and point it at one of the rendered strips. The script will find the other strips and combine them all into a single image.

Download the scripts here: slice_rendering.zip

The only issue this approach has it that the resulting image shows visible seams if DE is turned on and the render quality is very low. This happens because the seed used for the random number generator is a different one for each strip. The problem goes away when rendering with high enough quality (let’s say 500 or higher).

One additional note: Don’t use the jpg format when employing this script! Since the image is saved twice (once when rendering the strips, second time when loading and combining them), you’d lose quality due to jpg compression twice as well.

As usual, if you have any issues or find a bug, please let me know so I can fix it!

* Actually, the total render would take the same time, but the quality would only be 1/3. You need to render the strips at 3x the quality to get the same result as rendering in a single slice (because quality is calculated in relation to render size)

12 Responses to Rendering Large Flames

  1. Bryn says:

    Thanks!

  2. Stan R says:

    Thank you very much for making this available. I’m going to check it out later this afternoon. Been looking for something to do just this very thing!

  3. Bryn says:

    Just wanted to report back and say thanks again, it works great. Just finished rendering 14000×10000 in 100 strips. One suggestion for folks is to go to the adjust tab and set the height and width to your render size or something easily divisible before running the split script.

  4. Bryn says:

    For those of us rendering with lots of slices, the listing of the file names scrolls the buttons off the end of the window. I spent a couple minutes trying to figure out pythons concatenation and variable scope rules and come up with this change I am using to just list the number of entries:

    paths = sorted(glob.glob(“%s.*.%s” %(basename, ext)))
    y = len(paths)
    delete, = dialog(“Found “+str(y)+” following strips to join:\n”
    “\n”
    “%s\n”
    “\n”
    “Proceed?” % “\n”,
    (“Delete strips when done”, bool, True))

    • Vitor says:

      Thanks for reporting this, I hadn’t anticipated this issue. I rewrote the script so it only shows you the first and last strips found (you can download the new version from the same link)

      As for python string manipulation: most of the time, the easiest way is to use %s, since it implicitly converts all arguments to strings. The other important thing is that adjacent strings are automatically joined, e.g. “abc” “def” is the same as “abcdef”, even across lines. I (ab)use this feature to present the dialog text in a clearer layout.

      • Bryn says:

        Thanks for the updated scripts and python info. I’ve been meaning to tackle python for years but never seem to make time

  5. Stan says:

    I apologize for being so dim, but I cannot get this script to run for me. I’m not at all familiar with python, but have it installed (win7).

    When I attempt to run the script, it gives me “C:\Users\Stan\Desktop\slice_rendering>slice_flame.py
    Traceback (most recent call last):
    File “C:\Users\Stan\Desktop\slice_rendering\slice_flame.py”, line 25, in
    res = dialog(“This script slices the selected flame into strips so it ”
    NameError: name ‘dialog’ is not defined”

    Could you please describe how I could get this running on my system.
    Please feel free to email me if you would rather, instead of posting on the blog. Thank you very much,
    Stan

  6. George Badabinski says:

    I love this script. I use fr0st for flam4 rendering, and this has allowed me to render several things at 100 megapixels in no time flat. Thanks a ton for making this.

  7. Yura says:

    for me images more than 18000×12000 succefully rendered and sliced to 20 strips doesn’t joined after. looks like script starting to reserve memory, going up to ~3.2Gb and than brakes.. images less works fine
    i have Win7 x64 running on i5+16gb ram

Leave a reply to Bryn Cancel reply