Training new developers - some resources

I think the only way we are going to grow our developer base fast enough might be train existing users to be developers. While there have been threads on learning paths for C and python, understanding the fundamentals for rendering, rasterizing, simulation, etc. are all probably desirable.

So I’d like to collect learning resources that can take someone from just a basic C/python understanding and bring them to a level where they can make a useful contribution to various subsystems.

Rendering

This is a great intoductory tutorial to raytracing.
http://www.codermind.com/articles/Raytracer-in-C++-Introduction-What-is-ray-tracing.html

Same tutorial in pdf format
http://bendergame.googlecode.com/files/RayTracing%20tutorial.pdf

The next step might be understanding and adding features to a slightly more robust ray tracer perhaps the NORI educational ray tracer
http://www.cs.cornell.edu/Courses/cs6630/2012sp/nori/

Next might be the PBRT ray tracer/book
http://www.pbrt.org/downloads.php

Then finally cycles and opensl


http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles

For simulation this series on fluid simulation is excellent, and covers a great deal of knowledge relevant to other simulations
http://software.intel.com/en-us/articles/fluid-simulation-for-video-games-part-1/

Cloth simulation
http://cg.alexandra.dk/2009/06/02/mosegaards-cloth-simulation-coding-tutorial/

Here are integrators which are relevant to most simulation

http://gafferongames.com/game-physics/integration-basics/
http://www.gotoandplay.it/_articles/2005/08/advCharPhysics.php

If you have learned any of these topics and know of good knowledge sources, please do contribute suggestions.

This is great, I’ve been looking for a place where things like this were compiled together!

Just came across this today http://www.youtube.com/watch?v=5Ymoav0nNWQ Campbell made a video demonstrating how to get around the source and add a small fix/feature

For learning the math that is required for some of these see http://www.khanacademy.org/#browse

Moved from “General Forums > Latest News” to “Coding > Beginning Blender Code and Development”

Actually wasn’t aware of your initiative till a few minutes ago :slight_smile: I started this because I was being asked questions on gsoc and whether individuals had a suitable background to apply to work on certain areas and decided to google up a few resources that I felt would be of value.

Feel free to merge the information to your thread or a new thread. There is also cambos beginning developers thread.

These are definitely of value, and thanks for your willingness to merge.
This will hopefully help to keep this in one place and keeps all heads aimed in the same direction. :slight_smile:

Do you have a link?

There’s no need to merge these threads. While there’s overlap, they serve two separate purposes. Useful results from the Sourcerers contest can be posted here and the links that Tom has provided can be of use to competition entrants. Furthermore, beyond the competition, this thread serves as a good general purpose resource on its own.

There’s no reason that these threads cannot peacefully coexist.

Here are more raytracing stuff of interest for more advanced learners - both cover the state of the art for raytracing algorithms

http://www.cs.unc.edu/cms/publications/dissertations/lauterbach.pdf
http://garanzha.com/default.aspx

At the risk of derailing this thread…

There’s no need for re-organization. We have an entire forum devoted to beginning coding and development in Blender (this forum, in fact). That forum has a large variety of topics posted by different people with different purposes. This is a forum website and as such it’s devoted to discussion; often scattered and disjointed (though we do our best to keep discussions focused and on-topic). If you want something more organized than that, then perhaps a different format of website is what you’re looking for.

Now, let’s let this thread stick to its original intent and if you would like to further the discussion, please create a new thread or send me a PM.

@LetterRip
That Kirill Garanzha (Кирилл Гаранжа) papers very attractive, as i understand, he specialized on dynamic GPU memory usage, on demo he get 200M triangle model raytraced semi- interactively on 1.5 GB GPU. Of course whole scene must fit in main RAM, he have 16GB.

storm_st,

you can use multiresolution and predictive loading and a few other tricks to avoid needing the entire scene in main ram. Also most of our models are with mutliple levels of SDS which can be generated as needed. Also we make extensive usage of instancing.

I really like this master thesis as well, it covers territory not covered by the previous ones and is more recent

http://faculty.uoit.ca/qureshi/student-work/2011-12-16%20-%20Christopher%20Little%20-%20M.Sc.%20Thesis%20.pdf

FWeeb,

I think it would be worthwhile eventually to create a master thread or wiki page with good organization to send folks to.

@LetterRip
Unfortunately, cannot. The problem is Monte Carlo solver, that walk semi - uniform random paths in scene, so any caching scheme not efficient, you get cache miss with almost every ray. But that guy use some black magic tricks to solve that.

No disagreement. I think a page on the Blender wiki would be most suitable.

I agree on this

http://magnuswrenninge.com/content/pubs/ProductionVolumeRenderingFundamentals2011.pdf

http://magnuswrenninge.com/content/pubs/ProductionVolumeRenderingSystems2011.pdf

Those are both from siggraph course notes, here is a site with a link to many past siggraph course notes

http://bps11.idav.ucdavis.edu/

Probably there are lots of useful coursenotes that could be found and listed for the more recent siggraphs.

A math tutorial series that covers all sorts of different math topics useful for those programming for graphics http://www.essentialmath.com/tutorial.htm