Mitsuba 0.3.0 released

I’ve just released Mitsuba 0.3.0! In hindsight, my previous announcement of a release within 1-2 weeks clearly turned out to be a bit too optimistic… But I hope that it was worth the wait. In addition to all the previously mentioned features, I’ve worked on the following changes:

Python integration: Mitsuba 0.3.0 comes with Python bindings. While the bindings don’t expose the full C++ API, they are already good enough for controlling the renderer, dynamically constructing scenes, and many other useful things. Chapter 11 of the documentation contains a basic overview and several “recipe”-type examples. My main motivation for adding bindings is to reduce the amount of work that is necessary to integrate Mitsuba into commercial modeling tools. I found that since I don’t do any modeling myself, I’m not particularly good at developing such plugins :). I hope that a solid Python API will lower the bar enough so that someone else can give it a shot and succeed.

Integrator overhaul: Some of the integrators in Mitsuba (photon mapping variants, irradiance caching, subsurface integrators) have become somewhat broken due to the many changes that happened over the last months. These are all fixed in the current release. In addition, the photon map-based integrators are now about twice as fast, which is a consequence of switching to a more optimized generic point kd-tree implementation.

Preetham sun/sky & Hanrahan-Krueger models: As part of his thesis (link) on realistic rendering of snow, Tom Kazimiers has developed a great series of extensions to Mitsuba. I’m planning to eventually merge most of them. For now, I’ve added his implementation of the Preetham sun/sky model, as well as an implementation of the Hanrahan-Krueger BSDF (which is an analytic solution to single scattering in a layer of a homogeneous medium). Marios Papas greatly extended the H-K model implementation and verified its correctness against reference simulations.

API reference: A nightly process now creates API documentation for the most recent Mitsuba version. Take a look at http://www.mitsuba-renderer.org/api. The API documentation is also linked from the main Mitsuba web page.

Better builds: I’ve grown a bit tired of making release builds and packages for various platforms, since it tends to be a tedious manual process.

To reduce this burden, I’ve set up seven virtual machines that automatically download the latest version of Mitsuba, compile it, and upload packages for:

  • Windows (x86 and x86_64)
  • Mac OS 10.6+ (universal binary for x86 and x86_64)
  • Ubuntu 10.10 — maverick (x86_64)
  • Ubuntu 11.04 — natty (x86_64)
  • Debian 6.0 — squeeze (x86_64)
  • Fedora Core 15 (x86_64)
  • Arch Linux (x86_64)

This set should hopefully cover almost everyone (I’m assuming that any sane Linux user has made the switch to 64-bit at this point). Most of the packages also include development header files, which makes it possible to create custom Mitsuba plugins without ever having to compile the main codebase.

The Windows and MacOS X builds are compiled using the Intel C++ compiler 12. This means that OpenMP now finally works on OSX! (Apple has been shipping a seriously broken version with their compiler for years..)

Since the entire build process is now automated, you can expect to see more frequent releases in the future — I might even switch to a nighly build system at some point.

Future license change: I intend to switch Mitsuba’s license to the more liberal LGPL license (a.k.a. the “lesser GPL”, or “library GPL”) at some point in the near future. This will essentially allow users to write proprietary plugins or link Mitsuba to external applications without having to release their source code. Only changes to the renderer itself would need to be made available. I believe that this is a good compromise between making the system available to a larger group of users, while benefiting from any improvements that are made. The transition will involve getting permission from a few more people, rewriting code, and replacing certain dependencies. For that reason, it might still take a few months. Stay tuned…

Better documentation coverage: A huge amount of work went into the documentation, which now covers many previously undocumented plugins. While still far from complete, it’s at a point where it can serve as a good starting point and reference for every-day use. Be sure to check it out if you are using or evaluating the renderer in any way.

61 comments

  1. Congratulations for this brand new release!
    Thanks for your work Wenzel! ^__^

  2. So sad, that mitsuba now runs not on Leopard OSX ;(

  3. Beautiful work! Rare that a one-man project can be both on the cutting edge of technology and also so well presented and documented.

  4. This is quite awesome – like your renderer very much. Thanks for this !!!
    benNO!

  5. great,

    is there a exporter for blender?

  6. Awesome work!

    Are there many developers beside you working on Mitsuba? How would you compare Mitsuba to Luxrender?

    Would you consider saying 0.3.0 is ready for production use?

    The examples, especially the wool scarf are really good looking.

    • It’s mostly myself, but quite a few other people have contributed improvements and bugfixes.

      The biggest difference between these two projects is that LuxRender is production-oriented and Mitsuba is intended for research in experimental rendering techniques etc.

  7. Oh no,

    Fatal Error: This program was not built to run on the processor in your system.
    The allowed processors are: Intel(R) Pentium(R) 4 and compatible Intel processors.
    Enables new optimizations in addition to Intel processor-specific
    optimizations.

    Hi Wenzel,

    My CPU:
    AMD Athlon 64 X2 4850e
    Instructions sets MMX (+), 3DNow! (+), SSE, SSE2, SSE3, x86-64, AMD-V

    Or is it the operating system?
    Win XP SP3

    I would test mitsuba so gladly once.

    Cheers,
    Arnie

  8. I can imagine how much work went into writing that PDF. Where do you get all that energy?

  9. Well, I’m working on blender exporter. I fixed most of material problems + added new ones. Now I work on sun and sky.
    Is it me or mitsuba gained some more speed? Awesome

  10. Great Congratulations for your job, Friend!
    Collada + Blender with Mitsuba is The Future!

  11. Great work! Great that you’ve made packages for all these distros (and nice solution for automating it!)
    -ps: was great to meet you at siggraph

  12. Hi,

    I installed the latest mitsuba version in one blender build from graphicall.org. Everything is fine. Mitsuba is activated as addon. But the Mitsuba Engine Presets are missing. Where can I find them?

  13. i get this error:

    Critical exception
    date_time ERROR main [PluginManager] Plugin “bdpt” not found!

    Does that means that BiDirectional PathTracing is not implemented yet or just missing?

    Mitsuba 0.3.0 (win 7 x64)

  14. Hi Wenzel,
    I released some early Blender plugin fixes.
    You can get it guys from here:
    http://bartoszstyperek.wordpress.com/2011/09/05/mitsuba-exporter-0-5/
    I know it is not much, but I will work on it some more. Lots of thing are missing.

  15. “Rare that a one-man project can be both on the cutting edge of technology and also so well presented and documented.”

    I second that!

  16. is there anyone skilled and interested in making a blender -> py -> mitsuba plugin? for blender integration, so we can have material previews etc inside blender.

  17. How could you find time to work on *both* awesome research projects and Mitsuba? :->

    • Thanks — I appreciate that coming from you, Toshiya. To be entirely honest, it’s a pretty tough compromise sometimes :)

  18. Hi Wenzel,

    if my camera point downwards the sky is black.(black below horizon)

    Do you plan something like a infinite sky (like vray) ?

  19. Hi Wenzel,

    doesn’t work for me.
    http://www.pasteall.org/pic/17815

    Or is the “extend” flag in the mtsgui?

    Thanks for your fast feedback.

  20. Mitsuba with documentation is a big step forward.
    Your intelligence and drive certainly have a very bright future ahead.

    Any advice on rim lighting with falloff?
    I know this is perhaps not ‘real’ pbrt, but the geometric models I want to use this on (based on torii and trefoils, parametric equations) are not ‘real’ either.

    Many thanks, especially for now, before a really big
    interest picks up on you and your work, and you are unreachable and unavailable to us wannabes.

    • Thanks — I’m not sure I completely follow the question part of your message.

      Regarding rim lighting with falloff: Do you mean something like a spot light with a gradient? That is already supported though not documented yet.

      Also, what did you want to ask about shapes and how does that relate to PBRT? :)

      • strike that question – I used Blender’s solidify modifier which gave my geometry more of an an edge to render.

        From PBRT book’ it seems like a rim light may be related to edge lighting there, but since I found my way out did not pursue the matter …

        Rim lights as I refer to are highlighted edges from a illum source, usually from behind the mesh.

  21. New mitsuba is working really awesome.
    The photon mapper now delivers incredible results,
    where previously I could not get it to work at all.
    Sunsky is a great addition.

  22. Wow, I just recently found Mitsuba and this is some great work. Keep it up and please spam the world to take note of this awesome renderer. :)

  23. Hi Wenzel,
    Is there any possibility to build also for Leopard???

    • You should be able to build it yourself, but you’ll have to disable Python support. I don’t want to keep up supporting pre-snow leopard releases now that lion is out…

  24. Ok i will try it.
    could you give me some instructions how to build?

  25. im not able to load the source code and dependencies:
    http://picfront.de/d/8lSM
    I cant download anything..

  26. Hi Wenzel,
    i downloaded the build and the dependecies.
    I copied the config_ darwin x86_64.py into the mitsuba folder.
    I renamed it to config.py.
    In terminal i rooted to the mitsuba folder and wrote scons , but nothing happens(“-bash: $: command not found”)
    Any suggestions?

    • Do you have XCode installed? Please follow the instructions in the documentation as closely as possible. If something doesn’t work, file a support ticket — blog comments are not the right place to discuss such issues :)

  27. that UNC power plant render is very intriguing…

    have you rendered any of the interior scenes also?

  28. Congratulations, I think your 3D rendering engine is excellent both in design and features. In my opinion, the best overall render quality open source, 3d render engine available. I’d really like to see one addition in the future though.

    From the Documentation:
    “Most algorithms in Mitsuba are written using a generic parallelization layer, which can tap into this cluster-
    wide parallelism.”

    Does that mean that OpenCL GPU acceleration wouldn’t be too hard to implement in the near future?

  29. Congratulations, great piece of software and brilliant concept, I hope you’ll continue the development, perhaps with plugins for other software, such as C4D …
    Meanwhile, I study the manual … 😉

    Best Regards
    George

  30. yes! c4d plugin is a nice improve! i hope that happen!

Leave your reply to Surprised