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.
The Blend file has been uploaded to Blendswap, here! By the way, don’t forget (as I initially did) to keep your render resolution the same in all files, or all hell with break loose(tm)
Cool stuff, good technique for mixing different rendering engines.
Looking forward to checking this out, but there seems to be issues with the video.
Using Chrome 16.09, Win 7.
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
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)
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.
Seems to be working now – cheers.
[...] 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 [...]
AWESOME technique! Thank for videos link for download ;D
Sorry I don’t see a download link for a blend file…
If you click on the word ‘here!’ in the post above you’ll get taken to blendswap
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
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. :/
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
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.
This is fantastic. I was finally able to devise a way to render edge outlines, toon-like, in cycles using this technique. Many thanks.
If I’m going to submit a post, I should probably use my OWN website in the Submit area. Sheesh.