Since Cycles is the ‘new hotness’ we naturally don’t want to exclude using it for our renders. However, Cycles lacks some features and support that Blender internal has; such as SSS, volume shaders, strand rendering, particles, A.O. and probably more. In order to use it at all we’re going to have to combine our renders, and we need a good way of managing this.

One side of this is the compositor: you can put a Cycles scene into a file, an Internal Scene, and then render them both from a third, compositing scene, that pulls in renderlayers from both. So far so good, but! if you have have objects linked into both scenes, what to do about materials? Cycles materials and Blender materials are different… or are they?

Turns out nodal materials are our friends, because they can contain both Cycles shading nodes and Blender internal nodes… nifty, right? so all you have to do is use nodes in internal, and then both will work.

If you feel like you need more in depth explanation, check out the video tutorial below, and download the included .blend file.

EDIT: New .blend file! includes solution to the emission problem: download here

  1. Cool stuff, good technique for mixing different rendering engines.

  2. Looking forward to checking this out, but there seems to be issues with the video.

    Using Chrome 16.09, Win 7.

  3. Ah, nice! Clever technique there, Bassam. Would be nice if we can harness the Cycles render’s layer passes and what not. But other than that, this is a really nifty workaround. Thanks for sharing! 🙂

    -Reyn

  4. Hi Aaron, not sure what’s going on! I just installed Chrome here (vers. 17 which I guess is the stable one) and tested, and the video ran fine. I wonder if it is an issue with your version of chrome, or of windows, or maybe the speed of the connection? can anyone else using that combination weigh in?
    FYI I’m using the video tag for the video with 3 sources, here’s some direct downloads of them for you to try:
    http://urchn.org/wp/wp-content/uploads/2012/02/tuto0001-4190.m4v
    http://urchn.org/wp/wp-content/uploads/2012/02/tuto0001-4190.webm
    http://urchn.org/wp/wp-content/uploads/2012/02/tuto0001-4190.ogv
    As far as I know: the second one should be active in Chrome, the first in IE or Safari, and the final in Firefox (though webm works in firefox also)

  5. Thanks Reynante! Looks like there’s some weird stuff going on with passes still- I’m getting cycles passes in my blender renderlayers 😉 and I haven’t even tried rendering. But maybe that will get fixed after 2.62.
    Long term though (seriously) I hope that cycles becomes so capable that there is simply no point in mixing in internal renderlayers. That might not happen for a year or so, however.
    I’ll try a test with renderlayers and see if there are some workarounds / caveats there.

  6. Seems to be working now – cheers.

  7. […] a test from  Bassam’s tutorial on using cycles and internal together. The result is not terrible, but not perfect. Used another model cause cycles crashes during render […]

  8. AWESOME technique! Thank for videos link for download ;D

  9. Sorry I don’t see a download link for a blend file…

  10. If you click on the word ‘here!’ in the post above you’ll get taken to blendswap 🙂

  11. Hey Bassam,
    I’ve been trying to get double resolution normal, OBIndex etc passes out of BI to use with bilateral blur on a cycles scene so as to prevent antialiasing artefacts. I tried to make render layer sizes different for the BI and cycles scenes (as you advise against doing in this video!), but always got renders at the size of the composite scene. Your advice to check renderlayer sizes to prevent all hell makes me think you’ve found a way to get (undesirably in your case!) different size renders out of one file? If so I’d love to hear it!
    cheers

  12. hmmm, maybe that got fixed? I just set them differently, and had aspect ratio/misalignement issues. maybe the camera framing was just not I expected- been a while, don’t remember.
    btw, your committers post confused me to the point I didn’t quite realize what you were asking about. full samples would fix it, but of course, cycles wouldn’t support it yet and you might have issues on farms (If paths are shared between nodes)
    The only reliable way is render twice as big and scale down. :/

  13. Hmm, yeah it must have been ‘fixed’! bad luck for me.

    The bilateral thing:
    I tried to explain what’s wrong with bilateral blur in the compositor, but didn’t do it very well, and I guess noone’s interested. If you read the release notes for it: http://www.blender.org/development/release-logs/blender-246/compositing-nodes/ hopefully you can see why the example usage is completely flawed. Its a shame because bilateral blur could be a massive help for combatting noise in cycles renders, but it needs to accept multiple inputs for determinator to be useful. As it is now its pretty much useless. Say you want to blur where neighbour pixels have a similar Z and normal, and not blur when neighbour Z and normal are different, the current method shown in the example is to use an add node before the bilateral. This is a bad hack because there will be some pixels for which the neighbours have a different Z value, and a different normal, but normal+Z is the same (the two differences cancel each other out). The bilateral node needs to compare differences individually for each pass being compared. hope this makes sense!

    I had a look at the C code for the node but I couldn’t figure out how to make the bilateral node accept any number of determinator inputs (like the File Output node does now). The file output node creates multiple operations for each input wheras I would want one operation. When my current project is over (June) I might dive into C and start trying to fix all the things which drive me up the wall … like the blur brush in weight paint which just paints with the average under the brush!
    cheers

  14. Hey, yeah, I understand. I actually didn’t understand bilateral until now 🙂
    one way to get around the problem you state is to check the ranges for normal and z, and maybe math them so they don’t have the canceling-out possibility, or at least not as badly.

  15. This is fantastic. I was finally able to devise a way to render edge outlines, toon-like, in cycles using this technique. Many thanks.

  16. If I’m going to submit a post, I should probably use my OWN website in the Submit area. Sheesh.

  17. Hi, can not found the download link.
    I have the Problem the 3 (new) Scene you created for compositing show no Cycle or Blender
    internal R,-Layers in my case,
    … its empty ..need your file to download,would be co.ol

    wfG S.R:

  18. ack, where is the download link! I can’t find it either, let me see where I put this…

  19. Hi,
    thx for the tip,but
    when mixing the internal and cylce nodes,
    the indirect light of Blender iinternal material with activ emmison(+2) is from now on missed .. no emmision works with mixed setup.
    happy whise Cycles mixed node allow emision as mixed node with diffuse material quiit simple
    andboth Layers Bi & Cycles can be mixed in the Comp Scnene.
    -… is that normal or , no emmsion for internal when mixed Nodes setup activ or used ?
    wfg Sebbo

  20. It appears that this is a bug or limitation with blender internal – emmision is not taken into account with nodal materials.
    So here is a workaround (I hope you can follow this)
    For the Emission object, instead of one object linked to both scenes, you need Two objects, with exactly the same transform (if animated you can use the same action)
    One object for each scene eg. obj_internal and obj_cycles
    make the material linked to object instead of object data
    both objects can link the same object data (if a mesh it can be the same mesh)
    now you can use two different materials, instead of one with linked nodetree
    use an emission material for the internal scene but no nodes, now it will work.

  21. Ok, Sebbo and Jacky, I remade the download file! check the post.
    Sebbo, I included an emission example for you in that file.

  22. Wow,
    nice your are the best, amazing .
    Really thanks for the fast answer and help, thast a beauteful day.

    wfg Sebbo

  23. Hi, I parent the animated emit opjects to a empty.
    So I can move the objects and animate Loc_Rot_scal actions.
    Now with shared mesh data I can use one action set of shapkeys
    and thats for both cylcles and blender internal objects and thats really cool.

    I test to use objects contrains modifiers copy_loc_scale_Rot_transform
    and that works fine when I grab a object and move it to different location
    but when it comes to keyframe creating,
    the other emit object thats lay in the oposit scene doesn t follow
    that keyframe action from now.

    I m not really familia with Blender is so much to learn
    but your solution together with the mesh tip helps me really to figure out a solution.
    really thanks

  24. well, since the emit object is a different object now, you need to link it to the same action!
    not that hard, try as follows:
    In the scene with your properly animated emit object, go to the dopesheet editor, and change it from ‘dopesheet’ to action editor. Then note or rename the action data block there.

    Now switch to the scene with the non-animated emit object and just select the same action in dropdown in the dopesheet editor. voila! now they will animate the same.

©URCHIN 2015