From BlenderWiki

Jump to: navigation, search

Blender 2.78: More Features


Work to improve multithreading performance has continued, to scale better to many core CPUs.

  • The maximum number of threads has been raised to 1024. (12cdc67)
  • Dynamic paint has been sped up, about 20% faster for the drip effect and 33% faster for the initial precomputation when baking. (93b3f1c8)
  • Sequencer histogram generation is now about 12% faster, making interactive playback faster. (93b3f1c8)
  • Texture painting performance is now more optimized for multithreading. Big brushes, long strokes, high resolution images and 2D painting are much faster. (6f83710, 8cc4f3f, ef0c02c, bd30960, 88b7292)

Internally we are incrementally moving away from using OpenMP towards a single scheduler for all multithreaded tasks. This keeps the number of threads under control, where previously a too large number of threads was giving suboptimal performance.

Memory Usage

  • Global undo memory optimization. On Linux approximately 20% memory savings have been measured, the exact savings depend on the tools and operating system used. (a02915c0)
  • Edit mode undo memory has been optimized leading to 5x-15x memory reductions, the exact savings depending on the tools used. (91bfdacd)
  • Dynamic topology sculpting memory has been reduced by about 20-25%. (0a026033)

Painting Tools

  • Weight painting blur brush has been improved:
    • Now smooths weights based on connected vertices. (220a7a4f)
    • Add "Accumulate" support, to keep blurring based on the previous result. (84d8b35d)
  • Vertex painting and weight painting now support view selected on last stroke (. key). (7a633d7c)
  • Hair editing now has a tool to make all selected hairs uniform length. (ab500eb)

Text Objects

Text Vertical Alignment

The text objects can be vertically aligned based on Top Base-Line (old mode), Top, Center and Bottom. Texts within a Text Box will only change if the box is not yet full (cb5a7725).

2D Stabilization

The video stabilizer has been reworked to improve handling of more complicated movement and especially real-world footage with laterally travelling or panning camera (b1677201, 793900d4, baaa2d6d, 9c3b9f6a). In such a situation, the stabilizer tends to push the image out of the visible area in an attempt to hold a fixed position. To deal with that problem, there is now a full set of controls for a "canvas camera" where you can set and animate the expected camera movement, rotation and zoom to follow a dynamic shot.

Stabilizing a panning shot
UI of the 2D Stabilization

Internally, the stabilizer now calculates a weighted average of all contributions instead of just using the median point. In practice this means adding more tracks now actually has a tangible effect; using more tracks might help to cancel out inaccuracies or spurious, perspective induced movements.

Previously, the stabilizer was limited to using a single rotation track. Based on this new calculation, we now support an arbitrary number of rotation tracking points in addition to the location tracking points. The contributions of these rotation tracks will be averaged and used to figure out the tilting movements of the original footage.

Compensating and re-doing a hand-held zoom

And, as a new feature, these rotation tracks can also be used to detect a dynamic change in image scale, which allows to keep the tracked elements at constant size. Especially this allows to compensate for a jerky, hand-made zoom: By animating the above mentioned "Expected Zoom" setting, you'll be able to re-do the zoom in a smooth and slick way.

irregular Tracks

Another benefit of the reworked calculation scheme is that the stabilizer now handles all kinds irregular track setups better. This allows to deal with situations where a feature used as tracking anchor is obscured or moves out of sight altogether and thus has to be replaced by another feature, as is typically the case with extended sidewise travelling shots.

While the feature set of the old and the new version of the 2D stabilizer are equivalent, the actual calculations are done in a different way and thus slightly changed behaviour can be expected. If you migrate an existing `*.blend` file, you might need to change the setup of the tracks in some cases to get good results with the new version.