LuxCoreRender - Powerful open-source 3D tool, a bit complex

Updated: January 16, 2024

Over the past almost two decades, I've done a great deal of 3D design. After some trial and error, I ended up using SketchUp for actual drawing and Kerkythea for rendering. Both of these programs are primarily intended for Windows, not Linux. That said, I got both of them running really well in Linux - part of my migration away from the proprietary operating system. So far so good. But we can perhaps do better?

The one obvious limitation of Kerkythea is that it only does CPU-based rendering. No GPU. Effectively, this means if you have a beefy graphics card, it just sits idle there. But in practice, it could be used to render your models a good order of magnitude faster, perhaps even more, than using your o'dinary processor. This intrigue sent me on a search for a new, modern and Linux-native rendering tool - with the necessary SketchUp export plugin, of course. I found LuxCoreRender, and this is my early review and impression of that experiment.

Teaser

Setup and configuration

The premise - and promise - of LuxCoreRender is solid. It's an advanced rendering engine, it's open source, it's free. Brilliant. I downloaded the main program, and the SketchUp plugin. Running the former is easy. Extract the package, run the binary. Now, when I tried this in Kubuntu 18.04 a few years back, it didn't work at all. Now, on Kubuntu 22.04, there are no problems.

Similarly, I "installed" the SU2LUX plugin. What I mean by that, I extracted the Ruby script and its accompanying files into the WINE folder where SketchUp Make 2017 resides. This would be, using the default settings:

/home/[your user]/.wine/drive_c/users/[your user]/AppData/Roaming/SketchUp/SketchUp 2017/SketchUp/Plugins

I launched SketchUp, and the plugin was loaded just fine:

Plugin loaded

My next step was to configure the plugin. This wasn't difficult, but the plugin options aren't that intuitive. Namely, you can set the scene export path, and you (sort of) must set the LuxRender path. Without the latter, you cannot invoke the program from SketchUp, but you can manually export the model (convert from SKP to LXS).

Export options

Program not found

Rendering

Once I got past this step, I began rendering. Here again, the process was a bit non-intuitive. The program started working without any great fanfare. It worked, in the background, correctly. This means, the system automatically primed the Nvidia card (among the two available), and LuxCoreRender did its job dutifully and fast.

I repeated the job manually, and invoked the program directly (from the command line). Again, the behavior was identical, except now, there was a whole lot of messages in the terminal. But in essence, this means the renderer is working, and LuxCoreRender is doing what it should be doing.

Nvidia card, LuxCoreRender running

Command-line, working

The main program is LuxCore UI, and it's not very friendly. It took me quite a bit of time to figure out how to change certain aspect of the render process. That said, I simply couldn't figure how to rotate the camera without re-exporting the model.

Program running 1

SketchUp plugin, materials

My main impression was that the model didn't look life-like at all. The SketchUp materials seemed quite cartoonish, which is not the case for Kerkythea. So I went back to the SU2LUX plugin, to see what it can do for me. Indeed, it allows you to apply photo-realistic materials and textures to the SketchUp model, before the export.

This wasn't too intuitive, either, but manageable. The biggest problem was that the plugin wouldn't live-preview the materials as it complained the LuxCore console was missing, or that it could not connect to it. Whatever happened there, I had to guess, and wait for the render to see the actual results. With glass windows, and a few other textures, the things improved right away. However, I couldn't find a huge range of materials, only a modest wiki, which details a mere 14 samples. Hmm.

Materials, glass

Program running 2, transparency materials

However, there were still some problems. For example, with my VSTOL gunship model, the wing fans didn't render in their (original) dark-gray color. Not sure why, as the rest of the materials were very similar to their assigned hue. I didn't notice this issue in a number of other rendering programs, with the same model exported from SketchUp. Might be a plugin bug, though.

My biggest obstacle remained the inability to rotate the model. Perhaps there's no such option, or perhaps, one needs to configure a set of scenes through the plugin before the export. But so far, no luck. Typically, I try not to use the documentation when testing any product early on, to see how simple they really are. Once I get the first, raw impression, I can then dig into the gritty details and learn more. LuxCoreRender proved somewhat difficult in this regard.

Conclusion

I spent about three hours fiddling with LuxCoreRender before calling it a (first) day. I then sat down to gather my impressions and write this review. This seems like a nice program. Stable, fast, and it used my beefy graphics card all right. Promising results, enough that I will now invest a fresh bunch of hours learning and taming the program to my liking.

However, there were some problems. The workflow is hard, and I struggled with material export, and viewport options. Perhaps there's no way to rotate your models, but I doubt it. The renderer wouldn't really work if the whole thing was just an isometric projection. At the heart of it, though, the materials. That's what makes the difference between a simple drawing and an amazing, seemingly real-life scenario. I am not quite sure how LuxCoreRender manages that. Is there's a big online repo of materials? Is it difficult to solve the preview issue? No answers for the moment. Well, it will be an interesting adventure, for sure. For now, let those be the lessons of the day. Off I go, and soon, we will explore some new-old slash old-new 3D software. 'Twill be interesting. Stay tuned, fellas.

Cheers.