There are a lot of modelers, animators, visualizer on the market. But most are limited by what is included in the official version. Make a difference by unleashing the true power of Blender: you can modify it. I code for Blender since 2015 and made Cycles 2x faster (see https://blenderartists.org/t/e-cycles-faster-cuda-rendering/1139717). What about 2x faster Cycles on top of Mantaflow or Fracture modifier branch? Here, I'll show you how to create new modifiers, streamline the UI, make Cycles faster, add a new AI denoiser, and other cool patches you wanted for month/years in Blender, all that on top of the latest 2.8 or the very stable 2.7 ! The course has an extended version with the tutorials on how to make Cycles about 2x faster and add the new AI denoiser from Intel called OIDN.
This course is also made for beginners and will help you:
- build your own Blender
- learn you how to make managing C/C++ patches from others nearly as easy as installing python add-ons
- becoming confident you can modify Blender and get powerful results with simple to understand code.
- learn to learn, to find where to look in the code depending on what you want to add and where to find solutions.
For the new year, you wanted to learn something new or to enable your children to be creative and enable them to forge their own tools. Or you just dreamed for a long time that feature xxx be finally included in Blender.
In my case, it's a bit of all those reason I started to code with Blender. With this course, I want to enable users to decide which features they need, learn them to benefit from the work made by the community and enable them to maybe become an active part of how Blender evolves.
Often, there are very good ideas and patches coming from the community, but they take time to be available in the official versions, don't reach the quality to get in master, some simply take dust until they are forgotten because of missing man power, some are even vetoed. You would like to decide by yourself which features are good for you and create your own mix, you may even have ideas, but don't know how to implement them. You want it all to stay compatible with the official version and learn how to manage it over time to benefit from the progresses made in master. You have little to no background in C/C++ coding or find the huge code base intimidating. You want to learn only what you need. This course is made for you.
We will start from the ground, learn the basics of creating a development environment, compiling the official version (2.7x and 2.8x), mixing features available in branches, up to adding a new modifier and speeding up cycles.
Is it for me?
The course is for Windows, Linux and MacOS. It is available in English and will be available in French and German soon. It is made for beginners with little to no background in C/C++ and/or people finding the Blender code base intimidating. If you want to get started with coding for Blender and implement some simple yet powerful additions, this course is for you.
What you will learn:
- How to create an easy to use developer environment on different platforms/OS.
- Get Blender's source code and it's libraries to compile a full version of Blender.
- learn to use Git and Svn to create your own branches, create your own commits, grab modifications made by others, etc...
- learn to use Arcanist to get and upload patches to/from Phabricator (patches from developer.blender.org)
- make your own mix by using patches from other developers and/or by importing modifications from other branches
- learn to simplify Cycles's use by simplifying it's UI and automatize some decisions.
- make Blender more parametric and non-destructive by learning how to add new modifiers.
- learn how to regularly update your code base with the latest advances made in master, with your own modifications on top.
Plus in the extended version:
- some easy examples of how to optimize cycles for all devices (10 to 20% faster on OpenCL, 1.5x to 2x faster on CUDA by modifying the code)
- Learn to add the new AI denoiser from Intel/Stefan Werner in the compositor.
What you will get:
- Hours of videos all in English (French and German coming)
- All the diffs for each modifications you will learn to make yourself in the course (for 2.7x and 2.8x)
- A recap of all the links (to the tools, code, patches, etc.) you need for the course, plus some extras
- A list of the most used commands for quick reference.
Plus in the extended version:
- The modified version of Blender with all the modifications of the course in binary form for Windows and Linux and in source form.
Summary of the course:
1) Introduction - The Blender source code organization explained:
a) Blender's code and it’s libraries
b) The Concurrent Version Systems used
c) The compiling tool chains on different OSs
2) How to create a development environment
a) Choose a text editor
b) Install and configure all needed tools
3) Your first personalized flavour of Blender: the power of the community
a) Build an official version of Blender.
b) Explore branches, learn how to use them.
c) Create your own branch, pick features from others, make your own mix without writing code yourself.
d) Use Arcanist and Phabricator to add patches from developer.blender.org
e) Learn to fix common errors.
4) Write your own modifications:
a) Add a modifier to fasten your workflow
b) Customize Cycles's UI
c) Keep up to date, benefit from the best of both worlds
d) Optimize Cycles for GPUs and add auto tile size to save you time as a user (extended version)
e) Upload your changes
5) Learn to learn - How to get started in a new area of the code:
a) Find what to modify
b) Adapting to new part of code base
c) Playing with code
- add a remove double modifier
- updated dithered sobol patch (extended version)
- updated simple OpenVDB Remesher patch
- add the new OpenImageDenoise Intel Denoiser as a node and how to add new libraries with cmake (extended version)
- Further readings to go to the next step
FAQ:Q: Which version of Blender is in the course?
A: Both 2.79 and 2.8, you can decide what you code on.
Q: I use the distribution XXX of Linux, will it work for me?A: Libraries version are tested on Ubuntu. It’s highly recommended to learn on Ubuntu/Linux Mint. You can then do portable builds that you can run on your beloved distribution.
Q: Will I be a professional C, C++, CUDA, OpenCL, and Python programmer and know everything about Blender at the end?
A: No, this course is made mainly for artists who want to be able to forge their own tool to have a better workflow. You will learn enough to add simple modifiers by yourself, tweak Cycles further to have optimal performance on your GPU and benefit from many patches/branch available in the future. Each programming language and each part of Blender could be a course for itself. The goal of this course is to make managing C/C++ patches nearly as easy as installing python addons, learn you to find where to look in the code depending on what you want to add and where to find solutions, help you understand code, show yourself you can modify Blender to get you started with coding using some simple yet powerful examples.
Q: How stable are the builds?
A: As stable as the buildbots. The new Cycles features and speed-ups are well tested in real use cases since half a year. It was tested on a 1080Ti and a Vega 64 with drivers from this summer. If you experience problems, which don’t happen on Buildbot, you can report it here, I’ll try to fix them and make it part of the course.
*the builds are offered as is, without any warranty. Blender 2.8x is still very unstable, use it at your own risk. Only available in the extended version.