Slashdot Mirror


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.'"

38 of 233 comments (clear)

  1. Re:Blender on Linux by Quiberon · · Score: 3, Informative

    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.

  2. Re:What's the use? by shamilton · · Score: 4, Informative

    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
  3. Re:Comparison by woodhouse · · Score: 4, Informative

    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).

  4. Re:Blender on Linux by Anonymous Coward · · Score: 2, Informative

    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.

  5. WTF? by Anonymous Coward · · Score: 1, Informative

    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.

  6. Raytracing on Linux by Anonymous Coward · · Score: 3, Informative

    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.

  7. Re:Blender is getting mature by Exiler · · Score: 4, Informative

    In 2.3.

    Actually there's been an undo feature for a long while, it was just clunky and unwielding before...

    --
    Banaaaana!
  8. Re:Not a graphics expert.... by spinflip · · Score: 2, Informative

    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?!?!

  9. Mirror by linux_warp · · Score: 5, Informative

    Blender.org was being hit hard so I mirrored the before and after pictures on my website, mindwarp.net

    Before
    After

    1. Re:Mirror by visgoth · · Score: 3, Informative

      That's the whole point of using raytracing. The 1st image looks dull because its not reflecting anything. One could generate a reflection map and use that to approximate environmental reflections for the first image, but it wouldn't be very accurate.

      My one issue with the second image is the lack of soft shadows. The shadowmaps in the 1st image look nicer than the overly crisp raytraced shadows in the second. If they could implement area lights or some other soft shadowing technique for raytraced shadows it would be good.

      --
      My patience is infinite, my time is not.
  10. Info: The monkey on the picture/other stuff... by Qbertino · · Score: 5, Informative

    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
  11. Re:Hah... by Lars+T. · · Score: 2, Informative

    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

  12. Re:Not a graphics expert.... by Pike65 · · Score: 2, Informative

    (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
  13. Re:What's the use? by Spy+Hunter · · Score: 5, Informative
    Raytracing is not THE elegant solution. It is one of many methods of rendering. It is very hard to simulate realistic global ligthing effects using raytracing (soft shadows and light reflecting indirectly off of other surfaces in addition to light coming directly from a light source). For example, take this image. You might think that's a fine raytraced image. But then compare it to this image, produced with radiosity. I think you'll agree that the second image looks *much* more real. Note the subtle shading across the back wall and ceiling, and also the way it is a little bit darker where the walls and ceiling meet at 90 degree angles. Effects like that would be nearly impossible to reproduce with raytracing, and don't even think about real-time rendering. Pictures like this really show how far real-time rendering has to go before it actually looks like reality.

    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?" `":" #");}
  14. Re:Not a graphics expert.... by samhalliday · · Score: 3, Informative

    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!

  15. Before and after pics - a graphics point of view by Adam_Trask · · Score: 4, Informative
    Comparing the before and after pics is like an apples-to-oranges comparison. It is technically not "before and after". It should instead be called xyz rendering and ray-tracing. Depending on what the xyz rendering method is, the picture quality will vary. The reflections etc. that can be seen in the ray-tracing image can be reproduced (not exactly, though) using methods like environment maps.

    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.

  16. Do not do this. by Anonymous Coward · · Score: 1, Informative

    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.

  17. Others Blender Raytracing examples .. by gbitten · · Score: 2, Informative
  18. Re:What's the use? by Animaether · · Score: 5, Informative
    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.

    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.
  19. Re:Comparison by Anonymous Coward · · Score: 1, Informative

    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.

  20. YAFRAY!!!!!!! by Anonymous Coward · · Score: 1, Informative

    If you haven't seen it yet, you should check out yafray. Truly a 2nd generation free 3d renderer.

  21. Re:what did they use before?! by woodhouse · · Score: 2, Informative

    Tell that to Pixar. Renderman is raster-based and they were doing just fine last time I checked.

  22. Re:What's the use? by Anonymous Coward · · Score: 1, Informative

    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.

  23. Re:Whar Blender really needs... by Lumpy · · Score: 3, Informative

    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.
  24. Re:Wrote one by JerryKnight · · Score: 2, Informative

    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.
  25. Re:What's the use? by olethrosdc · · Score: 2, Informative

    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)

  26. Re:What's the use? by kbielefe · · Score: 2, Informative
    Keep in mind that all the Pixar movies use rasterization techniques, not raytracing or radiosity.
    Raytracing is prominent in the renderman feature list as being available since release 11 and used when the shot merits it. I'd be very surprised if raytracing wasn't used in "Finding Nemo" at least.
    --
    This space intentionally left blank.
  27. Re:What's the use? by hawkstone · · Score: 3, Informative

    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.)

  28. Now let's get some real-time raytracing by PixelSlut · · Score: 3, Informative
    Someone recently posted on NeoEngine's forum a link to a development, both software and hardware, towards Real-time raytracing. It's not yet a reality, but think about where it may be in only three years or so.

    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.

  29. Blender is great. by eadint · · Score: 1, Informative

    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,

  30. Hybrid Renderer by dcuny · · Score: 4, Informative
    Actually, the beta that Ton posted is a hybrid renderer. It's still primarily a scanline renderer, but you now have the option of using raytracing for shadows and reflections.

    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.

    • Worthless trivia: Renderman only recently acquired raytracing - for the few times that it was actually used, they used the BMRT (Blue Moon Rendering Toolkit), a raytracer developed by Larry Gritz. Larry quit Pixar and formed ExLuna, which marketed another Renderman compliant renderer. Pixar sued ExLuna for IP infringement (the exact details are hazy, since they came to an out of court agreement), ExLuna was bought out and all the renderers (including BMRT) disappeared. Soon thereafter, Pixar's Renderman added raytracing support. Still, full raytracing is used in Renderman quite sparingly.

    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.

  31. Undo in Blender 2.3* by barista · · Score: 4, Informative

    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.

  32. Re:What's the use? by Animaether · · Score: 2, Informative

    Well I don't have the foggiest what you did to mess up your post like that, but to address the things you mentioned...

    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 :P

    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.

  33. Blender is going places by UglyMike · · Score: 5, Informative
    Don't forget.... there is a new 600-page book coming out end of this month. This has the new GUI but not the Raytracing part. There is also a Japanese book currently in print. Details on Blender.org

    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

    • internationalisation
    • way better meta ball implementation
    • knife tool
    • raytracer (reflections&shadows)
    • completely reworked GUI (and still changing)
    • a newer, better Python API and plenty of great scripts ( Fiber2, MakeHuman,Tesselate,...)

    These are just my favorites. There is tons of other stuff as well.
    In the coming weeks/months, we'll see

    • Beast script (including card-based fur just like IceAge)
    • better nurbs based on Nurbana
    • integrated bevel tool (script-based bevel already exists.)
    • Integrated REAL raytracer (YafRay)
    • further tuning of the new GUI
    • ???

    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.
  34. Re:Art of Illusion - exellent stuff by vik · · Score: 2, Informative

    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.

    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 :v)

  35. Re:Blender is getting mature by LSD-25 · · Score: 2, Informative

    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.

    The Demise of BMRT & entropy

    Here's a list of RenderMan-compliant renderers. Some of them, like AQSIS, are open source.

  36. Re:What I want to know is .... by FunkyChild · · Score: 2, Informative

    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

  37. Re:Wow! Almost Usable! by FunkyChild · · Score: 2, Informative

    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.