blender.git
3 years agoFix T46471: Sculpt strokes doesn't mark file as modified
Sergey Sharybin [Tue, 27 Oct 2015 23:10:00 +0000 (04:10 +0500)]
Fix T46471: Sculpt strokes doesn't mark file as modified

3 years agoBuldbot: Disable 32bit kernels
Sergey Sharybin [Tue, 27 Oct 2015 19:45:31 +0000 (00:45 +0500)]
Buldbot: Disable 32bit kernels

Currently disable all of them, in practice i think way to go should be:

- Disable Experimental kernels on 32 bit, build up to sm_35
- Later we can drop all 32bit kernels, but try to keep at least one release
  with some of the kernels (they'll cover 99% of users anyway)

Before doing any changes we should surely communicate such a changes before
we apply them.

3 years agoCycles: Expose user-defined shutter curve to the interface
Sergey Sharybin [Tue, 27 Oct 2015 14:00:51 +0000 (19:00 +0500)]
Cycles: Expose user-defined shutter curve to the interface

Shutter curve now can be controlled using curve mapping widget in the motion
blur panel in Render buttons. Only mapping from 0..1 by x axis are allowed,
Y values will be normalized to fill in 0..1 space as well automatically.

Y values of 0 means fully closed shutter, Y values of 1 means fully opened
shutter.

Default mapping is set to old behavior when shutter opens and closes instantly.

This shutter mapping curve could easily be used by any other render engine by
accessing scene.render.motion_blur_shutter_curve.

Reviewers: #cycles, brecht, juicyfruit, campbellbarton

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

3 years agoCycles: Support user-defined shutter curve
Sergey Sharybin [Tue, 27 Oct 2015 08:16:04 +0000 (13:16 +0500)]
Cycles: Support user-defined shutter curve

Previously shutter was instantly opening, staying opened for the shutter time
period of time and then instantly closing. This isn't quite how real cameras
are working, where shutter is opening with some curve. Now it is possible to
define user curve for how much shutter is opened across the sampling period
of time.

This could be used for example to make motion blur trails softer.

3 years agoCycles: Use new CDF evaluation utility for the pixel filter
Sergey Sharybin [Mon, 26 Oct 2015 15:23:18 +0000 (20:23 +0500)]
Cycles: Use new CDF evaluation utility for the pixel filter

Filter table should stay exactly the same, no changes in the render
results are expected at all.

3 years agoCycles: Add utility functions to evaluate CDF of a given functor
Sergey Sharybin [Mon, 26 Oct 2015 14:20:40 +0000 (19:20 +0500)]
Cycles: Add utility functions to evaluate CDF of a given functor

3 years agoSupport symmetrical curve mapping presets
Sergey Sharybin [Sun, 25 Oct 2015 11:14:19 +0000 (16:14 +0500)]
Support symmetrical curve mapping presets

Previously curve mapping was always setting to only a single slope which then
was symmetrizied by a tools (such as brush or compositing).

With this change it's possible to set curve to symmetrical slopes as a part
of preset.

3 years agoFix curve mapping linear preset not setting handle type correctly
Sergey Sharybin [Sun, 25 Oct 2015 10:58:25 +0000 (15:58 +0500)]
Fix curve mapping linear preset not setting handle type correctly

3 years agoFix makesrna generated C++ header have consistent whitespace for strings.
Martijn Berger [Tue, 27 Oct 2015 21:11:14 +0000 (22:11 +0100)]
Fix makesrna generated C++ header have consistent whitespace for strings.

3 years agoFix OS X user preferences open crash when changing virtual pixel size.
Brecht Van Lommel [Tue, 27 Oct 2015 19:03:20 +0000 (20:03 +0100)]
Fix OS X user preferences open crash when changing virtual pixel size.

The separate window state setting caused a crash due to doing live resize code
redrawing a window that has not yet been fully initialized.

3 years agoDocs: callback comments
Campbell Barton [Tue, 27 Oct 2015 16:13:49 +0000 (03:13 +1100)]
Docs: callback comments

3 years agoFix T46605: Compositing causes access violation when rendering from command line
Sergey Sharybin [Tue, 27 Oct 2015 16:03:22 +0000 (21:03 +0500)]
Fix T46605: Compositing causes access violation when rendering from command line

Seems was caused by the race condition in the stats printing, should be all fine now.

Nice for 'a' release.

3 years agoOpenSubdiv: Fix wrong handling of vertex parent
Sergey Sharybin [Tue, 27 Oct 2015 15:44:14 +0000 (20:44 +0500)]
OpenSubdiv: Fix wrong handling of vertex parent

Vertex parent was not registered as CPU data requirement.

Should be in the 'a' release.

3 years agoCompositor: Use mask name as mask node label
Sergey Sharybin [Tue, 27 Oct 2015 15:29:42 +0000 (20:29 +0500)]
Compositor: Use mask name as mask node label

This way it becomes much easier to navigate in roto compositor where it could
be 100s of masks in a production shot.

3 years agoCompositor: Add Invert option to the movie clip stabilization node
Sergey Sharybin [Tue, 27 Oct 2015 14:59:17 +0000 (19:59 +0500)]
Compositor: Add Invert option to the movie clip stabilization node

This appears to be really common workflow when you stabilize shot to make compo
easier (roto, some effects and so) and then re-introduce the motion back.

Surely it's doable with some magic nodes and manual network for transforming
but such workflow is too common in VFX to resist adding one small option in
single node for this.

3 years agoBGE: Fix T43218: Text of framerate and profile glitch in Multitexture shading
Ulysse Martin [Tue, 27 Oct 2015 14:22:22 +0000 (15:22 +0100)]
BGE: Fix T43218: Text of framerate and profile glitch in Multitexture shading

Fix T43218: Text of framerate and profile glitch in Multitexture shading

Reviewers: lordloki, panzergame

Reviewed By: panzergame

Subscribers: medved

Projects: #game_engine

Maniphest Tasks: T43218

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

3 years agoView3D offscreen buffer was interferring with view navigation
Dalai Felinto [Tue, 27 Oct 2015 13:27:26 +0000 (11:27 -0200)]
View3D offscreen buffer was interferring with view navigation

the RegionView3D matrices need to be re-set after drawing.

Review and touch ups by Campbell Barton

3 years agoFix: Open tmp windows with size multiplied by virtual pixelsize
Julian Eisel [Tue, 27 Oct 2015 11:53:58 +0000 (12:53 +0100)]
Fix: Open tmp windows with size multiplied by virtual pixelsize

Opening a tmp window on a 4K display with virtual pixelsize set to double results in a too small window. For Retina this seems to be handled on GHOST level already, so multiply by virtual pixelsize only.

3 years agoFix T46606: Trackball Rotate jumps releasing shift
Campbell Barton [Tue, 27 Oct 2015 10:46:22 +0000 (21:46 +1100)]
Fix T46606: Trackball Rotate jumps releasing shift

3 years agoBGE: Fix T31357: wrong zoom when sets camera.
Porteries Tristan [Tue, 27 Oct 2015 10:04:04 +0000 (11:04 +0100)]
BGE: Fix T31357: wrong zoom when sets camera.

This patch makes independant the override camera zoom and the default camera object zoom. The override zoom is 2.0f and the camera object zoom is computed with the RegionView3D camera zoom.
These features are only used for the embedded BGE, so there's no compatibility issues with the blenderplayer.
I let the override zoom with a setter to allow later to create an override camera in blenderplayer easily.

Tested with the 3 framing modes in embedded and standalone.

3 years agoBGE: generic python callback list + replace KX_PythonSeq.
Porteries Tristan [Mon, 26 Oct 2015 19:27:08 +0000 (20:27 +0100)]
BGE: generic python callback list + replace KX_PythonSeq.

I made this patch to declared a python list without converting all elements in python object (too slow) or use a CListValue which required CValue items (too expensive in memory).  In the case of a big list of points like a collision contacts points list, to use a CListValue we must implement a new class based on CValue for 3D vector to create a python proxy even if mathutils do it perfectly, we must also convert all points (frequently ~100 points) when fill the CListValue even if the list is not used (in the case of the collision callback). The easy way is to use callback (it doesn't worth to do an inheritance) which convert the item in PyObject only during an acces.
5 callbacks are used :
- Check if the list is valid = allow acces (like PyObjectPlus.invalid)
- Get the list size
- Get an item in the list by index.
- Get an item name in the list by index (used for operator `list["name"]`)
- Set an item in the list at the index position.
All of these callback take as first argument the client instance.
Why do we use a void * for the client instance ? : In KX_PythonInitTypes.cpp we have to initialize each python inherited class, if we use a template (the only other way) we must add this class each time we use a new type with in KX_PythonInitTypes.cpp

To check if the list can be accessed from python by the user, we check if the python proxy,  which is the `m_base` member, is still a valid proxy like in PyObjectPlus. But we can use a callback for more control of user access (e.g a list of collision point invalidate a frame later, in this case no real python owner).

This python list is easily defined with :
```
CPythonCallBackList(
void *client, // The client instance
PyObject *base, // The python instance which owned this list, used to know if the list is valid (like in KX_PythonSeq)
bool (*checkValid)(void *), // A callback to check if this list is till valid (optional)
int (*getSize)(void *), // A callback to get size
PyObject *(*getItem)(void *, int), // A callback to get an item
const char *(*getItemName)(void *, int), // A callback to get an item name (optional) use for acces by string key
bool (*setItem)(void *, int, PyObject *) // A callback to set an item (optional)
)
```
To show its usecase i replaced the odd KX_PythonSeq, it modify KX_Gameobject.sensors/controllers/actuators, SCA_IController.sensors/actuators and BL_ArmatureObject.constraints/channels.

Example : {F245193}, See message in console, press R to erase the object and see invalid proxy error message.

Reviewers: brita_, #game_python, youle, campbellbarton, moguri, agoose77, sergey

Reviewed By: campbellbarton, moguri, agoose77, sergey

Subscribers: sergey

Projects: #game_engine

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

3 years agoFix T46537: UV Image Editor. UV Sculpt toggle button doesn't show hotkey label when...
Bastien Montagne [Mon, 26 Oct 2015 15:34:18 +0000 (16:34 +0100)]
Fix T46537: UV Image Editor. UV Sculpt toggle button doesn't show hotkey label when active.

Poll function of that keymap was slightly... agressive.

3 years agoFix broken comment about our WM progress report for python (its not a progress bar...
Bastien Montagne [Mon, 26 Oct 2015 13:10:25 +0000 (14:10 +0100)]
Fix broken comment about our WM progress report for python (its not a progress bar at all).

3 years agoFix T46604: Crash in ChainPredicateIterator instantiated without predicates.
Tamito Kajiyama [Mon, 26 Oct 2015 09:17:12 +0000 (18:17 +0900)]
Fix T46604: Crash in ChainPredicateIterator instantiated without predicates.

Also fixed a potential crash in the copy constructor case.

3 years agoFreestyle: minor speed-up by omitting the calculation of the smallest edge size.
Tamito Kajiyama [Sun, 9 Aug 2015 14:36:53 +0000 (23:36 +0900)]
Freestyle: minor speed-up by omitting the calculation of the smallest edge size.

BlenderFileLoader tries to find the smallest edge size but the computed value is not used.

3 years agoCleanup: warning & whitespace
Campbell Barton [Mon, 26 Oct 2015 11:22:30 +0000 (22:22 +1100)]
Cleanup: warning & whitespace

3 years agoCleanup: Remove ToDo comment.
Thomas Dinges [Sun, 25 Oct 2015 19:54:26 +0000 (20:54 +0100)]
Cleanup: Remove ToDo comment.

I don't see how this could conflict, madd() in util_ssef.h has a different function signature.

3 years agoCleanup: Avoid some warnings on OS X with clang and update comment.
Thomas Dinges [Sun, 25 Oct 2015 19:48:28 +0000 (20:48 +0100)]
Cleanup: Avoid some warnings on OS X with clang and update comment.

3 years agoCleanup: Move pixel aspect to blender_camera_init().
Thomas Dinges [Sat, 24 Oct 2015 23:12:29 +0000 (01:12 +0200)]
Cleanup: Move pixel aspect to blender_camera_init().

3 years agoFix: Prevent warnings from popping up when trying to edit driver expressions from...
Joshua Leung [Mon, 26 Oct 2015 10:24:41 +0000 (23:24 +1300)]
Fix: Prevent warnings from popping up when trying to edit driver expressions from buttons

Previously, a warning was added to provide feedback to users trying to change the values
of driven properties why their edits would not have any effect on the propeerty. However,
it turned out that instead of only showing up when the user tried to increment/decrement/slide
the property's value, it was also firing everytime they were trying to edit the expression.
That however is not what we want at all!

This fix assumes that BUTTON_STATE_TEXT_EDITING is used for expression editing, and
BUTTON_STATE_NUM_EDITING (or everything else) refers to the user trying to adjust the
value normally.

3 years agoGraph Editor: Use Cursor X in Drivers mode during Transforms (where appropriate)
Joshua Leung [Mon, 26 Oct 2015 07:15:27 +0000 (20:15 +1300)]
Graph Editor: Use Cursor X in Drivers mode during Transforms (where appropriate)

3 years agoGraph Editor: Snap and Mirror keyframes now respect Cursor X in Drivers mode
Joshua Leung [Mon, 26 Oct 2015 07:13:29 +0000 (20:13 +1300)]
Graph Editor: Snap and Mirror keyframes now respect Cursor X in Drivers mode

When using the "Current Frame" options for these operators, the Cursor X value
will now be used instead of the current frame. Perhaps the labels could be changed
too, but for now, I guess this will be good enough.

3 years agoGraph Editor: Adjusting Change Frame and Jump to Keyframes operators to work with...
Joshua Leung [Mon, 26 Oct 2015 06:29:23 +0000 (19:29 +1300)]
Graph Editor: Adjusting Change Frame and Jump to Keyframes operators to work with Drivers Cursor

3 years agoFix T46599: Copy Rotation behaves erratically when Use Y is disabled
Joshua Leung [Mon, 26 Oct 2015 02:14:02 +0000 (15:14 +1300)]
Fix T46599: Copy Rotation behaves erratically when Use Y is disabled

When the "Use Y" option in the Copy Rotation constraint is disabled, the constraint
behaves eratically when rotating all the target on all axes at the same time.
This is partially to be expected due to the way that euler rotations work
(i.e. the rotation orders stuff - you should use a rotation order based on most to
least important/significant rotations). Hence, by locking Y, you're causing accuracy
problems for Z.

What was not expected though was that changing the rotation orders on the objects
involved (for the record, it's the constraint owner that counts) did nothing.
It turns out that for objects, the rotation order settings were getting ignored!
This commit fixes this problem, and this particular case can be resolved by using
"XZY".

Notes:
* Since all object constraints were previously working on the assumption that they
  used XYZ (default) order, it is possible that this change may have the unintended
  consequence of changing the behaviour of some rigs which relied on the buggy
  behaviour. Hopefully this will be a rare occurrence.

3 years agoGraph Editor: Allow "cursor x" to have fractional values when working with Drivers...
Joshua Leung [Sat, 10 Oct 2015 05:26:09 +0000 (18:26 +1300)]
Graph Editor: Allow "cursor x" to have fractional values when working with Drivers  (T46004)

When working is the Graph Editor it can be very important to be able to work with fractions
(sub integers), especially when working with Drivers. Currently the "Cursor Y" is hooked up
to "cursor_position_y" which allows fractions  but "Cursor X" is directly hooked up to
"frame_current" which is an integer.

This commit adds initial support for this feature.
* When in Drivers mode, the x-part of the cursor is mapped to a new "cursor_position_x"
  value which can have fractional values. Animation mode however remains mapped to frame_current

* This commit only adds the UI/property/drawing tweaks needed to support this.
  Many operators still need to be modified to consider this value instead of the
  current frame, for this to be more useful.

3 years agoFix: Missing update after scrubbing time in Graph Editor
Joshua Leung [Sat, 10 Oct 2015 05:16:13 +0000 (18:16 +1300)]
Fix: Missing update after scrubbing time in Graph Editor

Sometimes the timeline header didn't update after time-scrubbing in the graph
editor ends, leaving the "Pause" button visible until the next refresh of the
timeline (e.g. on mouse over)

3 years agoFix: X-axis values in Graph Editor should not be displayed as timecodes in "Drivers...
Joshua Leung [Sat, 10 Oct 2015 05:14:11 +0000 (18:14 +1300)]
Fix: X-axis values in Graph Editor should not be displayed as timecodes in "Drivers" mode

3 years agoAlternative presentation for interpolation indicator for discrete properties
Joshua Leung [Thu, 8 Oct 2015 12:48:16 +0000 (01:48 +1300)]
Alternative presentation for interpolation indicator for discrete properties

3 years agoGraph Editor: Disable interpolation setting for enum/boolean FCurves, as no interpola...
Joshua Leung [Thu, 8 Oct 2015 12:39:20 +0000 (01:39 +1300)]
Graph Editor: Disable interpolation setting for enum/boolean FCurves, as no interpolation is performed on those

3 years agondof: rework Mac driver glue
Mike Erwin [Sat, 24 Oct 2015 17:58:06 +0000 (19:58 +0200)]
ndof: rework Mac driver glue

Load driver dynamically at runtime instead of weak-linking the
3Dconnexion framework. Driver no longer needed at build time!

Works with really old drivers (as in PowerMac old), more recent
versions, and the latest which allows us to process events on a
separate thread.

3 years agoBGE: Cleanup: Code style BL_Shader
Thomas Szepe [Sun, 25 Oct 2015 18:43:46 +0000 (19:43 +0100)]
BGE: Cleanup: Code style BL_Shader

Reviewers: lordloki, youle, campbellbarton, sergey, kupoman, moguri, panzergame

Reviewed By: panzergame

Projects: #game_engine

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

3 years agoBGE: Fix issues with async libload.
Porteries Tristan [Sun, 25 Oct 2015 18:22:29 +0000 (19:22 +0100)]
BGE: Fix issues with async libload.

This patch fixes:
- the call of LibFree on a unfinished loaded library;
- memory leak created on end of game : the async libraries are loaded but not converted, so not freed with the master scene.

Reviewers: campbellbarton, sybren, youle, hg1, moguri, lordloki

Reviewed By: moguri, lordloki

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

3 years agoUse BLI_strncasecmp for text suggestions
Campbell Barton [Sun, 25 Oct 2015 06:44:32 +0000 (17:44 +1100)]
Use BLI_strncasecmp for text suggestions

3 years agoAvoid redundant normalize in obmat_to_viewmat
Campbell Barton [Sun, 25 Oct 2015 06:30:16 +0000 (17:30 +1100)]
Avoid redundant normalize in obmat_to_viewmat

3 years agoFix T46590 Strange camera behavior (partial revert of fbca69c6)
Dalai Felinto [Sat, 24 Oct 2015 23:02:42 +0000 (21:02 -0200)]
Fix T46590 Strange camera behavior (partial revert of fbca69c6)

I'm sure there is a way of using the new functions for the
obmat_to_viewmat() routine. But for now let's get it back to a working
state

3 years agoFix error in bone UI
Campbell Barton [Sat, 24 Oct 2015 18:50:40 +0000 (05:50 +1100)]
Fix error in bone UI

3 years agoCleanup: use quat to eul w/ mathutils API
Campbell Barton [Sat, 24 Oct 2015 06:48:32 +0000 (17:48 +1100)]
Cleanup: use quat to eul w/ mathutils API

3 years agoFix invalid exceptions w/ preview API
Campbell Barton [Sat, 24 Oct 2015 05:20:26 +0000 (16:20 +1100)]
Fix invalid exceptions w/ preview API

D1575 by @januz

3 years agoFix T46538: Mark and Clear Seam in UV Editor, assigning Hotkeys.
Bastien Montagne [Fri, 23 Oct 2015 12:34:57 +0000 (14:34 +0200)]
Fix T46538: Mark and Clear Seam in UV Editor, assigning Hotkeys.

UV Editor keymap is not bound to a given editor (spacetype)...

3 years agoFix related to T46538: do not popup choice menu of mark/clear seam UV editor op invok...
Bastien Montagne [Fri, 23 Oct 2015 12:00:28 +0000 (14:00 +0200)]
Fix related to T46538: do not popup choice menu of mark/clear seam UV editor op invoke when prop is already set!

3 years agoBLI_math: add mat3_normalized_to_* functions
Campbell Barton [Fri, 23 Oct 2015 20:02:51 +0000 (07:02 +1100)]
BLI_math: add mat3_normalized_to_* functions

Many uses of matrices for rotation keep them normalized,
so no need to normalize each time.

3 years agoCleanup: remove redundant math calls
Campbell Barton [Fri, 23 Oct 2015 18:29:53 +0000 (05:29 +1100)]
Cleanup: remove redundant math calls

3 years agoCleanup: simplify ED_view3d_from_m4
Campbell Barton [Fri, 23 Oct 2015 17:33:54 +0000 (04:33 +1100)]
Cleanup: simplify ED_view3d_from_m4

3 years agoBLI_math: add invert_qt_normalized
Campbell Barton [Fri, 23 Oct 2015 16:51:00 +0000 (03:51 +1100)]
BLI_math: add invert_qt_normalized

When the quat is known to be unit length, so we can avoid scaling
(just conjugate_qt which asserts on non unit quats).

3 years agoCleanup: rename 'datablocks' -> 'data-blocks'
Campbell Barton [Fri, 23 Oct 2015 15:44:43 +0000 (02:44 +1100)]
Cleanup: rename 'datablocks' -> 'data-blocks'

Similar to addons -> add-ons, for reading it fits better to hyphenate.

3 years agoNode Border Select: only frames inside border
Campbell Barton [Fri, 23 Oct 2015 14:06:28 +0000 (01:06 +1100)]
Node Border Select: only frames inside border

Without this you can't easily select a few nodes inside a frame,
without selecting the whole frame, noted in T46540

3 years agoCleanup: use int for view_id's & view count
Campbell Barton [Fri, 23 Oct 2015 14:01:10 +0000 (01:01 +1100)]
Cleanup: use int for view_id's & view count

`size_t` is useful for memory sizes or offsets,
the number of views wont realistically exceed an int.

3 years agoCorrect own error w/ snap-scale T46503
Campbell Barton [Fri, 23 Oct 2015 10:31:05 +0000 (21:31 +1100)]
Correct own error w/ snap-scale T46503

Don't use nan for comparisons.

3 years agoBGE: Fix T30179 action actuator not stoped when state changed.
Porteries Tristan [Fri, 23 Oct 2015 08:41:13 +0000 (10:41 +0200)]
BGE: Fix T30179 action actuator not stoped when state changed.

The function SCA_IActuator::DecLink is now under virtual : in some case the actuator have to know when is useless.

3 years agoQuiet audaspace unused macro warnings
Campbell Barton [Fri, 23 Oct 2015 07:33:20 +0000 (18:33 +1100)]
Quiet audaspace unused macro warnings

3 years agoFix ffmpeg memory leaks
Campbell Barton [Fri, 23 Oct 2015 07:36:46 +0000 (18:36 +1100)]
Fix ffmpeg memory leaks

- audio_stream wasn't freed.
- audio/video stream + context weren't freed on failure.

3 years agoFix ffmpeg saving long paths
Campbell Barton [Fri, 23 Oct 2015 07:27:26 +0000 (18:27 +1100)]
Fix ffmpeg saving long paths

Was checking wrong length on string copy.

3 years agoFix for error w/ RenderView in ImageView list
Campbell Barton [Fri, 23 Oct 2015 06:06:42 +0000 (17:06 +1100)]
Fix for error w/ RenderView in ImageView list

3 years agoComments for link-list types
Campbell Barton [Fri, 23 Oct 2015 05:46:57 +0000 (16:46 +1100)]
Comments for link-list types

3 years agoFix snap-scale w/ axis constraint
Campbell Barton [Fri, 23 Oct 2015 01:27:15 +0000 (12:27 +1100)]
Fix snap-scale w/ axis constraint

Related to T46503,
fix only worked when the snap target was axis-aligned.

3 years agoBGE: Fix T46556: check on null sound datablock pointer.
Porteries Tristan [Thu, 22 Oct 2015 18:06:29 +0000 (20:06 +0200)]
BGE: Fix T46556: check on null sound datablock pointer.

3 years agoVersion Bump: 2.76.2, deprecate values
Campbell Barton [Thu, 22 Oct 2015 17:54:07 +0000 (04:54 +1100)]
Version Bump: 2.76.2, deprecate values

- RegionView3D.view RV3D_VIEW_PERSPORTHO
  only ever set on initialization, never checked for.
- Lamp.type LA_YF_PHOTON
  from old 2.4x yafray files.

Also iniitalize movie-clip + grease-pencil theme colors.

3 years agoCycles: Watertight fix for SSS intersection
Sergey Sharybin [Thu, 22 Oct 2015 17:10:40 +0000 (22:10 +0500)]
Cycles: Watertight fix for SSS intersection

Same as previous commit, just was missing in there.

3 years agoCycles: Fix for watertight intersection
Sergey Sharybin [Thu, 22 Oct 2015 17:06:25 +0000 (22:06 +0500)]
Cycles: Fix for watertight intersection

It was possible to miss some intersection caused by wrong barycentric
coordinates sign.

Cases when one of the coordinate is zero and other are negative was not
handled correct.

3 years agoView3D: make ndof turntable & orbit speed match
Campbell Barton [Thu, 22 Oct 2015 16:16:21 +0000 (03:16 +1100)]
View3D: make ndof turntable & orbit speed match

3 years agoBLI_math: axis_angle_to_quat_single
Campbell Barton [Thu, 22 Oct 2015 16:08:17 +0000 (03:08 +1100)]
BLI_math: axis_angle_to_quat_single

Useful to avoid defining a vector for an axis-aligned rotation.
Matches axis_angle_to_mat3_single behavior.

3 years agoFix T46521: Python: bvh.ray_cast doesn't find a plane facing in the other direction...
Sergey Sharybin [Thu, 22 Oct 2015 15:29:52 +0000 (20:29 +0500)]
Fix T46521: Python: bvh.ray_cast doesn't find a plane facing in the other direction under certain circumstances

The issue was caused by wrong sign check. It originally came from more optimized
Cycles code where because of other reasons it wasn't visible yet. But in fact it
should be solved there as well.

3 years agoFix T46569: Crash w/ mask & locked-track enabled
Campbell Barton [Thu, 22 Oct 2015 14:40:36 +0000 (01:40 +1100)]
Fix T46569: Crash w/ mask & locked-track enabled

3 years agoCleanup: remove script ID-types
Campbell Barton [Thu, 22 Oct 2015 14:20:01 +0000 (01:20 +1100)]
Cleanup: remove script ID-types

Unused since 2.4x and unlikely to be reintroduced as ID-types.

3 years agoFix T46561: Crash in outliner delete hierarchy
Campbell Barton [Thu, 22 Oct 2015 07:42:44 +0000 (18:42 +1100)]
Fix T46561: Crash in outliner delete hierarchy

When children & parents were selected in the outliner,
it attempted to free the the object twice.

3 years agoFix T46565: Movie render crash w/o permissions
Campbell Barton [Thu, 22 Oct 2015 05:48:38 +0000 (16:48 +1100)]
Fix T46565: Movie render crash w/o permissions

Rendering to a path that didn't have write permissions would crash.

Also fix error where `G.is_rendering` was left set when rendering failed.

3 years agoBGE: Cleanup ConvertMaterial function.
Porteries Tristan [Wed, 21 Oct 2015 20:28:33 +0000 (22:28 +0200)]
BGE: Cleanup ConvertMaterial function.

- cleanup spaces;
- add braces;
- remove indendation around operator.

3 years agoFix T46524: Use Alpha (Straight/Premultiply) option missing in 2.76, part II.
Bastien Montagne [Wed, 21 Oct 2015 18:06:49 +0000 (20:06 +0200)]
Fix T46524: Use Alpha (Straight/Premultiply) option missing in 2.76, part II.

Different issue actually, here RAWTGA was simply forgotten in the alpha-capable formats...

3 years agoBGE: Fix physics meshes conversion with modifiers.
Porteries Tristan [Wed, 21 Oct 2015 10:15:35 +0000 (12:15 +0200)]
BGE: Fix physics meshes conversion with modifiers.

Previously meshes with modifiers were considerate as empty (no polys).

4 years agoUsual i18n tweaks & fixes...
Bastien Montagne [Tue, 20 Oct 2015 18:08:37 +0000 (20:08 +0200)]
Usual i18n tweaks & fixes...

4 years agoFix T46544: Can't unpack generated image
Campbell Barton [Tue, 20 Oct 2015 16:07:40 +0000 (03:07 +1100)]
Fix T46544: Can't unpack generated image

4 years agoRNA: Change behavior of Image.save()
Campbell Barton [Tue, 20 Oct 2015 15:26:23 +0000 (02:26 +1100)]
RNA: Change behavior of Image.save()

Previously it would save packed file(s),
which would ignore the image.filepath,
making it impossible to set the destination.

Add image.packed_files[...].save() so you can save packed files if its needed.

4 years agoFix T46496: GL Render fails w/ Anti-Aliasing
Campbell Barton [Tue, 20 Oct 2015 13:16:07 +0000 (00:16 +1100)]
Fix T46496: GL Render fails w/ Anti-Aliasing

Needed to check if scaled-multisample-blit is supported.

4 years agoFirst step to handle missing libs/datablocks when reading a file.
Bastien Montagne [Tue, 20 Oct 2015 12:44:57 +0000 (14:44 +0200)]
First step to handle missing libs/datablocks when reading a file.

Idea is, instead of ignoring completely missing linked datablocks, to
create void placeholders for them.

That way, you can work on your file, save it, and find again your missing data once
lib becomes available again. Or you can edit missing lib's path (in Outliner),
save and reload the file, and you are done.

Also, Outliner now shows broken libraries (and placeholders) with a 'broken lib' icon.

Future plans are also to be able to relocate missing libs and reload them at runtime.

Code notes:
    - Placeholder ID is just a regular datablock of same type as expected linked one,
      with 'default' data, and a LIB_MISSING bitflag set.
    - To allow creation of such datablocks, creation of datablocks in BKE was split in two step:
        + Allocation of memory itself.
        + Setting of all internal data to default values.

See also the design task (T43351).

Reviewed by @campbellbarton, thanks a bunch!

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

4 years agoBLI: add new 'memory_utils' module with func checking a whole memory chunk is filled...
Bastien Montagne [Tue, 20 Oct 2015 12:39:08 +0000 (14:39 +0200)]
BLI: add new 'memory_utils' module with func checking a whole memory chunk is filled of zero,
and an helper to ensure all memory of a given structure passed a given member is filled of zero.

4 years agoMinor edits to sytem-info script
Campbell Barton [Tue, 20 Oct 2015 06:38:15 +0000 (17:38 +1100)]
Minor edits to sytem-info script

- list script paths on their own line.
- use title util function.

4 years agoAdd operator to close a window
Campbell Barton [Tue, 20 Oct 2015 04:41:13 +0000 (15:41 +1100)]
Add operator to close a window

Useful for Python scripts, which could duplicate but not close windows.

4 years agoNew function to draw offscreen, and related API changes
Dalai Felinto [Tue, 20 Oct 2015 03:03:00 +0000 (01:03 -0200)]
New function to draw offscreen, and related API changes

This expose the capability of handling offscreen drawing. The initial
support lays the barebones for addons to work with framebuffer objects
and implement 3d viewport offscreen drawing. This can be used by script
writers to make fisheye lens preview, head mounted display support, ...

The complete documentation is here: http://www.blender.org/api/blender_python_api_2_76_1/gpu.offscreen.html

Review and many changes by Campbell Barton (thank you :)

https://developer.blender.org/D1533

4 years agoCleanup: remove _POSIX_C_SOURCE undefine
Campbell Barton [Tue, 20 Oct 2015 03:06:29 +0000 (14:06 +1100)]
Cleanup: remove _POSIX_C_SOURCE undefine

4 years agoBGE: Cleanup BL_Action
Porteries Tristan [Mon, 19 Oct 2015 18:28:05 +0000 (20:28 +0200)]
BGE: Cleanup BL_Action

Remove initialization of m_endtime : fix compile about previous BL_Action cleanup.

4 years agoBGE: Cleanup BL_Action.
Porteries Tristan [Mon, 19 Oct 2015 17:32:54 +0000 (19:32 +0200)]
BGE: Cleanup BL_Action.

- Rename m_localtime to m_localframe to avoid ambiguity : it's a count for the actual action frame, not time.
- Delete m_end : it's unused.

4 years agoPy API docs: fix extracting bmesh.ops from C code.
Campbell Barton [Mon, 19 Oct 2015 16:55:31 +0000 (03:55 +1100)]
Py API docs: fix extracting bmesh.ops from C code.

4 years agoFix T46534: Crash loading corrupt HDR's
Campbell Barton [Mon, 19 Oct 2015 15:05:52 +0000 (02:05 +1100)]
Fix T46534: Crash loading corrupt HDR's

4 years agoCleanup: use UNLIKELY for checking corrupt HDR's
Campbell Barton [Mon, 19 Oct 2015 15:12:41 +0000 (02:12 +1100)]
Cleanup: use UNLIKELY for checking corrupt HDR's

4 years agoBGE: Fix T46381 : last action frame not updated.
Porteries Tristan [Mon, 19 Oct 2015 14:03:40 +0000 (16:03 +0200)]
BGE: Fix T46381 : last action frame not updated.

It fix T46381. Normally BL_Action::Update (manage action time, end, loop…) should be called the same number of times as BL_Action::UpdateIPO (update action position, scale ect… in the game object).
But the bug report shows that UpdateIPO is called one less time than Update. To fix it i revert the commit 362b25b38287cb75e4d22b30bdbc7f47e8eb3fdf and implement a mutex in BL_Action::Update.
Example file : {F245823}

Reviewers: lordloki, kupoman, campbellbarton, youle, moguri, sybren

Reviewed By: youle, moguri, sybren

Maniphest Tasks: T39928, T46381

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

4 years agoFix T46529: Unwrap UV w/ use-subsurf fails
Campbell Barton [Mon, 19 Oct 2015 11:15:03 +0000 (22:15 +1100)]
Fix T46529: Unwrap UV w/ use-subsurf fails

Regression since moving to looptri.

4 years agoGPU: check for blit support, using MSAA FBO's
Campbell Barton [Mon, 19 Oct 2015 01:31:20 +0000 (12:31 +1100)]
GPU: check for blit support, using MSAA FBO's

Used for reading off-screen buffers,
possible cause of failure for drivers that don't support it.

4 years agoFix T46531: Cannot use % in filenames.
Bastien Montagne [Sun, 18 Oct 2015 16:51:08 +0000 (18:51 +0200)]
Fix T46531: Cannot use % in filenames.

Same case as with space char really, one should not use those special chars in
filenames, but they are globally supported by all current FS/OS, so no real reason
to enforce that behvior on users here.

To be backported to 'a' release.

4 years agoBLI_task: fix bad freeing of current task_thread in case POSIX thread creation fails.
Bastien Montagne [Sun, 18 Oct 2015 12:39:37 +0000 (14:39 +0200)]
BLI_task: fix bad freeing of current task_thread in case POSIX thread creation fails.

Trying to MEM_free a single item of a whole MEM_calloc'ated array, tsst...
Luckily looks like POSIX thread creation does not fail often! :P

4 years agoFix T46520: mathutils.bvhtree crashes with distance input.
Bastien Montagne [Sun, 18 Oct 2015 10:09:42 +0000 (12:09 +0200)]
Fix T46520: mathutils.bvhtree crashes with distance input.

Should be backported to 'a' release.