Work faster - Create your own Blender - sales coming on 4th of April


(Eric Klein) #121


Thanks for the update. I will start now going through course.

(mathieu) #122

The all-in-one pack has been updated right now with all the latest changes.

(mathieu) #123

The course has been updated with a bonus part to give quick basics about programming to make it easier to read and write code :slight_smile: It’s already available for all students.
You will learn the basics about:

  • variables
  • pointers
  • structures
  • functions
  • iterators

(iwkse) #124

IMHO it would be interesting to introduce some specific (or usual) computer graphics programming patterns in the course as well :slight_smile:
What do you think?

(Frank) #125

Awesome, thankyou. :slight_smile:

(mathieu) #126

Your welcome. The links and commands text file has been updated to correct an URL and I added some alternatives to the git command line for those wanting to use a UI. Some good links to help regarding coding have also been added :slight_smile:

(mathieu) #127

Thanks for the suggestion, here are some reason why I wouldn’t include that in the course:

  • it’s intended for artist who have little to no experience in programming or have experience, but want to start to discover Blender’s code base.
  • the course is very practical. It brings you pretty fast to powerful results you can extend easily. With the course on the modifier, you can pretty easily add tens of modifiers that can be very useful in your workflow in very little time. Adding some design pattern will make it much more theoretical, will encourage student to reinvent the wheel instead of using and combining the existing building bricks.
  • Design patterns may be helpful when writing from scratch, but when extending a program like Blender, which already has a lot of the best libraries like boost, Opensubdiv, OSL, OpenVDB, etc… has very good libraries itself to work with vectors, rays, mesh, BVH, etc. has a lot of advanced functions to intersect, project, cut, mesh, etc. at the end, you can do everything you think about by reusing those functions. It’s not only faster for you to code, it’s safer as those are well tested over years, it’s well written so pretty optimized and it’s required if you want to have your code accepted as the Blender Foundation doesn’t want to have 10 functions spread over the code that do the exact same thing. Their is already a big effort to remove duplicates in Blender, to make the code easier to maintain. So new code should reuse existing one from the start. Believe me, after so many years development, you would have to be a very good researcher to find a better or new building brick in Blender.
  • For advanced new features like Dithered Sobol or the anisotropy for SSS, you would need years of math, physics and programming experience. The official programmer propose patches and this course show you how to use them. As an artists, you have other strength programmer don’t have (you know what you need better than anyone else, programmer must satisfy very different needs which inevitably leads to a lot of compromise, you can write code that works in your case, programmers must write code that works in many crazy cases, etc.). This course is about using your strength and the strength of professional programmers together. If an artists want to know how to code a path tracer, which I doubt, I give links to good books and source of information to go deeper.

If there is a lot of demand for more advanced programming skills from the artists community (which I doubt), I may propose a course for that. I think it’s good if their is some overlap in skills between programmers and artists, it’s what this course gives, but I think an artists will work better if he focuses on art. Forging a personalized version of your tool will give you a clear advantage compared to the many other artists available on the market, but if you want to stay productive, let the pro do the advanced programming :slight_smile:

Cycles 2x faster and a curve to terrain modifier are already cool :slight_smile:

(mathieu) #128

Coming soon… The remove double modifier. Perfect for fixing meshes :slight_smile:

(iwkse) #129

My idea was not of course to master 3D graphics programming, nor reinventing wheels which is something that doesn’t happen (at least should not) too often in open source development. To learn how things work though, it’s not necessary to reinvent the wheel just as about you learn math theorems instead of creating your own ones daily.
It’s clear now this course is exclusively for artists and not programmers, I didn’t understand that at the beginning before you were launching it. I guess you said it’s for programmers that does not have experience with Blender source base.

(mathieu) #130

Yes, of course. People already working with Blender’s source code already know how it works… But it’s a good sign you seem to find it too easy to make Cycles 2x faster and create a curve to terrain modifier and port all patches to 2.8 and mix features from different branches. It shows many people who think they can’t can join and have fun :slight_smile:

If you already knew how to do all this, I can refund you and I ask myself why you didn’t did it before. If it’s because I manage to get powerful result with little code and explain things simply… I had a physic teacher who gave us a 2 day theory demonstration on many pages. That demonstration was wrong and I could write a correct one in 3 lines. If you want to pay people per line, that teacher would (and is sadly) paid a lot. If you want to learn something true, the 3 lines may makes ask you why you came at university, but I find it better.

I really spend a lot of time to reduce the lines of codes to a minimum so that anybody can step up. I’m happy if I reached that goal.

(iwkse) #131

I guess you’re misunderstanding what I just say. I didn’t say it’s easy what you’re proposing, I guess I never wrote that, I’m just saying this course is shallow and does not explain how you reach such results. So a course for artists who can be happy of the results and less for programmers who want to dig more into it for a learning purpose.
I hope it’s clearer now.

(ajarosz) #132

Blender and overall 3d imaging are too complicated itself, to be a subject as a whole for that kind of course. You can study 3d graphics coding for months or years, same with Blender code. You can’t expect to have all of this explained in one course.

(iwkse) #133

I am aware of this and that’s not what I am expecting. This doesn’t mean it’s impossible to create stuff to help developers to get nearer to Blender.

(ajarosz) #134

Of course it is possible but it would be muuuuuch longer course and I excpect it to be much more expensive.

(Eric Klein) #135

I agree completed with ajarosz 3d graphics would be out scope of this course and just to big of subject to add. This course is excellent already covering a lot important subjects on building your on Blender e.g. building blender, tools, branches, adding and submitting patches, diff files, 2x Cycles performance and more.

(iwkse) #136

This course is helpful, just it’s not intended to be for developers.

(Eric Klein) #137

As a windows developer that works in 3d graphics. I found this course very beneficial. An expert developer like bliblubli go step by step and cover many areas of Blender development like building, tools, patches, diff files, modifiers, cycles performance, .etc. I have search for this information only found bits and pieces. To have all of this in one place is great and huge timesaver for me.

I definite recommend this course to developers that want to start working with Blender.

(iwkse) #138

Your opinion, which also differ from his :slight_smile:
Stuff about building, Git, patches, it’s something that might be unknown to you but it’s common practice in open source.

(Eric Klein) #139

Some tools I agree are standard to open source. How it applies to Blender is new and their are specific problems encounter in Blender like fracture branch. Their is also sections with modifying and working with different Blender modifiers. Another subject of real interest to me was modifying cycles to improve 2x performance.

I also can vouch by the support that I have receive from bliblubli. I had a couple issue that came up and he was very quick with response and help.

(mathieu) #140

Of course I start with the basics.

  • As an artists I think you are happy to start from the beginning.
  • Some coders know SVN, but have yet to learn Git. Part 3 can also be good for coders, because they don’t all know where to find the patches and commits that bring the most. The ocean of information makes it really hard to find one precise commit when you just came in. It’s like arriving in a new huge town. Even if you live yourself in another big town, you may be happy to find someone who lives here since some years and can give you some orientation and some good addresses between the thousands of restaurants you have.
  • applying recent patches is easy, but 2 years old one on brand new 2.8 when the python API barely has a guide to port and the C code has no documentation at all on what changed in 2.8… I guess a skilled programmers would find his way, but would also be happy to find someone who followed it and knows how to port it.

I would be happy to teach more, but programmers wanting to code path tracers already have good offer with and the likes. I think the number of artists willing to learn how to code a path tracer or the number of programmers willing to learn design patterns is very small.

But artists willing to:

  • get the most out of their GPU
  • be free to decide which patch goes in
  • get a very streamlined workflow
  • get a clear UI with all the settings they need often easily accessible
  • use more modifiers to allow quick editing when the client change his mind
    I think can be happy with this course. I’m happy to see some are and that you also found it usefull :slight_smile: