6 years agoTests: Disable failing import/export tests for until they're fixed
Sergey Sharybin [Tue, 10 Feb 2015 14:29:18 +0000 (19:29 +0500)]
Tests: Disable failing import/export tests for until they're fixed

6 years agoCycles: Bring back distance check in re-intersection
Sergey Sharybin [Tue, 10 Feb 2015 14:07:55 +0000 (19:07 +0500)]
Cycles: Bring back distance check in re-intersection

From more investigation of the numeric failures in the kernel it appears
the check was rather correct. But in theory it;s also needed for the motion

6 years agoCycles: Correction to glossy shaders not handling total internal reflection
Sergey Sharybin [Tue, 10 Feb 2015 13:20:36 +0000 (18:20 +0500)]
Cycles: Correction to glossy shaders not handling total internal reflection

The issue was caused by lack of check for whether fresnel term is actually
giving total internal reflection in refraction BSDFs. This lead to usage of
arbitrary vector of (0, 0, 0) as reflection, giving numeric issues in other
areas of the kernel.

This gives some visual changes of sharp reflection but it seems to be rather
proper now. Which also corresponds with rough glossy reflection with sharpness
set to 0.001 (previously it was totally different from sharpness of 0.0, which
is just weird).

6 years agoFix T43596: Refraction BSDF crashes blender on pre-sse4 CPU
Sergey Sharybin [Tue, 10 Feb 2015 12:31:55 +0000 (17:31 +0500)]
Fix T43596: Refraction BSDF crashes blender on pre-sse4 CPU

This is the same issue T43475: SSE4 code is more robust to non-finite values
in the ray origin/direction. So for now added a check before doing BVH traversal
for pre-SSE4 CPUs.

For sure actual root of the issue is a bit different and much more tricky to
solve, especially without disturbing render results too much. Still looking
into this.

In any case, it's kinda fine to have such a check, we might later make it to be
a kernel_assert() instead of just a return.

6 years agoFix grease-pencil crash without clip/track data
Campbell Barton [Tue, 10 Feb 2015 12:34:16 +0000 (23:34 +1100)]
Fix grease-pencil crash without clip/track data

6 years agoUI: scale timeline cache-height by DPI/pixelsize
Campbell Barton [Tue, 10 Feb 2015 11:33:52 +0000 (22:33 +1100)]
UI: scale timeline cache-height by DPI/pixelsize

D602 by @blakenator with edits

6 years agocorrect last commit
Campbell Barton [Tue, 10 Feb 2015 11:03:10 +0000 (22:03 +1100)]
correct last commit

6 years agoFix: Grease Pencil datablocks can be copied using the ID.copy() API method now
Joshua Leung [Tue, 10 Feb 2015 10:30:30 +0000 (23:30 +1300)]
Fix: Grease Pencil datablocks can be copied using the ID.copy() API method now

6 years agoSynchronize changes from buildbot server
Sergey Sharybin [Tue, 10 Feb 2015 08:47:28 +0000 (13:47 +0500)]
Synchronize changes from buildbot server

6 years agoFix T43611: Collision shape of rigid bodies changes inadvertently
Sergey Sharybin [Tue, 10 Feb 2015 07:49:34 +0000 (12:49 +0500)]
Fix T43611: Collision shape of rigid bodies changes inadvertently

The issue was caused by the fix for T34108, which modified DNA in order to
get a fallback box collision shape. Not sue why it's needed, we can just get
box shape directly, without modifying user's settings.

6 years agoNodes: Various UI cleanups for Image and Environment Texture Nodes
julianeisel [Mon, 9 Feb 2015 22:11:30 +0000 (23:11 +0100)]
Nodes: Various UI cleanups for Image and Environment Texture Nodes

Mainly consistency changes and smaller fixes.

* Environment Texture Nodes:
** show image info
** split layout for menus (showing menu title on the left)
** hierarchical button order

* Image Nodes:
** disable Alpha Mode menu if Use Alpha is disabled
** Don't show "+" icon/button if an image is already loaded
** Consistent alignment of menu buttons (see Input Color Space menu)

Requested and approved by @venomgfx

6 years agoNodes: (Un)pack, filepath, refresh buttons for Environment Texture nodes
julianeisel [Mon, 9 Feb 2015 21:25:12 +0000 (22:25 +0100)]
Nodes: (Un)pack, filepath, refresh buttons for Environment Texture nodes

The same buttons are already used for other image textures and since the
environment tex node does only allow images as well, it makes sense to
have this here too.

Approved by @lukastoenne and @venomgfx,
requested by @venomgfx

6 years agoCMake cleanup: Move OSL detection code into FindOpenShadingLanguage.cmake
Sergey Sharybin [Mon, 9 Feb 2015 21:39:00 +0000 (02:39 +0500)]
CMake cleanup: Move OSL detection code into FindOpenShadingLanguage.cmake

Should be no functional changes.

6 years agoFix file size not drawn using Link/Append
julianeisel [Mon, 9 Feb 2015 21:06:07 +0000 (22:06 +0100)]
Fix file size not drawn using Link/Append

For linking/appending, .blends get the type S_IFDIR added which prevents
the size from being drawn. BLI_is_dir gets the type from the OS so it's
better suited for this case.

Reported by @sergey.

6 years agoBGE - Vehicle Controller - add background and API checks for arguments of function...
Ines Almeida [Mon, 9 Feb 2015 14:45:29 +0000 (14:45 +0000)]
BGE - Vehicle Controller - add background and API checks for arguments of function calls

Fixes T41570 crash
For readability, attachDir was renamed to downDir and the Python API docs renamed accordingly

6 years agoRecreating bge python modules instead of using existing
Ines Almeida [Mon, 9 Feb 2015 20:56:38 +0000 (20:56 +0000)]
Recreating bge python modules instead of using existing

All of the initXPythonBinding functions are changed to always creating the module instead of importing if previously existing.
I can instead only remove the module return when the import is ok, so that it always inits. But then, I don't see the point in importing.

I make sure that these functions are called only once per run, inside initBGE.
This was not the case with GameTypes. I moved initPyTypes inside of initGameTypesPythonBinding due to that.

I reorganized initGamePlayerPythonScripting and initGamePythonScripting so that they run things in the same order.
initGamePlayerPythonScripting imports mathutils and aud, the other only aud. Shouldn't it be the same for both?

Reviewers: campbellbarton

Subscribers: sybren

Projects: #game_engine, #game_python

Differential Revision:

6 years agoFix T43424: undo changes the active scene
Campbell Barton [Mon, 9 Feb 2015 18:45:57 +0000 (05:45 +1100)]
Fix T43424: undo changes the active scene

Using different scenes with 2+ windows broke entirely using undo.
Now keep track of the current windows scene in each undo-file,
and ensure the undo-scene is on a visible window when undo is executed,
switching the scene only when its not in a visible window.

6 years agomore direct fix for last commit
Campbell Barton [Mon, 9 Feb 2015 16:00:37 +0000 (03:00 +1100)]
more direct fix for last commit

6 years agoFix T43498: New curves fails /w radius & rotation
Campbell Barton [Mon, 9 Feb 2015 15:38:21 +0000 (02:38 +1100)]
Fix T43498: New curves fails /w radius & rotation

Scaling matrix assumed no rotation,
also remove unused apply_diameter arg.

6 years agoFix outliner crash renaming library /w filter
Campbell Barton [Mon, 9 Feb 2015 15:03:55 +0000 (02:03 +1100)]
Fix outliner crash renaming library /w filter

D1045 by @a.romanov

6 years agoCycles: Another attempt to solve 32bit CUDA kernel
Sergey Sharybin [Mon, 9 Feb 2015 11:11:58 +0000 (16:11 +0500)]
Cycles: Another attempt to solve 32bit CUDA kernel

Previous fix didn't quite work well. For some reason everything worked fine when
using native nvcc in 32bit environment, but cross-compiling from 64bit platform
it was still running out of memory.

For now just made it so all the kernels are slower on 32bit CUDA as a temporary
solution. Either it'll be solved in next CUDA releases (by dropped 32bit? =\) or
we'll find better workaround.

6 years agoFix ImBuf leaked by Image from View operator
Nicholas Bishop [Mon, 9 Feb 2015 11:02:59 +0000 (12:02 +0100)]
Fix ImBuf leaked by Image from View operator

Running this operator and and closing Blender gives this:
Error: Not freed memory blocks: 2
ImBuf_struct len: 2480 0x69ba4f8
imb_addrectImBuf len: 1048576 0x6ccc2d8

Fixed with added call to IMB_freeImBuf in BKE_image_add_from_imbuf.
Could be fixed in the operator instead, but I think the BKE function
is the correct place since the comment says it should take ownership
of the ImBuf.

Reviewers: sergey

Reviewed By: sergey

Differential Revision:

6 years agoCode cleanup: remove unused function BKE_image_assign_ibuf
Nicholas Bishop [Mon, 9 Feb 2015 10:25:34 +0000 (11:25 +0100)]
Code cleanup: remove unused function BKE_image_assign_ibuf

Reviewers: sergey

Reviewed By: sergey

Differential Revision:

6 years agoSpaceFile: rework filelist_find, was looping way too much.
Bastien Montagne [Mon, 9 Feb 2015 09:10:20 +0000 (10:10 +0100)]
SpaceFile: rework filelist_find, was looping way too much.

6 years agoGPencil: Show color swatches for GPencil layers in Outliner
Joshua Leung [Sun, 8 Feb 2015 23:39:03 +0000 (12:39 +1300)]
GPencil: Show color swatches for GPencil layers in Outliner

Instead of showing a meaningless "dot" icon or having to come up with an arbitrary
icon, the Outliner now shows the stroke/fill color swatches for each layer to
match every other place where these are shown.

NOTE: Like many other widgets in the outliner though, these are not editable.

6 years agoGPencil: Viewport visbility and editability toggles for layers in Outliner
Joshua Leung [Sun, 8 Feb 2015 23:34:17 +0000 (12:34 +1300)]
GPencil: Viewport visbility and editability toggles for layers in Outliner

* Viewport visibility and locking are currently exposed
* Later on, visibility in renders can also be included

6 years agoFix T43554: Zoom to mousepos makes 2D Views pan after zoom limits are
julianeisel [Sun, 8 Feb 2015 21:33:58 +0000 (22:33 +0100)]
Fix T43554: Zoom to mousepos makes 2D Views pan after zoom limits are

There are a couple of things that I don't like here, but it seems like
the best way to handle this for now.

6 years agondof: detect new 3Dx devices on Linux
Mike Erwin [Sun, 8 Feb 2015 20:01:18 +0000 (15:01 -0500)]
ndof: detect new 3Dx devices on Linux

Was filtering for Logitech's USB vendor ID. 3Dconnexion now uses their
own vendor ID for new products. Mac & Windows don't look for specific
vendors so they should be fine.

Also added a note to eventually make USE_FINISH_GLITCH_WORKAROUND
available on all platforms.

6 years agoGHOST: fewer virtual functions
Mike Erwin [Sun, 8 Feb 2015 19:18:53 +0000 (14:18 -0500)]
GHOST: fewer virtual functions

Reined back over-use of virtual functions in GHOST, especially in
"leaves" of the inheritance hierarchy. This eliminates vtables for many
classes and (in some places) turns virtual function dispatch into direct
function calls.

I'll be around to fix things if other coders think this change is too

Still lots of virtual in GHOST_TaskbarWin32 since it just loves virtual.

6 years agominor Windows include tweak
Mike Erwin [Sun, 8 Feb 2015 17:41:45 +0000 (12:41 -0500)]
minor Windows include tweak

Needed a minor change to test committing from a new development system.

6 years agoSome minor fixes from latest coverity scan, nothing crucial here.
Bastien Montagne [Sun, 8 Feb 2015 15:26:45 +0000 (16:26 +0100)]
Some minor fixes from latest coverity scan, nothing crucial here.

6 years agoBGE physics: When colliding, report first contact point to Python
Sybren A. Stüvel [Thu, 5 Feb 2015 08:39:53 +0000 (09:39 +0100)]
BGE physics: When colliding, report first contact point to Python

This patch adds two parameters to the functions in the
collisionCallbacks list. The callback function should thus be like

def on_colliding(other, point, normal):
    print("Colliding with %s at %s with normal %s" % (other, point, normal))


The `point` parameter will contain the collision point in world
coordinates on the current object, and the `normal` contains the
surface normal at the collision point.

The callback functions are checked for the number of arguments
`co_argcount`. The new `point` and `normal` arguments are only passed
when `co_argcount > 1` or when `co_argcount` cannot be determined.

Reviewers: brita_, campbellbarton

Subscribers: sergey, sybren, agoose77

Projects: #game_physics

Differential Revision:

6 years agoInitial vertex slide UV-correct support
Campbell Barton [Sun, 11 Jan 2015 15:18:20 +0000 (02:18 +1100)]
Initial vertex slide UV-correct support

Still need to adjust for contiguous UV's

6 years agoBoxPack: avoid using static vars (make threadsafe)
Campbell Barton [Sun, 8 Feb 2015 06:07:47 +0000 (17:07 +1100)]
BoxPack: avoid using static vars (make threadsafe)

6 years agoFix for mask modifier invert UI missing
Campbell Barton [Sun, 8 Feb 2015 05:25:07 +0000 (16:25 +1100)]
Fix for mask modifier invert UI missing

D1066 by @gregzaal

6 years agoCMake: only quiet warnings for generated rna files
Campbell Barton [Sun, 8 Feb 2015 03:33:06 +0000 (14:33 +1100)]
CMake: only quiet warnings for generated rna files

also minor warning cleanup

6 years agoRNA: use FUNC_USE_MAIN to avoid 'G' global
Campbell Barton [Sat, 7 Feb 2015 15:20:55 +0000 (02:20 +1100)]
RNA: use FUNC_USE_MAIN to avoid 'G' global

6 years agoRNA: packing functions for vfont & sound
Campbell Barton [Sat, 7 Feb 2015 11:31:00 +0000 (22:31 +1100)]
RNA: packing functions for vfont & sound

D389 by @kevindietrich

6 years agoGPencil: Initial support for GP Layers in Outliner
Joshua Leung [Fri, 6 Feb 2015 23:50:22 +0000 (12:50 +1300)]
GPencil: Initial support for GP Layers in Outliner

This is still very rudimentary, and lacks many things.
* This needs a better icon. Perhaps we can look into using colour swatches here
  too like in all the other places?
* The "active" check needs to be implemented still
* Various restriction toggles to come still

6 years agoGPencil: Initial support for Grease Pencil in the Outliner
Joshua Leung [Fri, 6 Feb 2015 23:28:17 +0000 (12:28 +1300)]
GPencil: Initial support for Grease Pencil in the Outliner

This commit just adds entries for the Grease Pencil datablocks in the Outliner.
Currently, there's not much more to see here, but the following commits will see
to that.

6 years agoFix T43515: Initial velocity for fire bug
Miika Hamalainen [Fri, 6 Feb 2015 20:05:09 +0000 (22:05 +0200)]
Fix T43515: Initial velocity for fire bug

Visual representation of fire was generated before simulation step took place. This caused fire to essentially lag one simulation step behind, even though all emission areas were up to date.

6 years agoFix T42950: Smoke particle flow doesn't work with high res and subframes unless ...
Miika Hamalainen [Fri, 6 Feb 2015 19:23:43 +0000 (21:23 +0200)]
Fix T42950: Smoke particle flow doesn't work with high res and subframes unless "set size" option is ticked.

6 years agoFix T43579: FBX Export shading issue (Broken normals?)
Bastien Montagne [Fri, 6 Feb 2015 19:14:18 +0000 (20:14 +0100)]
Fix T43579: FBX Export shading issue (Broken normals?)

Error in custom split normals work, non-autosmooth normals != vertex normals!
Loops from flat faces shall take normal of their face, not their vertex.


6 years agocleanup: style
Campbell Barton [Fri, 6 Feb 2015 17:33:48 +0000 (04:33 +1100)]
cleanup: style

6 years agoUserPrefs: increase max undo steps to 256
Campbell Barton [Fri, 6 Feb 2015 17:26:57 +0000 (04:26 +1100)]
UserPrefs: increase max undo steps to 256

Campbell Barton [Fri, 6 Feb 2015 16:46:05 +0000 (03:46 +1100)]

The term auto-view on its own isn't very meaningful

6 years agoOne more crashing instance for hashes
Antony Riakiotakis [Fri, 6 Feb 2015 16:39:26 +0000 (17:39 +0100)]
One more crashing instance for hashes

6 years agoSlip tool accepts numerical input.
Antony Riakiotakis [Fri, 6 Feb 2015 15:38:32 +0000 (16:38 +0100)]
Slip tool accepts numerical input.

6 years agoGet rid of no scaling for proxies for master, it causes FX to crash,
Antony Riakiotakis [Fri, 6 Feb 2015 14:58:39 +0000 (15:58 +0100)]
Get rid of no scaling for proxies for master, it causes FX to crash,
will code another workaround for gooseberry.

6 years agoGraph Editor: Auto View
julianeisel [Fri, 6 Feb 2015 14:45:12 +0000 (15:45 +0100)]
Graph Editor: Auto View

Auto View automatically adjusts the view based on selection, so that the view is
always focused on the current selection.
A checkbox in the header is used to access it and it works for the following
selection methods: Toggle All, Border, Circle, Lasso, Left, Right, More, Less,
Linked, Column (so all except of single selection, in which this can be a bit

Reviewed by @Aligorith (thanks for that :) )

6 years agoFix T43578: Beauty Triangulation would hang in infinite loop, due to float rpecision...
Bastien Montagne [Fri, 6 Feb 2015 14:03:51 +0000 (15:03 +0100)]
Fix T43578: Beauty Triangulation would hang in infinite loop, due to float rpecision issue.

Only recompute if cost is below -FLT_EPSILON, we can get cases where both cases generate
very tiny negative costs (see 'Cylinder.004' mesh in .blend attached to report).

6 years agoFix sequencer crashing after recent GHash refactor.
Antony Riakiotakis [Fri, 6 Feb 2015 13:28:08 +0000 (14:28 +0100)]
Fix sequencer crashing after recent GHash refactor.

Code frees hash element while iterating - I don't think that's a good
idea but this should keep things working for now at least.

6 years agoAdd a precision to 'show group color' tooltip, that fcurve/action editors option...
Bastien Montagne [Fri, 6 Feb 2015 11:38:33 +0000 (12:38 +0100)]
Add a precision to 'show group color' tooltip, that fcurve/action editors option was confusing users a bit.

6 years agoFix for scons + mingw64 warning flags fix
Joshua Leung [Fri, 6 Feb 2015 10:50:51 +0000 (23:50 +1300)]
Fix for scons + mingw64 warning flags fix

So, it turns out my changes here the other day were a bit too over-eager:
  -Wdeclaration-after-statement and -Wstrict-prototypes only applied to C code
and not C++ (which that set of flags was getting included for too).

  However, -Wno-char-subscripts is fine where it is now, so I've left it in place

6 years agoCycles: Some more constants fixes for fast math
Sergey Sharybin [Fri, 6 Feb 2015 10:40:07 +0000 (15:40 +0500)]
Cycles: Some more constants fixes for fast math

6 years agoCycles: Use proper constant name for 1/pi in fast math
Sergey Sharybin [Fri, 6 Feb 2015 10:15:55 +0000 (15:15 +0500)]
Cycles: Use proper constant name for 1/pi in fast math

6 years agoSome tweaks to support upcoming OSL-1.6
Sergey Sharybin [Fri, 6 Feb 2015 09:51:14 +0000 (14:51 +0500)]
Some tweaks to support upcoming OSL-1.6

Doesn't mean we're 100% ready for the transition, but need to start somewhere
anyway. Changes:

- OSL is no longer supporting cpp and requires usage of Boost Wave.
  So now Wave component of Boost is optionally demanded when looking for the
  Boost libraries if OSL is enabled.

  Only did this for Linux, MSVC seems already using Wave. Not sure about OSX.

- Because of the same reason OSL should be moved prior Boost for linker.

- Whole archive trick makes it so linking fails with duplicated symbols, so
  removed it for the new OSL. Didn't see issues with this so far.

- Added some code to check OSL version on Linux. Would need to move all that
  to FindOpenShadingLanguage.cmake which we can get from Cycles standalone

  So in theory no affect on current stup would be made at all.

- Added some tweaks to buildbot files. It now seems to be happy with the new
  OSL libraries, but again, those tweaks are not in action yet.

All this was tested on Linux only. Win/OSX might still need some tweaks to
support new OSL.

P.S. This doesn't mean we're pushing OSL update yet, just making some
preliminary tweaks to avoid entropy of PITA when we'll actually want to

6 years agoFix some UI messages from own recent merge, and RNA code checking for final '.',...
Bastien Montagne [Fri, 6 Feb 2015 08:51:53 +0000 (09:51 +0100)]
Fix some UI messages from own recent merge, and RNA code checking for final '.', was a bit too rough.

6 years agoOutliner: DragDrop objects to groups
Campbell Barton [Fri, 6 Feb 2015 07:10:46 +0000 (18:10 +1100)]
Outliner: DragDrop objects to groups

Support drag&drop objects to groups in the outliner.

D989 by @lichtwerk

6 years agocleanup: use bool args & redundant casts
Campbell Barton [Fri, 6 Feb 2015 07:16:46 +0000 (18:16 +1100)]
cleanup: use bool args & redundant casts

6 years agoGHash: no need to malloc iterators
Campbell Barton [Fri, 6 Feb 2015 04:31:08 +0000 (15:31 +1100)]
GHash: no need to malloc iterators

6 years agoCleanup: style
Campbell Barton [Fri, 6 Feb 2015 02:54:38 +0000 (13:54 +1100)]
Cleanup: style

6 years agoAnimation play: Follow feature. Enabled from playback menu in the
Antony Riakiotakis [Thu, 5 Feb 2015 21:14:38 +0000 (22:14 +0100)]
Animation play: Follow feature. Enabled from playback menu in the

When enabled, ipo, dopesheet, NLA, timeline, clip and sequence editors
will follow the current frame during animation. When the cursor reaches
the end of the screen, then the next range of frames of the same width
is displayed.

6 years agoMore fixes for high DPI:
Antony Riakiotakis [Thu, 5 Feb 2015 18:15:24 +0000 (19:15 +0100)]
More fixes for high DPI:

* Radial operators were completely wrong
* Dynamic topology detail was also using unscaled number

6 years agoFix T43556 clamp brush size before setting it after division by DPI,
Antony Riakiotakis [Thu, 5 Feb 2015 18:11:00 +0000 (19:11 +0100)]
Fix T43556 clamp brush size before setting it after division by DPI,
avoids nasty zero size brushes.

6 years agoFix part of T43556 brush increase/decrease size operators do not update
Antony Riakiotakis [Thu, 5 Feb 2015 17:14:05 +0000 (18:14 +0100)]
Fix part of T43556 brush increase/decrease size operators do not update
the UI sliders.

6 years agoChange movie cache to use vectors instead of lists.
Antony Riakiotakis [Thu, 5 Feb 2015 14:06:13 +0000 (15:06 +0100)]
Change movie cache to use vectors instead of lists.

Runtime costs were horrible. On gooseberry in some sequencer edits using
proxies of small size, a cache with about 2000 elements would slow to
about 6 fps once cache was full and system tried to find smallest
element available.

There are still improvements to be done here, like requesting a number
of good candidates to avoid rerunnung through the list, or even using
some heap or ring buffer scheme to sort data, but nothing suits all
needs so for now that should bring the cache back to usable state (25fps
here at the studio)

6 years agoCustom Loop Normals: Add NormalEdit modifier
Bastien Montagne [Thu, 5 Feb 2015 13:49:44 +0000 (14:49 +0100)]
Custom Loop Normals: Add NormalEdit modifier

Nothing much to say here, basic tool to make normals point toward a target,
or to make them point 'outward' as if object was a spheroid (useful for game bushes etc.).

Also, forgot a big thank you to Campbell for the extensive review work he has done on this project!

6 years agoAdd Custom Loop Normals to Data Transfer.
Bastien Montagne [Thu, 5 Feb 2015 13:38:59 +0000 (14:38 +0100)]
Add Custom Loop Normals to Data Transfer.

Titles says everything, just two notes:
* We have to actually transfer plain *normals*, not 'compressed' clnors,
  so had to add pre/post process to transfer to make the conversions.
* Also added interpolation and advanced copy/mixing to CD_NORMAL, for same reasons.

6 years agoAdd Custom Loop Normals.
Bastien Montagne [Thu, 5 Feb 2015 13:24:48 +0000 (14:24 +0100)]
Add Custom Loop Normals.

This is the core code for it, tools (datatransfer and modifier) will come in next commits).
RNA api is already there, though.

See the code for details, but basically, we define, for each 'smooth fan'
(which is a set of adjacent loops around a same vertex that are smooth, i.e. have a single same normal),
a 'loop normal space' (or lnor space), using auto-computed normal and relevant edges, and store
custom normal as two angular factors inside that space. This allows to have custom normals
'following' deformations of the geometry, and to only save two shorts per loop in new clnor CDLayer.

Normal manipulation (editing, mixing, interpolating, etc.) shall always happen with plain 3D vectors normals,
and be converted back into storage format at the end.

Clnor computation has also been threaded (at least for Mesh case, not for BMesh), since the process can
be rather heavy with high poly meshes.

Also, bumping subversion, and fix mess in 2.70 versioning code.

6 years agoMesh validate: add an option to not clean temp/cache CDLayers.
Bastien Montagne [Thu, 5 Feb 2015 13:03:01 +0000 (14:03 +0100)]
Mesh validate: add an option to not clean temp/cache CDLayers.

This is mandatory for incoming custom normal imports from io scripts, because
often geometry here is corrupted, so we need to call mesh.validate() to clean it up.

Issue is, we cannot set custom normals before geometry is clean, so we need to store
temporary plain loop normals in a CD_NORMAL layer, validate, and then set custom normals.
So we need a way to prevent 'temp' lnors to be freed by validate.

6 years agoBLI_math vectors: add minmax_v3v3_v3_array to get min and max values on each componen...
Bastien Montagne [Thu, 5 Feb 2015 13:00:58 +0000 (14:00 +0100)]
BLI_math vectors: add minmax_v3v3_v3_array to get min and max values on each components of an array of 3D vectors.

6 years agoFix T43562: Cycles gets stuck with camera in volume in certain setup
Sergey Sharybin [Thu, 5 Feb 2015 11:06:22 +0000 (16:06 +0500)]
Fix T43562: Cycles gets stuck with camera in volume in certain setup

The issue was caused by the way how we shoot the ray to see which rays we're
inside which might start bouncing back-n-forth between two close to parallel
intersecting faces.

Real solution would be to record all the intersections when shooting the ray,
but it's kinda tricky on GPU because of needed sorting and uncertainty of
how huge intersection array should be.

For now we'll just limit number of steps in the check so in worst case we'll
have some samples not being correct which will be compensated with further
sampling. Shouldn't be an issue since probability of such a lock is quite
small actually.

6 years agoFix T43566: Missing update event for VSE
Bastien Montagne [Thu, 5 Feb 2015 10:51:09 +0000 (11:51 +0100)]
Fix T43566: Missing update event for VSE

VSE was missing NC_ANIMATION | ND_KEYFRAME events.
Also need to invalidate cache on those, else keyframe editing do not get reflected in VSE preview!

6 years agoUse MAX_CUSTOMDATA_LAYER_NAME for size of GPUInput.attribname array
Nicholas Bishop [Thu, 5 Feb 2015 10:20:24 +0000 (11:20 +0100)]
Use MAX_CUSTOMDATA_LAYER_NAME for size of GPUInput.attribname array

Before this was hardcoded to 32, which I think was incorrect because
this is used to store a customdata layer name.

Reviewers: psy-fi, campbellbarton, sergey

Reviewed By: campbellbarton, sergey

Differential Revision:

Campbell Barton [Thu, 5 Feb 2015 08:49:46 +0000 (19:49 +1100)]

D750 by @leszekswirski

Need for compiling Blender as a Python module in Windows.

6 years agoUI: UVWarp-Modifier had duplicate names
Campbell Barton [Thu, 5 Feb 2015 08:18:21 +0000 (19:18 +1100)]
UI: UVWarp-Modifier had duplicate names

D1047 by @lichtwerk

6 years agoFix T43561: Wrong include path to standard OSL headers
Sergey Sharybin [Thu, 5 Feb 2015 07:06:24 +0000 (12:06 +0500)]
Fix T43561: Wrong include path to standard OSL headers

Issue was in fact only visible in certain circumstances:

- OSL was compiled with Boost Wave
- or system's cpp didn't handle space between -I and path

Now made it so both wave and cpp code paths are always happy.

Original patch from Shane Ambler with own modifications to
mimic what variable holds on more verbose.

6 years agoFix T43531: Wrong object center-dot color
Campbell Barton [Thu, 5 Feb 2015 05:54:18 +0000 (16:54 +1100)]
Fix T43531: Wrong object center-dot color

Write objects center point to the nearest depth.

6 years agoFix T43560: crash when loading old (2.45 here) file whith multires.
Bastien Montagne [Wed, 4 Feb 2015 20:43:01 +0000 (21:43 +0100)]
Fix T43560: crash when loading old (2.45 here) file whith multires.

Was trying to free a NULL pointer...

6 years agoFix T43567: Freestyle On/Off keyframe is being ignored.
Bastien Montagne [Wed, 4 Feb 2015 20:20:35 +0000 (21:20 +0100)]
Fix T43567: Freestyle On/Off keyframe is being ignored.

That kind of stuff shall not be animated! :)

6 years agoFix T43450: Texture node tree failed to clamp
Kévin Dietrich [Wed, 4 Feb 2015 20:18:02 +0000 (01:18 +0500)]
Fix T43450: Texture node tree failed to clamp

Clamping routine was not implemented. This fixes T43450.

Reviewers: #nodes, #rendering, sergey

Reviewed By: sergey

Maniphest Tasks: T43450

Differential Revision:

6 years agoSequencer, scaling and audio synch
Antony Riakiotakis [Wed, 4 Feb 2015 19:38:31 +0000 (20:38 +0100)]
Sequencer, scaling and audio synch

Don't scale proxies, same as we do in gooseberry, also for sound synch
give a small window around sound where frame is just pushed forward.
Avoids video jumping in the cases when video renders faster than sound
(yes, weirdly enough it happens sometimes). There might be a few jumps
but results looks smoother here.

6 years agosmall typo in a code comment, fixing this before someone does it to prevent uneeded...
Dalai Felinto [Wed, 4 Feb 2015 19:19:15 +0000 (17:19 -0200)]
small typo in a code comment, fixing this before someone does it to prevent uneeded merge conflicts in branches

6 years agoFix T43366 export/import materials inconsistent
Gaia Clary [Wed, 4 Feb 2015 18:06:55 +0000 (19:06 +0100)]
Fix T43366 export/import materials inconsistent

6 years agoPort fix from gooseberry that doesn't load the full res file if a proxy
Antony Riakiotakis [Wed, 4 Feb 2015 17:48:47 +0000 (18:48 +0100)]
Port fix from gooseberry that doesn't load the full res file if a proxy
is requested.

6 years agoCleanup: name flip x/y
Campbell Barton [Wed, 4 Feb 2015 16:54:32 +0000 (03:54 +1100)]
Cleanup: name flip x/y

6 years agoRNA image.pack(): fix possible memleak, add possibility to pass raw bytes data.
Bastien Montagne [Wed, 4 Feb 2015 13:46:22 +0000 (14:46 +0100)]
RNA image.pack(): fix possible memleak, add possibility to pass raw bytes data.

Note passing data assumes user knows what he is doing, else segfault is guaranted
(there is no good ways to pass raw bytes data to RNA func currently, and using
int array is way too heavy in this case).

And image->packedfile was never freed...

6 years agoSupport rotation and flipping for background images, patch by Andre D.
Antony Riakiotakis [Wed, 4 Feb 2015 14:05:22 +0000 (15:05 +0100)]
Support rotation and flipping for background images, patch by Andre D.
(T34583) with minor changes. Thanks for the patch!

6 years agoBGE physics: allow higher values for maxlogicstep and maxphystep
Sybren A. Stüvel [Wed, 4 Feb 2015 13:15:40 +0000 (14:15 +0100)]
BGE physics: allow higher values for maxlogicstep and maxphystep

Increasing those values beyond 5 is important for exact physics
simulation. Soft limit is increased to 50, hard limit to 10000.

To be able to set different values for hardlimit and softlimit,
RNA_def_property_range needs to precede RNA_def_property_range, hence
the swapped order.

6 years agoCompiler warnings tweak for scons + mingw64
Joshua Leung [Wed, 4 Feb 2015 11:50:50 +0000 (00:50 +1300)]
Compiler warnings tweak for scons + mingw64

The warning flags in C_WARN were not actually getting included
(most notably, the one disabling the pointless + braindead one
about using chars to index into arrays - given that we only use
unsigned chars everywhere). Maybe this should get done for the
other scons platforms too?

6 years agoFix T43552: Cannot jump between GP keyframes in dopesheet
Joshua Leung [Wed, 4 Feb 2015 10:47:41 +0000 (23:47 +1300)]
Fix T43552: Cannot jump between GP keyframes in dopesheet

6 years agoFix for recent LANG locale workaround
Sergey Sharybin [Wed, 4 Feb 2015 11:02:47 +0000 (16:02 +0500)]
Fix for recent LANG locale workaround

Need to get a copy of the string since stored pointer is affected
by subsequent calls of setlocale().

6 years agoGLSL: On some cards '>' can't operate on 'float' and 'int'
Sergey Sharybin [Wed, 4 Feb 2015 10:54:42 +0000 (15:54 +0500)]
GLSL: On some cards '>' can't operate on 'float' and 'int'

So make it so comparison doesn't imply type-cast.

6 years agoCycles: Use pre-aligned triangle vertex coordinates for subsurface intersection
Sergey Sharybin [Wed, 4 Feb 2015 09:49:19 +0000 (14:49 +0500)]
Cycles: Use pre-aligned triangle vertex coordinates for subsurface intersection

This gives small speedup (around 2% in quick tests) for ray scattering.

6 years agoCompositor: Code cleanup, trailing whitespace and wrapping
Sergey Sharybin [Wed, 4 Feb 2015 08:04:09 +0000 (13:04 +0500)]
Compositor: Code cleanup, trailing whitespace and wrapping

6 years agoCompositor: Implement sampled motion blur for plane track deform node
Sergey Sharybin [Tue, 3 Feb 2015 20:16:28 +0000 (01:16 +0500)]
Compositor: Implement sampled motion blur for plane track deform node

Quite striaghtforward change, and in theory we can even try supporting motion
blur for the corner pin node (which is tricky because coordinates actually
coming from sockets, but with some black magic should be doable).

6 years agoHook Modifier: add falloff & radius options
Campbell Barton [Tue, 3 Feb 2015 20:04:21 +0000 (07:04 +1100)]
Hook Modifier: add falloff & radius options

- Add falloff types & curves (matching warp-modifier)
- Add uniform scale option,
  important when adding hooks to non-uniform scaled objects,
  especially for use with lattice objects which can't avoid uneven scaling.

  This uses relative transformation set when the hook is assigned,
  when measuring the distances.

6 years agoNew Hook's now use the objects center
Campbell Barton [Tue, 3 Feb 2015 20:08:30 +0000 (07:08 +1100)]
New Hook's now use the objects center

When adding a hook to an existing selected object/bone,
Use the location for the hook (instead of the selected vertices).

6 years agoUI messages: minor fixes...
Bastien Montagne [Tue, 3 Feb 2015 19:25:14 +0000 (20:25 +0100)]
UI messages: minor fixes...