From BlenderWiki

Jump to: navigation, search

Blender 2.65: Cycles

Open Shading Language

Users can now create their own nodes using the Open Shading Language (OSL). Note that these nodes will only work for CPU rendering, there is no support for running OSL code on the GPU. To enable it, select Open Shading Language as shading system in the render settings.

Each OSL shader corresponds to a node in a node setup, and so integrates well with existing nodes. For more details on how to write such shaders, see:

Here is a simple example shader, using a diffuse BSDF and noise texture (download .blend file).

shader simple_material(
    color Diffuse_Color = color(0.6, 0.8, 0.6),
    float Noise_Factor = 0.5,
    output closure color BSDF = holdout())
{
   color material_color = Diffuse_Color * mix(1.0, noise(P * 10.0), Noise_Factor);
   BSDF = material_color * diffuse(N);
}
Parquet example shader written in OSL, with model by Rakshasa from blendswap. (download .blend file)

Motion Blur

Cycles now supports motion blur rendering for camera and object motion. Previously it was only possible as a post processing effect in compositing, where it is not possible to get fully accurate results and required manual setup of rendering layers. Native motion blur handles transparency, many overlapping objects, and moving light sources. Motion blur from deforming objects is not supported yet. (r51233) (r51363)

A shutter setting controls the time between frames over which motion blur is computed. Shutter time 1.0 blurs over the length of one frame, 2.0 over the length of two frames, from the previous to the next, lower values give less blur.

User Manual

Motion blur example (download .blend file)

Shading

  • Per-BSDF normal input and new Bump node. Each BSDF node now has a Normal input, which can be used to set a custom normal for the BSDF, for example if you want to have only bump on one of the layers in a multilayer material. The Bump node can be used to generate a normal from a scalar value, the same as what happens when you connect a scalar value to the displacement output. (r51267)
  • Normal Map node added. The normal maps used are compatible with those baked by Blender Internal. (r51950)
Anisotropic shading with 0° rotation, 90° rotation and textured rotation of the tangent direction (download .blend file)
  • From Dupli option for texture nodes. This gets the Generated and UV coordinates from the duplicator of instance instead of the object itself. This was used in e.g. Big Buck Bunny for texturing instanced feathers with a UV map on the bird. (r51059)
  • Ambient Occlusion node added, controlling the amount of AO a surface receives, rather than having just a global factor in the world. (r51950)

Fisheye Lens

Fisheye render was supported since the 2.64 release. But we now have important improvements to facilitate its use.

  • Fulldome displays can now directly benefit from a fixed Fisheye Equidistant lens. To render a perfect fulldome fisheye set field of view to 180° (r52032).
Equidistant fisheye 180°, used for fulldomes. Image by Adriano Oliveira
  • Sensor size is calculated automatically to match the aspect ratio of the render size. (r52498)
  • The viewport preview allows you to correctly see the final image (r52080)
Equisolid fisheye, 3d viewport preview. Image by Pataz Studio

User Interaction

  • Added back a Progressive Refine method for F12 render. Instead of rendering each tile until it is finished, it refines the whole image progressively. This renders somewhat slower, but time can be saved by manually stopping the render when the noise is low enough. (r51299)
  • Border rendering is now also possible outside of the camera view in the 3D viewport. The new shortcut key to set the border is Ctrl + B and to clear the border it is Ctrl + Alt + B. The previous shortcut key ⇧ Shift + B still works in camera view, however is already used for zoom to border outside of it. (r51365)
  • The number of tiles was replaced with tile size, which gives better control over GPU performance. For CPU rendering a tile size like 32x32 or 64x64 should be fine for practically any scene. For GPU rendering bigger tile sizes should be used for optimal performance. The ideal value can be found out by testing, but 256x256 or 512x512 are good starting values. (r51887)
  • Added memory usage report, which shows device memory used by Cycles. (r51886)

Optimizations

  • Don't compile shaders and load images that are not used by any mesh/lamp/world. (r51761)
  • Persistent Images option to keep images loaded on the device, saved time initializing next rendering. (r52030)

CUDA

For Mac OS X users that build the kernel at runtime, CUDA toolkit version 4.2 should be used for correct operation and optimal performance, other versions are not supported.

Any new version of the CUDA driver should work, however you may need to reinstall it after installing the CUDA toolkit.