I recently had a need to output images (both tonemapped and, if possible, HDR OpenEXR) from a bunch of FLMs (more here: http://www.luxrender.net/forum/viewtopic.php?f=16&t=4542
And so I decided to slap together the 'Image' menu that I found mentioned by LordCRC in a features request thread somewhere. I posted some patches at the thread link above and LordCRC himself grabbed the most basic one and committed it into the code base *tnx for that by the way
I've taken this little 'Image' menu in the GUI and expanded it quite a bit for myself and thought I'd offer up those changes as well (if interested). Of course, I found out that LordCRC is working on a whole new imaging pipeline so I imagine a lot of this would change down the road but having the GUI figured out and getting some basic functionality in there now for those that want it couldn't hurt. Anyways, here's some of the changes I've made since then:
- First and foremost, I found what I think is a bug in the RenderView::copyToClipboard() function. It passes the raw framebuffer to a QImage without specifying the bytes per row and QImage wants row bytes to be 32bit alligned by default. So I fixed that to look like the call to QImage() a few functions below it (also, in my own RenderView::outputTonemapped() function which had duplicated this mistake). It's a real simple patch, only changes 2 lines of code. I've included it below.
- I had also added a menu option to output OpenEXR files but had cautioned that it was a much bigger change than the one LordCRC had grabbed. I've used it quite a bit since then and feel pretty confident that it should work okay.
- I went on to add two more options: outputting of each individual light group to images (LDR or HDR) and a batch processing dialog that would read all FLMs in a directory and output them as images in any of the above flavors (LDR, HDR, individual light groups, etc).
I'll post a few screenshots of what it looks like. I've used it a fair deal already and it seems pretty stable (on my one system of course, not much of an exhaustive test). I don't have the code for the rest of these changes handy at the moment but if y'all are interested though, I'd be happy to clean it up and post it here. Just let me know!
P.S. I'd caution against the other patches I've posted in the above thread as I've changed things here and there since then. Might be cleaner if I just post a new patch (not to mention, they're a ways behind the tip of the source tree now).