Pointiness Output


Woooo! I have to say I’ve been waiting for this for years!

It’s basically the same as dirty vertex colors, but on the final geometry (after modifiers) and without all the hassle of adding it to every single mesh.

The commit from Sergey [227a9407]:

Cycles: implement pointiness geometry attribute

This attribute means how “pointy” the geometry surface is, which allows to do
effects like dirt maps and wear-off effects on render geometry. This means the
attribute is calculated for the final mesh which means no baking (which implies
UV unwrap) is needed. Apart from this the behavior is quite close to how vertex
dirty colors works.

The new attribute is available as an output socket of Geometry node.

There’s no penalty for the render time, only some delay on scene preparation
(the delay is linear of the mesh complexity).

Reviewers: brecht, juicyfruit

Differential Revision: https://developer.blender.org/D1086

Cycles Gets Sphere and Tube Mapping

Sergey Sharybin added sphere and tube mapping options to the image node yesterday:

[12ccac6] Cycles: Support sphere mapping for the image texture

[dda3554] Cycles: Support tube projection for images

This way Cycles finally becomes feature-full on image projections compared to Blender Internal and Gooseberry Project Team could finally finish the movie.

What is it?

Just the same mapping types we’ve had in BI for years ;)

Sphere mapping allows us, for example, to painlessly map a texture of the Earth onto a sphere without needing to do any UV mapping.

How do I use it?

Simply change the projection method on you image node from Flat to Sphere or Tube, and probably you’ll want to use generated coordinates.

Adaptive Samples is Coming!

Check it out! https://developer.blender.org/D808

A patch for adaptive stopping and sample distribution has been made off the massive metropolis sampling patch, so I’m guessing that sometime in the next few releases we’ll see it merged to master :)

What is all this you ask? To quote from the patch:

Adaptive stopping: For every tile, the remaining error is estimated after a certain number of samples … Once the error is below the threshold, the tile is stopped. In case the maximum amount of samples per tile is reached, the tile stops as well, even if the threshold is not reached yet. This does not affect the individual pixels in the tile, that’s what adaptive distribution is for.

Adaptive distribution: If this option is enabled, the samples inside every tile are also distributed accordingly to noise levels. Once the warmup interval is over, an importance map is generated and samples are drawn from it (this happens on the CPU even for GPU rendering). This helps mainly for big tiles (usually >32×32) with different levels of noise, for example, at the edge between scene and background.

In retrospect, the name for this blog was a pretty terrible idea.

Volumetrics are coming!

Brecht has begun adding all the Volumetrics work that all our great devs, Storm, Thomas, Stuart, Lukas and Brecht have been working on!

It’ll be a just little while before we have support for smoke simulation data, for now it’s just some basic absorption and soon some scattering and emission.

Commit from Brecht:

Cycles Volume Render: support for rendering of homogeneous volume with absorption.

This is the simplest possible volume rendering case, constant density inside
the volume and no scattering or emission. My plan is to tweak, verify and commit
more volume rendering effects one by one, doing it all at once makes it
difficult to verify correctness and track down bugs.

Documentation is here:

Currently this hooks into path tracing in 3 ways, which should get us pretty
far until we add more advanced light sampling. These 3 hooks are repeated in
the path tracing, branched path tracing and transparent shadow code:

  • Determine active volume shader at start of the path
  • Change active volume shader on transmission through a surface
  • Light attenuation over line segments between camera, surfaces and background


Color Ramp Improvements


Let’s be honest, these have been a long time coming – in fact the lack of some easy and precise controls for color ramps used to be one of  the things I hated the most, I use them quite a lot. In fact, it was even pretty high on my Todo list for Node Wrangler to add these features myself, though I couldn’t find a simple and usable way to do it.

But luckily, Krantz Geoffroy (kgeogeo) has come to the rescue, bringing a Position slider for precise control over the location of the active color stop. Other new additions include an input for the index of the active stop (in case you have trouble selecting the right one) and some welcome rearrangements of buttons (including the color ramps in BI textures and the rest of the UI)

I suppose the only thing left on my wishlist for Color Ramp features is some more interpolations, like squared and cubed  falloff, and the inverse of each.

Oh and in case you were wondering where I disappeared to for the last two weeks, I was on holiday in Scotland visiting (and meeting for the first time) my Blender Nerd partner Rex :) but more on that later.