https://code.blender.org/2021/04/cycles-x/ Toggle navigation * Features * Download * Support * Get Involved * About * Store * Donate Blender Developers Blog * About * Blog * Wiki * Forum * Developer Portal * * Cycles X * April 23rd, 2021 * General Development * brecht * 6,025 Today it's been exactly 10 years since Cycles was announced. In the past decade Cycles has developed into a full-fledged production renderer, used by many artists and studios. We learned a lot in those 10 years, things that worked well, but also things that didn't work well, or became outdated as rendering algorithms and hardware evolved. We're keen to make bigger improvements to core Cycles rendering. However some decisions made in the past are holding back performance and making it difficult to maintain the code. To address that, Sergey and I started a research project named Cycles X, with the aim is to refresh the architecture and prepare it for the next 10 years. Rather than finding quick fixes or optimizations that solve only part of the problem, we're rethinking the architecture as a whole. The Project Broadly speaking, the goal of the project is to: * Improve the architecture for future development * Improve usability of viewport and batch rendering * Improve performance on modern CPUs and GPUs * Introduce more advanced rendering algorithms Our first target was to validate the new architecture. To that end, we've implemented a prototype of a new GPU kernel, and new scheduling algorithms for viewport and batch renders. There's just enough functionality to render some of our benchmark scenes now. [cycles_x_kernel_graph-1024x403]Current Cycles X kernel graph Today we're sharing some initial performance results, and publishing the code to collaborate with Cycles contributors. A technical presentation for developers on the new architecture is available, and the code can be found in the cycles-x branch on git.blender.org. There is much be done. We expect it will take at least 6 months until this work is part of an official Blender release. Initial Results First, some results from GPU rendering with well-known benchmark scenes. Scenes have been modified to remove features like volume rendering, which are not implemented yet. Be aware that the numbers will change as we keep working on the new architecture. OptiX support was added just a few days ago by Patrick Mours. * [Quadro-RTX-6000-OptiX] * [Quadro-RTX-6000-CUDA] * [Quadro-RTX-A6000-OptiX] * [Quadro-RTX-A6000-CUDA1] [cycles_x_scenes-1024x72] The most significant improvements are in interior scenes with many light bounces and shaders, where the new kernels can achieve higher occupancy and coherence. CPU rendering performance is approximately the same as before at this point, but the new architecture opens up new possibilities there as well. Secondly, we've been working to improve viewport rendering. Faster rendering kernels help, but we also found that improving the scheduling, timing, and display mechanisms can make the viewport feel more interactive. New viewport support for adaptive sampling and batching samples make it so the image cleans up faster once the first few samples are done. CPU viewport rendering CPU viewport rendering with Open Image Denoiser GPU viewport rendering Viewport adaptive sampling comparison Looking Forward In the coming months we will try more optimization ideas, and restore missing functionality. When functionality is missing, it's usually because we want to take a different approach in the new architecture. Some examples: * Volume rendering: we plan to implement ray-marching and light sampling with more modern algorithms * Shadow catchers: we'll try a different algorithm that can take into account indirect light * Multi-device rendering: we'll experiment with more fine-grained load balancing without tiles Beyond this, the new architecture should let us more easily fit in rendering algorithms like path guiding, which we will experiment with and research how they can be made GPU friendly. Deprecation As part of the new architecture, we are removing some functionality. Most notably: * OpenCL rendering kernels. The combination of the limited Cycles split kernel implementation, driver bugs, and stalled OpenCL standard has made maintenance too difficult. We can only make the kinds of bigger changes we are working on now by starting from a clean slate. We are working with AMD and Intel to get the new kernels working on their GPUs, possibly using different APIs. This will not necessarily be ready for the first release, the implementation needs to reach a higher quality bar than what is there now. Long term, supporting all major GPU hardware vendors remains an important goal. * Branched path tracing. We are working to improve sampling algorithms to make this obsolete, and more automatically assign samples where needed. Improved adaptive sampling and light importance sampling are key here. * NLM denoiser. AI denoising algorithms and in particular OpenImageDenoise generally yield better results, and we will optimize the architecture and workflow for them. These features will remain available and supported in 2.83 and 2.93 LTS releases. Blender 2021 Roadmap 25 comments 6,025 Views 1. [6c8709d1] + jianfeng zhou + April 23, 2021 Can you turn on Ray Tracing in opencl before the new api comes out to give amd 6000 series users a wave + Reply + [0ce251fe] o Pietro Figura o April 23, 2021 Yes! Please I would love to see something like this for AMD cards! o Reply 2. [c178f47f] + Jian Feng + April 23, 2021 Hope to turn on opencl's Ray Tracing in the last + Reply 3. [dad93537] + sisi + April 23, 2021 So the new architecture of cycles will be shipping with a 2.93 version? + Reply + [a949146c] o Sych o April 23, 2021 No. It is likely 3.+ version. They are in early stages now o Reply 4. [3bfc2b62] + Dabi + April 23, 2021 Wow, that performance increase is crazy, and super cool to see how using the Intel denoiser in the viewport will be viable now. Impressive stuff! + Reply 5. [21c3dcf1] + Luminati + April 23, 2021 Since, Cycles X project is to gear up for the future, maybe it would be good time to change to or incorporate spectral rendering as well? + Reply 6. [a5581907] + John Cox + April 23, 2021 Great news! For the multi GPU work, are you aware of Miros Jaros work presented at GTC this year? Jaros et al GPU Accelerated Path Tracing of Massive Scenes, ACM Transactions on Graphics 2021 + Reply + [a5581907] o John Cox o April 23, 2021 ^Milan Jaros o Reply 7. [4dec1128] + Justin + April 23, 2021 Will sharp caustics for glass and other reflective and refractive surfaces ever be implemented in the new cycles? + Reply + [a949146c] o Sych o April 23, 2021 They say that they will try to experiment with this (path guading etc) o Reply + [7ab4a70b] o grolicus o April 23, 2021 See also slide 22 about caustics in the technical presentation (linked to in the article above). o Reply + [a5cd3541] o Hugo Lopes Antunes o April 23, 2021 Yes, it was explained on the video, cycles will be finally be able to produce caustics o Reply 8. [59a93eaf] + Francis J. + April 23, 2021 So many awesome news ! Thx a lot Brecht and Sergey, Out of curiosity, do you plan to make Cycle spectral with the work done by Smilebags (and others), or is it to much work/out of scope as for now (or maybe the work already done is not usable as it...). https://devtalk.blender.org/t/ thoughts-on-making-cycles-into-a-spectral-renderer/2192 Thx a lot, Francis + Reply 9. [85ae7df7] + Narann + April 23, 2021 Hope Blender will not create a Nvidia only situation as the rest of the industry have to be, but you are right on the OpenCL stall. Good luck, keep the good work devs! + Reply 10. [c263ceac] + manuelalbertcom + April 23, 2021 There was an issue with objects far off from the scene origin causing artifacts. Stefan Werner adressed this with a patch (origin offset) based on a project by Matt Pharr (https:// pharr.org/matt/blog/2018/03/02/rendering-in-camera-space.html). Not understanding the first prototype graphic I am wondering if this will not be an issue anymore? + Reply 11. [6b4e21aa] + Ephraim + April 23, 2021 WOW! That is fast! I like it. + Reply 12. [b6aed59a] + Acky + April 23, 2021 Priorirising NVidia's walled garden in cuda/optix is worrying for software which prides itself on being open source. Its maybe time for amd and intel to consider re-routing their development fund contributions to dedicated staff employed by them + Reply 13. [df0563bf] + Jesper + April 23, 2021 Was hoping to see some mention of caustics / refraction support.... + Reply 14. [e2e45464] + Erel Herzog + April 23, 2021 Great job! Looking forward to playing around with it (: Happy to be a dev fund contributor! + Reply 15. [2e664fcf] + Steve + April 23, 2021 I hope they don't forget the new ARM Apple chips and do something for those too. Metal implementation please + Reply 16. [d4fad457] + Autumn + April 23, 2021 The prospect of this being Nvidia-only on release sure sucks Although admittedly I don't benefit from the current kernels on my AMD GPU anyway, so using the CPU for rendering won't be a change for me personally. It's more exciting to think there could be better kernels in Vulkan or something in the future thanks to this work. + Reply 17. [40a2ef48] + Andreas + April 23, 2021 Two questions: will this also have a positive effect on 1060 cards? When will a first version be available for a first look? + Reply 18. [5c15a721] + Jorge + April 23, 2021 Hello! There is already a build in experimental branches downloads. Quite impressive in my tests rendering a 30 million polygons bust with several 8k+ textures in viewport. Even making changes on the shader had a faster response and shorter updating times then before. Looking forward for those CPU optimizations. Congratulations to the Brecht and Sergey! + Reply 19. [cd3fd3eb] + Richard Culver + April 23, 2021 I was curious also about data handling improvements. Texture and mesh. In the past Cycles chokes where Arnold can render the same amount of data. I don't know if that is at the render engine level or within Blender itself. Can anyone comment on that? And what If anything Cycles X project will be doing to address this? + Reply 1. Leave a Reply Cancel reply Your email address will not be published. Required fields are marked * [ ] [ ] [ ] [ ] [ ] [ ] [ ] Comment [ ] Name * [ ] Email * [ ] Website [ ] [Post Comment] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [Submit Comment] [ ] share this story on * Facebook * Twitter * Reddit * LinkedIn Blender * Download * Features * Source * License * Logo & Trademark Organization * Foundation * Institute * Studio * Blender Network * Blender Conference Get Involved * Donate * Development * Documentation * Education * Certification Support * Community * Manual * Tutorials * Python API * Developers Forum blender.org * News * Jobs * Website * Contact * Open Data Follow Blender --------------------------------------------------------------------- Development News Artistic freedom starts with Blender The Free and Open Source 3D Creation Suite