 Hello everyone, my name is Thomas Dinges and Yeah, today I would like to talk a bit about cycles rendering I tried to keep the presentation pretty brief So we still have plenty of time for questions, especially since there are several cycles developers here in this room at the moment So maybe to give you an opportunity to ask questions So if you like you can already start thinking about something that you always wanted to ask us So you will have the opportunity in a bit Okay, so cycles how many of you do remember this render or that scene in particular Okay, that's quite a few okay So, yeah, it all started in April 2011 when Brecht released cycles and there was the code blender.org blog post and when you opened the cycles branch You had exactly that scene in front of you the two monkeys with two materials and you could start rendering in the few pot And it was like oh my god, we have a new render engine and I know exactly how I was sitting in front of the computer and like oh my god, this is real and Yeah, it all started with two monkeys on a plane and who would have thought that this Continuous in such a way that we have so many amazing films today. I mean I will talk about that in a bit And yeah, I think it's pretty fair to have another slide which says thank you Brecht because Yeah Okay, so Let's talk a bit about the past year since last year's blender conference Development-wise we had four releases. I think starting with 2.73 which was in January, I think Yeah, so we had improved area light sampling which you can see pretty well here so especially inside of volumetrics there is a Much less noise in there and also when you have an area light which is close to a surface You have better quality and less noise there As Zell gay already said in his previous talk we have camera support inside of volumetric objects that means that you can fly through clouds or whatever you want and that works pretty well and recently in 2.75 I think we also did optimization there. So it's a lot faster now It was a bit slow previously, but now Zell gay and I optimized it and it's up to 10% faster now when you are inside of volum I added light max bounces to light objects and Months ago so also to the world As you can see in this picture. I hope it you can see it You can now limit the amount of bounces that are Yeah, the amount of bounces that are light is influencing the scene. So We have zero bounces up there and then one bounce to bounce three bounce and so on So this can help the render time if you just want to use a light to yeah as kind of fill light for example that just Illuminates the surface once and does not contribute to the global illumination And that can help with render time a bit as well Bender 2.74. Yeah, so I also mentioned this already We have the QBVH data structure which helps performance a bit and also the watertight intersection which helps when you have a ray that is Intersecting two triangles exactly on the edge. So you could have like light leaks or stuff like that And that is fixed now. We have a pointiness which is an attribute in the in a note You can use it to for effects such as dirt effects on edges or whatever if you want to give you your object and a bit of an old look so stuff like that and In 2.74 we also started really with those memory optimizations, which basically were a topic for the last year Because we wanted to render gooseberry and we already knew that it would be a major Challenge to have all these sheep and the grass field and everything. So we started with it end of last year and Basically continued with those optimizations until today in blender 2.75. We got the initial support for AMD GPUs AMD was helping us and developed a patch the so-called kernel spit patch which Basically enabled cycles to use GPU rendering on AMD cards. It's still not feature complete So there are still a few things that are not Integrated and that are not supported in the open cl kernels such as volumetrics for example or subsurface scattering But we hope to Yeah to finish that at some point and Lucas Stockner was having his big his first big feature in master and the light portals So when you have an interior scene and you have light coming through the window for example and like an HDRI outside or whatever Then the light portal will help there So you will have significantly less noise in the scene at a cost of a slightly slower render time But in the end you still have a much better image in the same amount of time that you would need to Yeah, if you would render without light portals and again performance and memory optimizations were also a topic in this release Then in 2.76 we got point density texture which was used for a tornado on Cosmos laundromat You can see here one of the first test renders from Gottfried Hoffmann who was using that to showcase the feature and We also have camera zoom motion blur. So when you change the Focal length of the camera you can now have camera zoom as well in addition to the to the motion blur that we have That we already have before Yeah, and also the speed ups for spatial VVH building As Sergei also said we hopefully can make this the default at some point We can still make it multi-threaded. So it's still using one CPU core. So Once we make this multi-threaded then hopefully we can at least enable it per default or maybe even Remove the option and just always do the spatial VVH build We're seeing we we're gonna see how this works out and There were further enhancements for AMD GPUs. So when you have when you're on OS X and you update it to the latest El Capitan release then you can now render on macOS with AMD GPUs as well Okay, let's talk a bit about artwork. So I'm I'm really really happy about everything that you guys do with cycles. It's There's no better way to thank us. I think then by doing amazing artwork. I mean, that's that's just what what keeps us Doing what we do because every time we see a new short film and animation an image It's just like wow you guys did that and then we of course want to make it even better for you and everything so please keep that up and keep doing amazing artwork and One thing that is really noticeable compared to the first one or two years is that There are more and more animations. So in the beginning, I guess of course due to render time I assume there were more still images and by now there are more and more animations coming up And that's really amazing and also the complexity of course is getting Yeah, it's growing so just free images quickly and to showcase Free things that I like a lot Cosmos laundromat, of course with its complexity and the grass and the volumetrics and Just amazing. So, yeah, big round of applause for the team They have done an amazing job and Yeah, Cosmos laundromat recently just last week won the animago award for great quality and everything. So, yeah I think that speaks for itself and There was another animago award going to This image from he's called frequency loss on the forums and he's done this artwork also with cycles And I think that's a really nice one as well And everyone who was yesterday at the screening of course the alike short film by Daniel Martinez Lara It's just another great example of how people are using cycles these days and I Don't know about you guys, but I couldn't see a really noise in there. So I think it sits quite well done and Yeah But before I talk too much about those kind of things. Let me just quickly Show you the demo reel which Alexander Mitzkus edited for this year's FMX conference and It should give you I mean, I guess most of you already know this but let's just play this back And Can we maybe dim the lights a bit please Maybe we can see it a bit better. Thank you That is in there and I cannot wait for next year's FMX to just find the opportunity to do another demo reel It's it's just amazing Okay, so Let's talk a bit some upcoming plans and changes So here's a list that Zell gay and I did yesterday So you probably have seen the shadow catcher already Saga was showing it at the end of his presentation and it will also be a self-shadow option probably so you can Probably the ray visibility panel so you can avoid self-shadowing if you want to have that disabled for certain objects There is some work going on on denoising functionality like post-processing denoising which will probably be part of the compositing workflow That's not really certain that is Sergey here. Yeah, we'll see how exactly we of course Yeah, so we'll see how exactly we will implement that and We will also look again at the adaptive sampling patch from Lucas and see how we can use that and Yeah, if this can be integrated Then the open CL split needs more work as I already said volumes are missing subsurface scattering is missing And we probably want to do the same thing for the CUDA kernel so that Nvidia users can also benefit from the performance improvements The thing is here that the CUDA kernels are static at the moment So we built one CUDA kernel which contains all the features and we want to do the same thing like what we have for open CL now So it is seen in it is it is seen dependent So when you have a scene open that does not contain any grass for example, then the kernel will be compiled without hair Rendering code so that is a speed up especially on the GPU Which then can avoid all kinds of calculations and the kernel itself is smaller which also results in a lower memory footprint And for the kernel software itself so We hope to implement that for CUDA as well and make feature aware of compilation So that if your scene is pretty simple then the kernel will be faster And only if the scene contains all the crazy stuff like hair volumes, etc, etc, then we will compile the big kernel Yeah further optimizations hair intersections motion blur, I guess Volume metrics as well. I think those are the areas where we can still squeeze out performance. Hopefully and We will maybe also look a bit into virtual reality stuff It was mentioned yesterday already that the third episode of coming on this and a short part of it will probably be Rendered in VR. So maybe we will add some stuff there to make this possible And also one thing that I'm really really happy about is that cycles is also now getting used outside of Blender This trend started a few years ago when we realized and cycles from GPL to Apache which allows for commercial use In in software packages as well And there are two projects who are at the moment implementing cycles and one of them is rhino 3d Nathan let worry is implementing that for rhino and it should be a part of the next upcoming rhino version I'm not sure when exactly that release will be but it should be there and He made a lot of great progress there and he uploads YouTube videos regularly Let me just I mean a bit of time show you that He regularly posts Videos about this let's take this one for example, so Yeah, it's really nice to see cycles outside of Blender as well, and yeah, this is rhino 3d now and he made a lot of so it's GPU rendering only as far as I know So he's only utilizing that it's not possible to render on a CPU. I think And yeah, so that's cycles just outside of Blender okay, and We recently got to know that poser is also integrating it. I think they renamed it to super fly or something like that But yeah, I don't have much information about that yet So I'm not sure if there's a public build available yet, but they are definitely working on that and they also Contributed a small patch back to us which fixed some issues with area lights in combination of multiple important sampling So it's also nice to see some contributions then from people who work on that outside of Blender Okay, and that's basically it for my presentation part I really want to thank again everyone who works on cycles who tests it to makes great artwork with it and I'm standing here in front of you at the moment, but there are so many people contributing So we have Brecht here in the room who worked on it a lot who started the project in the first place We have Lucas Stockner here who worked on portals for example and adaptive sampling and we have Selga here and Lucas Tennis maybe here as well who worked on OSL and we have Dalai Philinto working on baking and Fish eye cameras and everything and Stuart Broadfoot who did the hair rendering and there's so many people and Just thanks to everyone making this project possible. It's amazing Okay, so we still have about 10 minutes for questions, so Yeah Who furthest? Yes, there is a furthest one one two one. Hello We spoke a bit earlier on just I just wanted to whether there was any attention doing in general While everyone's listening, I guess four things like procedural textures Like is anyone going back to that and taking a look at say the Voronoi Procedural noise for example like Change of the size of the cracks or maybe having a like a bevel distance and that kind of thing because at the moment You've got like the you can do the color cells or that you've got like the more sort of bubbly looking version You know, but the cells don't have any kind of crack Distance if you see what I mean and for obviously for a lot of procedural Texturing cracks and stuff in surfaces shows up quite a lot. So is it I mean is there anyone looking at that quite frequently? so We haven't really looked into procedural textures much lately and the thing is That basically every time you add a new note and especially procedural textures It increases the size of the mega kernel that we have which is a problem on the GPU So we were a bit. Yeah hesitant in the past to add new Textures there, but I Think it's a good Opportunity now when we do the kernel split and also for 2.8 To rethink the procedural textures that we bundle with blender Of course, there's always OSL which you can use on the CPU if you want to go crazy with textures and whatnot But for the GPU we might rethink some things add a new texture Maybe change some things, but that's yet to be seen. There is a patch I think in the tracker about Voronoi or something which extends it a bit But we have to see how much we change but yeah, we're definitely open for feedback there But as I said in the past it was a problem for the GPU, but that's hopefully not a problem anymore in the future So we'll see Cycles baking be improved in the future I Am I'm not sure about cycles baking exactly the life of Linda worked on it and there are some fixes from time to time But at least yeah, it's it's an area which at least I personally don't really see as a as a priority for me But I can just yeah speak for myself here When there is a crucial bug in there, of course, we try to fix that in every area of cycles But when it comes to new additions and features, it's yeah It's yeah, it depends on people and if there's interest in someone is interested in working on that then We we welcome everyone, but yeah, I cannot promise anything there. Thank you I second the question about the cycles baking and also Pointiness it's actually point any plan for pointiness that is not so dependent on topology So basically same thing as saying cavity baking or or pointiness or Pointiness know that it's not dependent on topology Okay, I would relate a question to Zell gay because he implemented pointiness so Maybe he knows well, I mean pointy Pointiness depends on topology because the policy depend which defends how pointy the surface is the only issue that we're using vertex color to store the the actual point in this in the in the in the kernel So what we can do is to generate some 2d texture in there and do some procedural mapping on it in order to improve like resolution of the point in this map, but Improving is always possible and we also could improve like the second algorithm of pointiness calculation as well but that was just the first step of getting the feature done, which was also required by goosebrake actually, but Yeah, we will keep working on this but there are various stuff to be supported there But it's not always so much trivial to do and just give us some time But yeah, no, you're right. Of course, it's it's better cavities something that's generally converted from from the normal map, but for example, I think it's only V-ray is something that is cavity that is Pointiness but not dependent on its distance base and it does the same thing but on the fly while rendering and it actually was If I have one second again, yeah, it's it's true that that wouldn't be something to for example cavity baking wouldn't be something to implement as as an option, but would Probably be better something more generic like the ability of adding some Image nodes compositing nodes to what you bake in in blender to do stuff more more generic like from normal having the cavity and For exporting to engines and for exporting in general been even just some channel mixing would be probably the so yeah You're right about saying that the pointness is Cavities better to be converted Yes Okay, do you plan to implement these new materials and also the expression Sorry, I couldn't understand a question. What do you plan to implement these new materials? Okay? I'm not sure if there are concrete plans for this at the moment But we we certainly want to look into additional BSDFs and shaders. So Yeah, the business and the Disney and BSDF is a good model to look into We always wanted to have some sort of uber shader to implement to have like a one-note with Some sliders to tweak certain effects. So yeah, it's certainly something we can look into. Yeah And also the expression your expression takes your language from Disney Yeah, I'm not sure about that one yet. No, okay. Thank you Next question I'll bet it by the way just out of courier's curiosity. How many of you in this room are using CPU for rendering? Okay, and how many use GPUs then? Okay, that's roughly the same I guess that's interesting. Okay, thanks Hello I was wondering Once open CL is up to scratch on parity with CUDA Does it make sense to you to carry on? developing both considering CUDA cards can also render using open CL to do you think it just makes sense to Concentrate on one GPU compute platform or is it not much work to update both? Of course, I guess it would be ideal to just keep open CL and kick CUDA out But in practice that's not going to happen. I guess because CUDA code still runs faster than open CL code and It could be that there are some optimizations that we haven't done yet in particularly because we have CUDA and haven't worried about open CL running on NVIDIA platform but Just off the record, I would assume that may be NVIDIA, I mean open CL runs on top of CUDA So I guess it's native CUDA code will always be a bit faster, whether it's intentional or a design or whatever So I don't think that we will be able to just go with one back and and kick out the other So I think that's unlikely So again, you have an addition there We're actually gonna do to bump open CL to requirement relatively soon and And we there is not gonna to do this anytime soon And we can't we cannot fight for them to do this So it kind of makes sense to support CUDA as well. It's it's the same code base anyway So it's it's not like it's getting huge amount of overhead for us anyway But we we just cannot stick to open CL just because it's open and the stick to all the specifications and suffer from this Are you are you planning to make cycles become the default renderer? We had this topic yesterday not yesterday last year and I think even the main issue And that is preventing us from switching is that for import export scripts It's Import and export scripts are not really working well with cycles yet So when you have like a material that you want to export with fbx or colada or whatnot The code is there and to do it based on blender internal, but not for cycles yet So I think that was one of the main arguments Apart from that. I mean it is it is a user preference anyway So you can save a startup blend file with whatever render engine you prefer So it's not like it's a pressing issue. I mean sure it would be cool But yeah, if there are still some things that need to be worked on then I would just keep it as is at the moment Yeah, and I mean when we have then when we have the viewport project and a new OpenGL style render engine there in combination with it, then maybe that will be the default as well and So we don't know yet Okay, I think it's time for one last question I Notice that when when I render with with my GPU the CPU mostly stand idols so Is it possible that that that cycles can use both CPU and GPU? That's something that we can certainly look into It's already possible with OpenCL But that's not going to run as fast as a native CPU code native CUDA combination So that's something that can be improved and yeah, certainly something that we can work on at some point Yeah, okay. Thanks again and enjoy cycles