Blender Adds Raytracing
rastachops writes "Blender, the Open Source 3D modelling tool has recently added Raytracing to its extensive list of features. 'Believe it or not, but Ton has integrated the raytracer from Blender's predecessor, Traces into Blender. He said "the algorithm has been optimized and is now ten times faster. Combine that with a PC that's forty times faster than in the early 1990's and raytracing is almost usable". For a comparison checkout the before and after screenshots.'"
It's probably a matter of configuring your Linux to use hardware graphics. Blender will get the graphics card to do the serious number crunching when it can; look at your graphics card vendor's web site and see if they provide a driver for your Linux.
Raytracing is *the* elegant solution. Rasterisers use smoke and mirrors to achieve the same effects. Often those tricks are not flawless -- for example, you often see a smoke or explosion texture intersecting with nearby walls, creating an ugly edge. This is not the kind of thing I would want to see in a production movie, but in a game, it's not so rough.
"[A] high IQ is like a Jeep; you will still get stuck, just farther from help!" --Just d' FAQs, c.g.a
The lighting is the same, they're just different sizes. I think the differences are pretty obvious though: the scanline-rendered image has no ray-traced reflections, and the shadows all have soft edges (presumably because they're shadow mapped).
Try recompiling blender with special cflags. It really helps with the speed, it can be up to 30-40% faster. Re compiling XFree86 can help too. To find out more, check out the Gentoo project.
Distributions such as Debian, SuSE and Red Hat ship slowest common denomitator binaires, which are very slow. I have done it, and the speed of blender well offsets the installation time.
Raytracing was usable on my amiga in the 90s. Geez. Sure, you had to go make a cup of coffee or three per frame of an animation, but it was definitely usable. Packages like Real3D actually did raytracing (and scanlining too - the PC usage of "raytracing" seems closer to amiga "scanlining" and the PC usage of "radiosity" seems closer to amiga "raytracing"... dunno why...). Realsoft 3D, a distant descendant of Real3D is available for linux Right Now.
Raytracing on Linux is already usable. Apart from POV , which AFAIK can do raytracing, Realsoft 3D, a new version of the old amiga Real3D (that also did raytracing, not just scanlining... WAY back in the 1990s...) is available for linux.
In 2.3.
Actually there's been an undo feature for a long while, it was just clunky and unwielding before...
Banaaaana!
if you raytrace you actually follow the true path that light would take (or reversed, I am not sure which they use), it is pretty much the best method of rendering realistic objects. this is just the first step towards a very powerful renderer and...*big eyes* Caustics?!?!
http://sflip.com
Blender.org was being hit hard so I mirrored the before and after pictures on my website, mindwarp.net
Before
After
FYI: The monkey on the pictures is called "Suzanne" - she's a girl - and is the mascot of blender. This year the Blender "Suzanne" awards got handed out as a small bronze statuette of the very same shape you see rendered on the pictures.
:-)
Further down somebody talks about more features (shader, etc.)
This was a big issue with the 'future developement talks' at the blender conference this year. Software design issues were discussed and different approaches were evaluated. This years suzanne animation award winner has designed a shader tool that will be integrated into / act as a interface/usability reference for the big blender 3.0 redo. Which will have a shading enviroment integrated. Some other major parts of the new stuff will probably make extensive use of the Yafray raytracer and the basic design that went into it.
Far out dreaming into the future led to considering a solid interface to the OSS crystal space 3D engine as to bring back the closed source realtime stuff into blender and provide a professional editor and design tool for crystal space.
The problem with that is that CS has a totally different structure than recent and current realtime solutions in blender, so this only is an option after the big Blender 3.0 redo that will shed all the dirty hacks and establish a solid software design to the Blender codebase.
So goes the plan for blenders future.
Can't say no to this karma-whoring, can you?
We suffer more in our imagination than in reality. - Seneca
Nope, you mean ray casting (apart from POV-Ray). Look here.
Lars T.
To the guy who modded me down from perfect to terrible Karma - Apple haters still suck
(or reversed, I am not sure which they use)
I think it has to be done backwards, or you end up shooting rays all over the place, 99.99% of which are completely redundant. Whereas if you trace them from the screen back to their origin you don't end up burning processor cycles in vain.
But I may have that wrong - I'm a real-time graphics guy ; )
"If being a geek means being passionate about something, then I pity those who aren't geeks." - Pike65
Radiosity isn't *the* solution to rendering either. There are a whole range of lighting effects we see in daily life, and even radiosity only simulates some of them. For example, caustics (the funny patterns of light on the bottom of the pool). Even more general approaches to simulating light are being researched, but I don't really know if any of them are in use commercially yet.
Also, in case you were wondering, Quake/Unreal/etc actually use radiosity rendering as part of the map making process, then store the results in "light maps" which are basically textures that control how light or dark a wall is instead of its color. Pre-computing the lighting allows real-time rendering of nice levels with radiosity effects, but it has several problems. Firstly, light maps take up a lot of memory (there's one for each wall, while most other textures are used on more than one wall and are tiled repeatedly), so they are stored at a pretty low resolution to minimize memory usage. This produces a blocky "stair-step shadow" effect that you've probably seen if you've played Counter-Strike. Secondly, since all the lighting is pre-computed, you can't change it easily. If you want a light to turn on and off, you have to store two light maps for every wall affected by that light: one with it on and one with it off. This is why in most games where you can shoot out lights, there are only a select few that you can shoot out. This approach has even more trouble with moving objects or moving lights (flashlights, car headlights, explosions, muzzle flashes). Real-time OpenGL or DirectX style lighting is usually used for these types of lights and moving objects, but then you don't get the nice shadows and other lighting effects that radiosity gives you.
main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
are you serious? well... the "before" looks more realistic if you imagine it as a chocolate monkey... but its supposed to be bronze; in which case you must be mad if you think it is more realistic than the "after" image!
I am not trying to put down the quality of ray-tracing though, it is the best. Others try to simulate ray-tracing. But folks rarely use ray-tracing in interactive settings (like gaming). Unless you can play at less than 1 fps.
gcc's optimizations aren't very good. Just compiling for 686 with -O2 is as aggresive as you should go. Look at some benchmarks some time, dumb gentoo users frequently slow their systems down by adding too many optimization flags that end up having the opposite effect.
here
We make a commercial renderer ( Brazil r/s ), and I can safely say "Yes" to that one.
Most of the commercial renderers, either specific or coming with an application, support global illumination through the use of Quasi-Monte Carlo sampling.
It, in essence, does calculate everything accurately - as long as you set the scene up as such.
It's also stupid-slow
That's why there's Photon maps, Irradiance Mapping, metropolis light transport, and even more simple constructions such as highly optimized skylighting, arealights/shadows and so forth and so on.
Real shadows have hard edges unless the light source is extended, actually. with a real raytracer, you have to remember to put in extended (finite-size) light-sources to soften shadows, or you get an effect like a harsh spotlight due to the tiny point nature of the usual default light source.
If you haven't seen it yet, you should check out yafray. Truly a 2nd generation free 3d renderer.
Tell that to Pixar. Renderman is raster-based and they were doing just fine last time I checked.
You could look up photon mapping. This is an extension to raytracing that handles just about every lightning effect.
Diffuse illmunation - check. Caustics - check. Subsurface scattering - check...
It is pretty much *the* solution if you ask me.
it does. please read the blender site to find the plugin to output to POVRAY..
I'd give you the link... but the website is slashdotted into oblivion right now.
Do not look at laser with remaining good eye.
Pike65 was talking about tracing the light's path from the light sources. This would be redundant if you did it for every ray from the camera. The trick is to store the light "rays" or "photons" and use them to estimate the illumination at any given point that a ray hits. This is photon mapping, and it can accomplish much better lighting than any "reverse" ray tracing method.
;-)
It does have some pretty big deficiencies, which is what my graduate work is about.
Your tracer looks nice (it's in java?!?), but you don't appear to be doing any attempt at "radiosity" or "global illumination." This is where the real interesting stuff is. You've only scratched the surface. And any math person would say that the math involved here is elementary (that's why I hate math gurus) - A few 3 dimensional line equations, some vector math, a few affine matrix transformations..
If you really like the rendering thing, check out any of a number of books about illumination. The one that inspired me was was Realistic Image Synthesis Using Photon Mapping by Henrik Wann Jensen.
Catapultam habeo. Nisi omnem pecuniam tuam mihi dabis, ad tuum caput saxum immane mittam.
Perhaps, but what radiosity achieves is to model the diffracted light rays from other surfaces. For example, suppose you have a red-coloured surface next to a white one. The red colour normally spills on to the white surface because some of the light diffracted from the red surface reaches the white one. This is quite hard to model accurately with ray-tracing because for every point that you trace back to a surface you must not only calculate the effect of the light coming directly from the light source itself, but from all other points in all other surfaces, because they all transmit live passively. So, it can't work.
I miss my rubber keyboard.(Homepage)
This space intentionally left blank.
So, it can't work.
Sure it can! Raytracing can absolutely model diffuse interreflections. However, while radiosity is an analytic (though approximated through a mesh) solution, raytracing typically uses a Monte Carlo sampling technique to achieve this. You can imagine how painfully slow this is, but it works just fine. (And it doesn't require meshing your objects beforehand, either.)
Of course, people also already have photon mapping working on the most recent generations of NVIDIA and ATI hardware offerings, and I think I recall someone from NVIDIA saying at some point that they expected this to be able to work at interactive framerates sometime during the NV4x cycle of GPUs.
Ive been using blender for about 6 months now. i started using it when my boss needed some 3d animations for his lectures., as a rule i allways try to use opensource software before i go out and buy stuff. i have made several animations in blender and i love it. the I is a little hard to get use too. but Ive done just about everything i need to do in it. the only qualm i have about it is documentation. i know there is Elysium but sometimes you just want a good user manual with nice tutorials on how to do everything. i think I'm going to donate to blender. 1 ) because i use it allot 2) because i don't thing i can contribute with code 3) i love the program.
also i made an animation of a carrier engagement and another 3d artist made one with lightwave, and in many aspects my version was better than his. so i think that blender can compete with the mainstream,
Ton's had the raytracer written for some time now, but it never got incorporated into Blender. The preview is the first to incorporate the code.
You could already do shadows and reflections in Blender, but they were simulated with shadowmaps and reflection maps, the same way that Pixar's Renderman renderer had done it.
The Yafray (Yet Another Free Raytracer) is a stand-alone full raytracer with a lot of features that has nice integration (thanks to Python scripting) in Blender. Future versions of Blender promise to integrate it more tightly, and seems more likely that's where a 'full raytrace' option for Blender will come from.
AFAIK, it only works in Edit mode, but you can use it by either hitting the U key, or by hitting the spacebar and in the pop-up menu go to Edit, then Undo.
It's quite useful, and you can also set how many levels of Undo you want. You can also set it to auto save every so many minutes.
The Blender documentation is ongoing, but they are coming out with a new 2.3 manual in January. 600+ pages and Blender 2.31 on a CD, along with tutorials.
Check out blender.org for the main site and some useful overviews. To really hone your skills, visit Elysiun and browse the forums. They are all about Blender and have sections for animation, modelling contests, GameBlender (Blender 2.25), and an extensive artwork section. To me, Elysiun is a great place to learn about different aspects of modelling in Blender.
Well I don't have the foggiest what you did to mess up your post like that, but to address the things you mentioned...
:P
:
Yes, a bi-directional monte carlo path tracer
Yes, it's an approximation. It always is. The more samples you take, the more accurate. At some point, takin more samples won't do you much good, and it's accurate enough.
Yes, more advanced shader models (brdf, bssrdf, shader models derived from actual models, etc.) yield better results. But then again, that falls under the whole 'set your scene up accurately' part. Nobody expects accurate results if your shaders are Gouraud
I think when we mention 'accurate' here, though, we're talking within the scope of Blender and Blender-like applications. I'm very familiar with medical applications because half the stuff we use comes from research in that field. But for
- architectural visualization
- broadcast/movie effects
- games cinematics
- etc.
The only level of accuracy that matters is the one that looks good enough.
Copies of the 2.0 Blender book can still be fond in some shops or simply downloaded as a PDF (of course, this one doesn't cover armatures and has the 'old' interface) There is also a newer documentation project using the 2.0 guide as base but completely reworking the obsolete content. Of course, there is also a truckload of tutorials available on the Net
Since the move to Open Source, Blender has gotten, amongst others
These are just my favorites. There is tons of other stuff as well.
In the coming weeks/months, we'll see
And the whole thing runs on most of todays's OSes
As you can see, lot's of stuff to go around. It might not be Maya or SFX or Houdini but it sure is a lot more fun!!!
If your first encounter with Blender's non-standard GUI made you trow up your hands in disgust, you should consider to try it again.
Yup, I use ArtOfIllusion for commercial artwork. It is indeed most exellent and powerful. Not only that, but there is some great documentation available for it too.
:v)
It would be great if Blender and ArtOfIllusion could share a decent file format. It'd save everyone a lot of heartache in the long term.
It has rendering and raytracing options, so both camps can be kept happy. Oh, and don't be put off by its use of Java. This is by far the speediest Java graphics app I've come across anywhere.
Vik
The founders of Exluna were accused by Pixar, their former employer, of misappropriation of trade secrets, copyright infringement and patent infringement. Exluna was able to settle the lawsuit by ending BMRT.
Here's a list of RenderMan-compliant renderers. Some of them, like AQSIS, are open source.
Blender.org is based on postnuke, though the design was modified by Xype. He used either Windows or Mac OS X, with Dreawmeaver/Photoshop/etc. Blender3d.org was designed and built on Windows with Dreamweaver/Photoshop/etc.
On the other hand, there may not really be much there that technically couldn't be done on UNIX/Linux software, though a) it may involve repeated head-bangning-against-the-wall and wasted time due to the interfaces of much of the programmer designed *nix graphics software interfaces, and b) it's not the software that produces the site, it's the designer, and not many good designers use Linux.
Although Blender is popular in the Linux world, 85%~90% of its users run Windows. It's a cross platform piece of software, so I wouldn't make assumptions about things being done on UNIX.
Cheers
As has been mentioned previously, this /. article is very premature. The news announcement on blender.org is letting users know that it's being worked on. At the time of the announcement, there had been one CVS commit, no bug fixing, no UI design, and no testing. It's at quite a preliminary stage, and quite a number of bugs have already been fixed since the announcement. In any case, it is a positive piece of news, for those hanging out for this feature.