[Soc-2013-dev] Weekly report #1 Cycles nodes

Thomas Dinges blender at dingto.org
Fri Jun 21 13:02:26 CEST 2013


Hi,
resending this, to use proper topic name and also copy report in here:
(Copy of 
http://wiki.blender.org/index.php/User:DingTo/GSoC_2013/Weekly_Reports/Week1)

= Week 1 =

== Pre work ==
I started early with my GSoC, therefore I already finished some tasks 
before.
* Blackbody to RGB converter, to convert temperatures to a color. This 
node is inside my branch. I still have to figure out a problem with 
temperatures between 800 and 804 Kelvin, the lookup table does crazy 
stuff there. Example render: http://www.pasteall.org/pic/show.php?id=53582

* Toon Shader: The toon closure is finished and already in Trunk, it 
will be part of the Blender 2.68 release. Example render: 
http://www.pasteall.org/pic/show.php?id=51970

* Additionally, I added a Wavelength to RGB converter (in trunk as 
well), which can be uses to create interesting effects or simply to find 
the right color, by using a real world unit. Here a nice render by 
mfoxdogg: http://www.pasteall.org/pic/show.php?id=53746

== What I did this week ==
* I started working on the Vector Transform node, to convert vectors and 
points between Object/World and Camera space. I added the UI and DNA/RNA 
code for it, the Cycles integration still needs to be done.

As I am mostly done with my Nodes, I spend some time on other Cycles tasks:
* Non-Progressive integrator has been enabled on GPU inside my branch. 
How this works out remains to be seen, it's probably not a good idea to 
bring this into trunk anytime soon, as it makes the GPU kernel about 2x 
as huge. Nevertheless, the Non-Progressive integrator has its strengths 
and if that works good on GPU (in my tests on a Geforce 540M it did), we 
should check on how we can get this feature into trunk. One idea would 
be to compile 2x kernels per architecture, Progressive and 
Non-Progressive integrator. We could split kernel_path.h into 
kernel_path_progressive.h and kernel_path_non_progressive.h and compile 
2 entry points for the GPU.

* GPUs could only handle 95 textures and 5 HDR (float) image textures. 
This is a limitation of older Fermi cards, we have only 128 textures 
available there. For new Kepler cards though (sm_30 and sm_35), the new 
limit is 256 textures, so I increased the limit a bit for these 
architectures. We can now use 145 byte images and 5 float images (so 150 
in total). This could be increased to about 200 if needed. It would be 
interesting to know if the change works on Kepler GPUs, I don't have 
such a card to test.

== Next week ==
As I started earlier, I already have some things done, so I am good in 
time. I'd like to focus on exam preparation next week and maybe the week 
after. This has been discussed with my mentor Stuart. Nevertheless, I am 
confident to find some time to add some things during this time too, 
let's see.

== Questions ==
No specifics at the moment, I started looking into BVH code and shader 
code for the "per object motion blur" and "ray depth" feature, but still 
have to read more code in order to understand the architecture well.

-- 
Thomas Dinges
Blender Developer, Artist and Musician

www.dingto.org



More information about the Soc-2013-dev mailing list