Chris Kulla has released his latest version of Sunflow, the open source, platform independent (thanks to Java), photo-realistic rendering system.
There are several major updates including the following:
- An updated Blender exporter.
- An improved algorithm for KDTree construction (version is further enhanced by the use of a radix sort).
- Optimized the core raytracing routines and traversal codes: some scenes render up to 2x faster.
- Multithreaded progressive rendering.
- A new global illumination algorithm with many controls to trade off bias vs. speed. When I asked Chris about if this was replacing other GI methods in Sunflow he said:
The new algorithm is just a new option, since Sunflow has a modular design I can offer lots of different methods to calculate GI.
- New user interface.
- Irradiance caching can now be used without photons.
- Texture file paths are now scene file relative. You may also specify arbitrary search paths.
- Full support of procedural scenes.
- The site also now has a forum to post Sunflow specific questions.
He has also uploaded a new version of the data files. which contain examples of new features in this release, including a demo of Sunflow as a real-time raytracer.
Sunflow is no stranger to BlenderNation since it has been mentioned several times (1,2) as well as having a great tutorial on using it in Blender Art Magazine.
And why does Chris put so much into the development of Sunflow?
I develop Sunflow for fun =) There aren't too many open source renderers that give you easy programability at all levels like Sunflow does.
Remember, Sunflow is written in Java so it will require Sun's JRE or JDK. I highly recommend the JDK because it allows the use of the -server option in the command line. The really nice thing is that if you are using a 64-bit JRE/JDK version then Sunflow will be 64-bit!
Also, be sure to check out scorpius's thread about getting a Windows XP icon made for Sunflow. This is a must for me since I just want to click things to make them work. I posted a comprehensive instruction set that got me up and running on this thread, so I hope this helps.
12 Comments
Where'd you get the display image? Larger version available?
Nevermind. i found it.
http://sunflow.sourceforge.net/gallery/v0060/livingroom.png
Cool, it was actually part of an interesting render challenge at http://blenderartists.org/forum/showthread?t=62140.
I wonder how fast this renderer would be if it was written in C or C++? Man, that would be fast, considering it's already fast.
It looks really good, but I've never been able to run it.
@Henrymop
Never underestimate great programming skills and utilizing the latest ray-trace/GI/3D research (which Chris employs) to overcome programming language differences.
@Carlos
What issues did you have?
Quote from etr9j:
Never underestimate great programming skills and utilizing the latest ray-trace/GI/3D research (which Chris employs) to overcome programming language differences.
What do you mean?
You're right... should have clarified better :)
What I was trying to say was that if we believe that one language is "better" than the other (e.g. C++ versus Java) that might be true under very particular circumstances if two programs were written to do the exact same thing in the exact same way. But in the case of Sunflow, Chris's use of numerous techniques (KDTree construction using radix sort, optimized raytracing routines, a new global illumination algorithm, etc.) might allow for a better overall render speeds versus similar renderers written in other languages becuase he is using optimized techniques for the task.
I'm interested in any thoughts you might have on this!
But I do see what you mean though... how much better would it be like if it (with all that it has now) was written in C++.
I'm just throwing out there thoughts on the quality of the rendering is more based on the the way it's done rather than the language. I just don't want the Java to deter anyone from trying it. Okay, talking too much now :)
I see what you mean now. My dad says that he doesn't like Java a whole lot, and I used to think that whenever he started saying that (he's a C person). But, now the reason I'm starting to not like it is because 1) It's an emulator, and a interpreter, at that 2) Corperations are pushing it up everyone's butt, which means they're going to try to use it for something in their best interest, which usualy means something that isn't in ours.
But, yeah, it's pretty obvious that this guy is a good programmer. He could probibly be great at other languages. If he ported this over to other languages, that would be cool, too.
Actually, current Java versions are not that slow when doing pure number crunching. Java used to be slow as hell, at least with graphics/GUI. Running Java application consumes more memory than optimized C/C++ application for sure, but Java doesn't equal slow anymore.
http://www.idiom.com/~zilla/Computer/javaCbenchmark.html
C/C++ are about twice as fast as java for most things that are going to be CPU bound
http://shootout.alioth.debian.org/sandbox/benchmark.php?test=all&lang=gcc&lang2=java
LetterRip