color-difference-keying.jpgIf you're not satisfied with Blender's built-in chroma-keying notes or if you'd like to have more control over them, then check out this 11-minute videotutorial on color difference keying by Dave Weese.

Update (26/04/08): this tutorial is no longer available; please read 'Keying Hair in Blender' instead.

Dave writes:

This short video explains color difference keying - a green-screen matte extraction technique that is arguably the most common and effective keying technique used in feature film work for the past ten years - much, much more effective and easy than chroma-keying in most cases. It is the basic mechanism operating "under the hood" in expensive keyers like Ultimatte.

It also explains one of the most effective spill suppression techniques, and reveals one of the untold secrets of good matte work - edge blending. Anyone who has struggled with chroma-keying will be glad to learn this information.

Dave Weese

I LOVE this video!! It breaks many of the guidelines I wrote about before: the pace is insane, Dave's mouse is flying across the screen, images zoom in and out - better fasten your seatbelts before playing this one! (Halfway down the tutorial, Dave even comments 'I'm gonna go fast, so here we go!', which is like shifting from fourth into fifth gear ;-) At the same time, his presentation is flawless (did you really record all that in one take, Dave?), he absolutely knows what he's talking about and the enthusiasm is just pouring out of the screen. I'm 100% sure that if he would produce a nice training DVD it would sell like crazy.

On a final note, I do feel a bit sorry for the girl in the shot that Dave used; it's not a very flattering picture :)



Related Posts


Related posts are selected automatically based on their content.


53 Responses to “Videotutorial: Color Difference Keying with Nodes”  

  1. 1 MrMunkily Edit Link

    This is an amazing tutorial.

    Extremely well presented, and very valuable knowledge.

  2. 2 Hexa Edit Link

    WOW. That is a must see. Thanks for putting this together. I'd sure buy that DVD-Set :)

  3. 3 ibkanat Edit Link

    very helpful…. thanks

  4. 4 Garland-Waide Edit Link

    Great tutorial. I'd like to know if it is available in a downloadable format.

  5. 5 goodneck Edit Link

    WOW, thats just awesome!!!

  6. 6 infinder Edit Link

    This is great! Could be in a zip file for download and watch it from my disk?

  7. 7 Sinistar Edit Link

    helpful tut!
    @infinder: the flash animation to download is here: http://uploader.polorix.net//files/312/color_diff_key/color_diff_key.swf

  8. 8 infinder Edit Link

    Thank you very much sinistar, downloading now..

  9. 9 Sparkus Edit Link

    Excellent tutorial with extremely useful information, BUT: Pleeeease speak slower! You're not in a hurry, none is behind you. It's no need to break speed records ("I can explain radiosity in five secs!") *g* Bandwidth is not a big issue these days, and most people probably have an additional 4-5 minutes.

    But I really enjoyed it. I still hope, Blender will be able to replace Shake one day… My personal wishlist for Blenders compositing engine is:

    - top to bottom network (I think those are more intuitive and tend to be less chaotic)
    - support mask inputs
    - capsules (grouping many nodes into one black-box-like super node)
    - export and import those capsules (so you don't have to rebuild networks all the time)
    - support for AE plugins (imagine all the possibilities….!)
    - more nodes; especially for easy tasks (invert, xor, and, or, overlay timecode)

    Hope to see them one day integrated in Blender.

    So far.

  10. 10 Bart Edit Link

    @Sparkus:

    "- capsules (grouping many nodes into one black-box-like super node)"

    Do you mean groups? You can already do that: select all the nodes you need and press CTRL+G.

  11. 11 Dr3amZ Edit Link

    This is GREAT tutorial! thanks for sharing your knowledge Dave! that was helpful indeed..

  12. 12 Sparkus Edit Link

    @Bart:

    Oh great! I didn't check it out… I think it would be great if you could export those groups. Take this color difference key as an example. Wouldn't it be great to offer an easy to use download. Of course it's better to implement it by yourself for educational reasons… But not everyone has the time. Imagine a submenu in the node editor menu where your favorite "groups" are listed, so you can automate everyday tasks like own color grades, custom edge detects, custom color keys… This would be extremely handy!

  13. 13 Sparkus Edit Link

    Ok.. forget that about the submenu… already implemented… *g* I'll better shut up now… *g*

  14. 14 madcello Edit Link

    Amazing nodes use!
    Congratulations for this wonderfull tutorial and thank you so much!

  15. 15 Matt Edit Link

    Sparkus: You can import node groups into other files by doing append and browsing for NodeTrees. Then they just appear in the Groups menu. It would of course be nice to have a system by which you could assign various files to be loaded at startup as a library system though (no the .B.blend isn't the same).

  16. 16 BArrYZ Edit Link

    My compliments for the Video, very interesting :-D

  17. 17 Toni Grappa Edit Link

    The americans seem to like this sterotypic german blonde maide. Allthough it has nothng to do with reality, it can be very funy. You get some examples, if you seach "Unpimp my ride" in google. Sorry for spamming :-)

  18. 18 Matt Edit Link

    Yeah, I should note too, I just watched the video and it was great. I didn't find it too fast at all, though of course it's not for beginners. That's great though, not everyone is just starting out! There needs to be more learning material that's not aimed at new users, otherwise everyone will be beginners forever.

  19. 19 Vassilios Boucer Edit Link

    Amazing Tutorial!
    and great explanation!

  20. 20 Kéké Edit Link

    Great video ! I'm not english speaking but I can follow the essential.
    It's clear that his enthusiasm is communicative.

    Did you notice ? Nothing to do with 3D. Blender is a very complete product ! ;-)

  21. 21 Bob Holcomb Edit Link

    That was awesome. Keep up the good work.

  22. 22 Sympodius Edit Link

    Superb use of the node system. I think this is one of the best techniques for doing 'green screen' that I've seen in the open source world.

    And, of course, thanks for sharing.

  23. 23 Bob Holcomb Edit Link

    Just a side note, the first part of his technique is what the channel difference node is doing, with the exception that it takes the Max of the either the red or blue channel (if keying the Green channel in RGB color space). If you're not seeing what you should (ie it's broken), please let me know and I'll fix it for you. That being said, this was an great tutorial, you should definitely do more.

    cheers,

    Bob

    PS. Sparkus, the mask inputs for some nodes are next on my list after the node refactor (which I'm mostly done with).

  24. 24 crazybus Edit Link

    Has anyone being able to fully download the video from the link posted before. As I've tried but each time I tried in a download manager it got close to 99% and then started again from the beginning ,deleting what had being downloaded before. And when I tried Firefox's' built in manager it only got to 39mb before saying it was complete and was thus incomplete.

  25. 25 fritzman Edit Link

    This is one of the best tutorials I ever saw which are quite some.
    Material of this high quality is much, much appreciated.
    Thanx a lot, Dave!

  26. 26 MathiasPedersen Edit Link

    Really awesome tutorial. Nice seeing a little higher level tutorials!

    //Mathias

  27. 27 Dave Weese Edit Link

    Hmmmmm….Bart, if you're really, really, 100% sure, I may just get to work on a DVD! :)

    I guess I could have slowed down a little bit! Too much coffee that day, I guess.

  28. 28 Dave Weese Edit Link

    I can assure you the girl in the tute was not at all pleased either! But she is a good sport, and I told her I would try to turn all the blenderheads on to her music video when it is done as compensation for her utter and complete humiliation. :)

  29. 29 Joel Edit Link

    Great tutorial so far - it just randomly stopped after about 2-3 minutes. Would the same technique be useful for Bluescreen, but would you just subtract the Red from the Blue instead?

    Also why is this method better than the Difference Key node, as Bob said it uses the same method?

  30. 30 Satish "ILuvBlender" Goda Edit Link

    Hi Dave. Awesome tutorial. I remember you now! When i was learning blender i followed some of your tutorials on your website (dupliverts and lattice based animation). Whenever you have the DVD ready i am buying it. :)

  31. 31 wolfmanyoda Edit Link

    That was awesome, thank you for taking the time to share it with us :)

  32. 32 ccherrett Edit Link

    Thank you very much for posting this. I have always had trouble with keying with plugins. This gives me so much more control.

  33. 33 Bob Holcomb Edit Link

    Joel,

    I'll try and answer for Dave (pleaes correct me if I'm wrong), but this method is "better" than using the channel difference node because it allows control over the process at every step. The trade off is speed.

    cheers,

    Bob

  34. 34 Dave Weese Edit Link

    Blue minus red works very well too. I have tried the color difference node and the other keying nodes, and I have a hard time getting good results. As I say in the video, color difference keying is a very old and tried and true technique in the film world.

    Bob is quite correct! Taking the max of the blue or red and subtracting THAT from green is actually the better method, but I have found if the greenscreen is reasonably well lit, it's a step that's seldom needed to get a rough matte.

    Questions for Bob : Regarding the difference node, if it's using channels under the hood as I did, what is the purpose of having a selectable key color? Also the nodes all seem to do good job of deciding what should be transparent. Where I've had trouble is having control over edge quality. I'd love to talk about the algorithms you used.

    Dave

  35. 35 Josh Edit Link

    Wow. Fast and furious! Great tutorial! This is one that just about everyone should see! Well done, Dave. Well done.

  36. 36 tom Edit Link


    i thing the link is broken…i cant get it:S

  37. 37 thoro Edit Link

    Brilliant! I like the style, the quality and the speed ;-) of this tutorial.

    Thank you very much, Dave!

    Thorsten

  38. 38 Matt Edit Link

    Dave, I can answer for Bob - it's not the difference key node, it's the channel key node. I can also confirm that it gives pretty good results, I used it recently at work doing some keying for a TVC, and it performed well. I do agree with you that edge quality can be a bit hit or miss, and I do like your method for getting rid of the spill, it's simple and really effective! Maybe that would be good to add to the node as an option.

  39. 39 Fire Angel Edit Link

    Boy will I have uses for this next spring!

    Fantastic to see this, a really effective demo of some of the most useful features of Blender for combining live action with CGI. Since that's something I want to do in the future on a fairly ambitious scale, I am really happy to see this. Never used the Blender compositor, but after seeing this I shall be looking at it more closely.

  40. 40 Bob Holcomb Edit Link

    Dave,

    I'd love to talk about better ways to key and remove color spill. I'm usually in IRC (#blendercoders) . To answer your question, the difference key uses the key color (from color picker) and determines the distance in 3-dimensional color space from that color to the pixel in question to determine if it is transparent/opaque/something inbetween. The channel keyer uses the green-MAX(red,blue) algorithm we've alsready discussed. Hope to see you in IRC. You should do more videos when you have a chance.

    cheers,

    Bob

  41. 41 Bmud Edit Link

    I was happy to have a nice fast tutorial. I would love more fast tutorials. It really strengthens me, and I'm glad you weren't afraid to teach the Blender community like a bunch of babies. Bravo!

  42. 42 Bmud Edit Link

    Scratch that.. I'm dyslexic. I mean… you weren't afraid to teach the Blender community like grown-ups, instead of as a bunch of babies.

    Durrr.. Maybe I should go back to grade school for english!

  43. 43 TKR101010 Edit Link

    Dave:

    Would it be possible to get a copy of the .blend file to kind follow along with?

  44. 44 mangojambo Edit Link

    I can't see the video!! I can download too!

    It restart every time!!! and I realy need this information!!

  45. 45 J Edit Link

    I try to go to http://uploader.polorix.net//files/312/color_diff_key/color_diff_key.html and it tells me "Field 'bw_used' does not exist in data/users//user_312.php" at the bottom of the screen.

  46. 46 Hannu Edit Link

    I get "Field 'bw_used' does not exist in data/users//user_312.php" error with Firefox, but with IE all is ok.

  47. 47 Bart Edit Link

    I talked to Dave and we changed the link. It should work fine for everybody now.

  48. 48 kadag Edit Link

    Yes Dave,

    I'm with TKR in seeing if you would share the .blend file?
    there is a tricky compositing project coming up that
    could benefit from this approach.

    thanks agian.

  49. 49 nadaklan Edit Link

    Is this available anymore? I would like to see it.

  50. 50 David Weese Edit Link

    I am so sorry about that. It's back up at http://www.blendedplanet.com

    Dave Weese

  51. 51 an8kid Edit Link

    um.. i have the latest blender build… 2.45
    and I don't get any of those options (MATTE,Distort,filter)
    I only have
    Input
    Output
    Colour
    vector
    convertor
    group?

    anyone help me?

  52. 52 Bart Edit Link

    Link updated. Thanks Dave!

  53. 53 qasar Edit Link

    Could it be possible to have the link working again please ?
    THX !

Tip: register on gravatar.com to show your own avatar with your comments instead of

Leave a Reply