5 years agoCycles Volume Render: support for rendering of homogeneous volume with absorption.
Brecht Van Lommel [Sat, 28 Dec 2013 15:56:19 +0000 (16:56 +0100)]
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

This is work by "storm", Stuart Broadfoot, Thomas Dinges and myself.

5 years agoCode cleanup: move shadow_blocked function into separate file.
Brecht Van Lommel [Sat, 28 Dec 2013 01:56:53 +0000 (02:56 +0100)]
Code cleanup: move shadow_blocked function into separate file.

5 years agoCycles Volume Render: add flags to quickly detect when objects have a volume shader.
Brecht Van Lommel [Sat, 28 Dec 2013 01:27:48 +0000 (02:27 +0100)]
Cycles Volume Render: add flags to quickly detect when objects have a volume shader.

5 years agoCycles Volume Render: work on nodes and closures.
Brecht Van Lommel [Sat, 28 Dec 2013 00:54:44 +0000 (01:54 +0100)]
Cycles Volume Render: work on nodes and closures.

* Henyey-Greenstein scattering closure implementation.
* Rename transparent to absorption node and isotropic to scatter node.
* Volume density is folded into the closure weights.
* OSL support for volume closures and nodes.
* This commit has no user visible changes, there is no volume render code yet.

This is work by "storm", Stuart Broadfoot, Thomas Dinges and myself.

5 years agoFix regression T37971: Crash setting recursive dupli-verts
Campbell Barton [Sat, 28 Dec 2013 14:36:51 +0000 (01:36 +1100)]
Fix regression T37971: Crash setting recursive dupli-verts

5 years agoFix T37939, concern raised in rBd9e0a94: Avoid access to linked node
Lukas Tönne [Sat, 28 Dec 2013 13:51:53 +0000 (14:51 +0100)]
Fix T37939, concern raised in rBd9e0a94: Avoid access to linked node
tree ID data when freeing bNodeTree data blocks, while also making sure
localized node group copies get freed properly.

5 years agoupdate console shell for changes in api
Campbell Barton [Sat, 28 Dec 2013 13:51:51 +0000 (00:51 +1100)]
update console shell for changes in api

5 years agoText3d: avoid calculating the font boundbox scale for every character
Campbell Barton [Sat, 28 Dec 2013 08:45:54 +0000 (19:45 +1100)]
Text3d: avoid calculating the font boundbox scale for every character

5 years agoFix for text3d issue, \n was attempting to find a character too
Campbell Barton [Sat, 28 Dec 2013 08:34:50 +0000 (19:34 +1100)]
Fix for text3d issue, \n was attempting to find a character too

5 years agoFix for 3d fonts loading the character of the string terminator.
Campbell Barton [Sat, 28 Dec 2013 08:04:03 +0000 (19:04 +1100)]
Fix for 3d fonts loading the character of the string terminator.

also remove redundant call to wcslen and ensure FT_Init_FreeType runs
once the font loads.

5 years ago3D Text: use ghash for character lookups
Campbell Barton [Sat, 28 Dec 2013 06:33:19 +0000 (17:33 +1100)]
3D Text: use ghash for character lookups

5 years agoFix for BKE_nurb_handles_autocalc using 2d tests on 3d data
Campbell Barton [Sat, 28 Dec 2013 06:29:58 +0000 (17:29 +1100)]
Fix for BKE_nurb_handles_autocalc using 2d tests on 3d data

5 years agoMath Lib: add dist_squared_to_line_v2, avoids sqrt in scanfill and 3d-text
Campbell Barton [Sat, 28 Dec 2013 06:17:55 +0000 (17:17 +1100)]
Math Lib: add dist_squared_to_line_v2, avoids sqrt in scanfill and 3d-text

5 years agocreation of path from std::string on Windows (VC10/11/12) crashes (access error)
Martijn Berger [Fri, 27 Dec 2013 21:38:46 +0000 (22:38 +0100)]
creation of path from std::string on Windows (VC10/11/12) crashes (access error)

Seems to be a known problem in boost:

Applied the solution but do not know if this is the right place.

Reviewers: dingto, brecht

Reviewed By: dingto

Differential Revision:

5 years agoCycles: Move SIMD utility functions into its own file.
Thomas Dinges [Fri, 27 Dec 2013 20:30:03 +0000 (21:30 +0100)]
Cycles: Move SIMD utility functions into its own file.

Recently added SSE macros for noise texture can be moved here as well, but I leave this for later.

5 years agoBasic scons support for building with Visual Studio 2013 although full MSVC 2013...
Martijn Berger [Fri, 27 Dec 2013 18:46:55 +0000 (19:46 +0100)]
Basic scons support for building with Visual Studio 2013 although full MSVC 2013 support still needs more work in scons itself

5 years agoCycles / Perlin Noise: Optimize noise calculation by using SIMD instructions on CPU.
Thomas Dinges [Fri, 27 Dec 2013 17:48:37 +0000 (18:48 +0100)]
Cycles / Perlin Noise: Optimize noise calculation by using SIMD instructions on CPU.
This makes scenes with a Noise Texture render faster, the BMW file is 12-15% faster now.

Patch by Sv. Lockal, many thanks! :)

5 years agoFix T36474: Blender 2.68a crashes upon rendering
Sergey Sharybin [Fri, 27 Dec 2013 12:52:41 +0000 (18:52 +0600)]
Fix T36474: Blender 2.68a crashes upon rendering

Original issue was caused by wring detection of whether
SS modifier is being applied for render/viewport. After
recent dependency graph commit this was no longer an

But it still might have happen conflict between viewport
draw and scene_update_for_newframe() invoked from render
thread when using external engines like Cycles.

Solved by adding viewport lock while scene is being
updated and objects being exported to the render engine.

Same lock was already used for Blender Internal.

Reviewers: brecht

Reviewed By: brecht

Maniphest Tasks: T36474

Differential Revision:

5 years agoRemove TODO. Those args could be useful in the future.
Sergey Sharybin [Fri, 27 Dec 2013 12:34:36 +0000 (18:34 +0600)]
Remove TODO. Those args could be useful in the future.

5 years agoTypo fix in a comment
Sergey Sharybin [Fri, 27 Dec 2013 11:09:19 +0000 (17:09 +0600)]
Typo fix in a comment

5 years agoCode Cleanup: style
Campbell Barton [Fri, 27 Dec 2013 03:20:46 +0000 (14:20 +1100)]
Code Cleanup: style

5 years agoAPI Docs: use a simpler example for merging namespaces
Campbell Barton [Fri, 27 Dec 2013 03:20:08 +0000 (14:20 +1100)]
API Docs: use a simpler example for merging namespaces

5 years agoCycles / Hair: Avoid duplicate calculations and remove redundant if branch, instead...
Thomas Dinges [Thu, 26 Dec 2013 20:52:23 +0000 (21:52 +0100)]
Cycles / Hair: Avoid duplicate calculations and remove redundant if branch, instead add the condition to the one above.

5 years agoRigidbody: Code cleanup
Sergej Reich [Thu, 26 Dec 2013 20:30:53 +0000 (21:30 +0100)]
Rigidbody: Code cleanup

Make some functions private.
Remove unneeded nested if statements.
Avoid mixing short and bool.

5 years agoRigidbody: Code cleanup
Sergej Reich [Thu, 26 Dec 2013 18:43:42 +0000 (19:43 +0100)]
Rigidbody: Code cleanup

Remove redundant extern keyword.

5 years agoFix T37955: Freestyle render misalignment
Sergey Sharybin [Thu, 26 Dec 2013 20:30:48 +0000 (02:30 +0600)]
Fix T37955: Freestyle render misalignment

Issue was caused by missing objects update for temporary
freestyle objects. This happened because of the fact that
such objects doesn't have any relations, as in they're
corresponding to root nodes in the DAG.

This situation wasn't handled by DAG_threaded_update_begin()
which considered there's only one root node in the DAG.

5 years agoFix out-of-date comment which came from DAG-MT branch
Sergey Sharybin [Thu, 26 Dec 2013 18:38:24 +0000 (00:38 +0600)]
Fix out-of-date comment which came from DAG-MT branch

5 years agoRigidbody: Allow triangle mesh shapes to deform during simulation
Sergej Reich [Thu, 26 Dec 2013 17:15:56 +0000 (18:15 +0100)]
Rigidbody: Allow triangle mesh shapes to deform during simulation

Only supported when using the "Deform" mesh source.

5 years agoRigidbody: Use own structure to store mesh data for collision shapes
Sergej Reich [Thu, 26 Dec 2013 16:49:08 +0000 (17:49 +0100)]
Rigidbody: Use own structure to store mesh data for collision shapes

This gives us better access to the data and should also be faster to

5 years agoRigidbody: Add option to choose mesh source for collision shapes
Sergej Reich [Thu, 26 Dec 2013 16:02:28 +0000 (17:02 +0100)]
Rigidbody: Add option to choose mesh source for collision shapes

The options are:
Base: Base mesh
Deform: shape keys and deform modifiers
Final: All deformations and modifiers

It would be nice to have a way of specifying where exactly in the
modifier stack the collision shape is generated. However this is not
staight forward since the rigid body simulation is not part of the
modifier system and would require hacks to make it work.

5 years agoUsual minor UI messages fixes...
Bastien Montagne [Thu, 26 Dec 2013 16:15:40 +0000 (17:15 +0100)]
Usual minor UI messages fixes...

5 years agoAvoid temporary change of animation data flags for nodes filter
Sergey Sharybin [Thu, 26 Dec 2013 12:46:54 +0000 (18:46 +0600)]
Avoid temporary change of animation data flags for nodes filter

Use temporary runtime flag of filter_mode argument instead.

This commit also fixes some weirdo mix of filter_mode with
filterflag bits.

5 years agoBullet: Update to svn r2719
Sergej Reich [Thu, 26 Dec 2013 11:41:52 +0000 (12:41 +0100)]
Bullet: Update to svn r2719

Fixes part of T37905, fixed constraint didn't work correctly.

5 years agoThreaded object update and EvaluationContext
Sergey Sharybin [Thu, 26 Dec 2013 11:24:42 +0000 (17:24 +0600)]
Threaded object update and EvaluationContext

Made objects update happening from multiple threads. It is a task-based
scheduling system which uses current dependency graph for spawning new
tasks. This means threading happens on object level, but the system is
flexible enough for higher granularity.

Technical details:

- Uses task scheduler which was recently committed to trunk
  (that one which Brecht ported from Cycles).

- Added two utility functions to dependency graph:
  * DAG_threaded_update_begin, which is called to  initialize threaded
    objects update. It will also schedule root DAG node to the queue,
    hence starting evaluation process.

    Initialization will calculate how much parents are to be evaluation
    before current DAG node can be scheduled. This value is used by task
    threads for faster detecting which nodes might be scheduled.

  * DAG_threaded_update_handle_node_updated which is  called from task
    thread function when node was fully handled.

This function decreases num_pending_parents of node children and
schedules children with zero valency.

    As it might have become clear, task thread receives DAG nodes and
    decides which callback to call for it.

    Currently only BKE_object_handle_update is called for object nodes.

    In the future it'll call node->callback() from Ali's new DAG.

- This required adding some workarounds to the render pipeline.
  Mainly to stop using get_object_dm() from modifiers' apply callback.
  Such a call was only a workaround for dependency graph glitch when
  rendering scene with, say, boolean modifiers before displaying
  this scene.

  Such change moves workaround from one place to another, so overall
  hackentropy remains the same.

- Added paradigm of EvaluaitonContext. Currently it's more like just a
  more reliable replacement for G.is_rendering which fails in some

  Future idea of this context is to also store all the local data needed
  for objects evaluation such as local time, Copy-on-Write data and so.

  There're two types of EvaluationContext:

  * Context used for viewport updated and owned by Main. In the future
    this context might be easily moved to Window or Screen to allo
    per-window/per-screen local time.

  * Context used by render engines to evaluate objects for render purposes.
    Render engine is an owner of this context.

  This context is passed to all object update routines.

Reviewers: brecht, campbellbarton

Reviewed By: brecht

CC: lukastoenne
Differential Revision:

5 years agoFix T37945: Crash after undo
Sergey Sharybin [Thu, 26 Dec 2013 10:34:57 +0000 (16:34 +0600)]
Fix T37945: Crash after undo

Issue was caused by some typos in readfile.c made in
original commit of image cache rewrite.

5 years agoSimplify isect_point_poly_v2 functions using angle_signed_v2v2
Campbell Barton [Thu, 26 Dec 2013 09:05:03 +0000 (20:05 +1100)]
Simplify isect_point_poly_v2 functions using angle_signed_v2v2

5 years agoCycles / Hair: Further cleanup of UI and internals.
Thomas Dinges [Thu, 26 Dec 2013 02:25:13 +0000 (03:25 +0100)]
Cycles / Hair: Further cleanup of UI and internals.

* UI: Remove deprecated condition (CURVE_RIBBONS) and hide backface property, when it's hardcoded in C (Curve/Line segments && Ribbons).

* Remove "use_tangent_normal" and "CURVE_KN_TANGENTGNORMAL" as its unused (follow up for last commit).

5 years agoPolyfill: minor changes to which fix rare errors with float precision
Campbell Barton [Thu, 26 Dec 2013 01:21:40 +0000 (12:21 +1100)]
Polyfill: minor changes to which fix rare errors with float precision

5 years agoFix T37946: Error filling ngons
Campbell Barton [Thu, 26 Dec 2013 01:05:42 +0000 (12:05 +1100)]
Fix T37946: Error filling ngons

5 years agoCycles / Hair: Some cleanup and optimizations for hair code.
Thomas Dinges [Thu, 26 Dec 2013 01:02:14 +0000 (02:02 +0100)]
Cycles / Hair: Some cleanup and optimizations for hair code.

* Remove dead code from line segments BVH refine.
CURVE_KN_TANGENTGNORMAL and CURVE_KN_TRUETANGENTGNORMAL are either both true, or both false. Therefore a true/false condition is impossible.
This was a leftover of CURVE_CUSTOM, which was removed in r59234.

* Use "else if" in blender_curves.cpp.

5 years agocorrection to last commit
Campbell Barton [Wed, 25 Dec 2013 22:46:25 +0000 (09:46 +1100)]
correction to last commit

5 years agoCorrect alloc string and comment in makesdna
Campbell Barton [Wed, 25 Dec 2013 22:29:25 +0000 (09:29 +1100)]
Correct alloc string and comment in makesdna

5 years agoFix T37939: Crash on exit (reading from freed node trees)
Campbell Barton [Wed, 25 Dec 2013 21:57:44 +0000 (08:57 +1100)]
Fix T37939: Crash on exit (reading from freed node trees)

5 years agocorrection to last commit
Campbell Barton [Wed, 25 Dec 2013 21:37:28 +0000 (08:37 +1100)]
correction to last commit

5 years agoBGE: Add missing NULL check from recent LOD updates
Campbell Barton [Wed, 25 Dec 2013 21:28:00 +0000 (08:28 +1100)]
BGE: Add missing NULL check from recent LOD updates

5 years agoCode Cleanup: remove object arg to CDDM_from_mesh mesh_create_derived
Campbell Barton [Wed, 25 Dec 2013 21:26:41 +0000 (08:26 +1100)]
Code Cleanup: remove object arg to CDDM_from_mesh mesh_create_derived

5 years agoMissed this in last commit
Sergej Reich [Wed, 25 Dec 2013 18:25:46 +0000 (19:25 +0100)]
Missed this in last commit

5 years ago3D View: Draw rigid body collision shapes.
Sergej Reich [Wed, 25 Dec 2013 18:05:55 +0000 (19:05 +0100)]
3D View: Draw rigid body collision shapes.

5 years ago3D View: Fix drawing bounds for game engine
Sergej Reich [Wed, 25 Dec 2013 18:01:42 +0000 (19:01 +0100)]
3D View: Fix drawing bounds for game engine

Needs to be drawn around the origin to accurately represent collision

5 years agoCode cleanup: no need to switch to threaded alloc, it's done by task pool
Sergey Sharybin [Wed, 25 Dec 2013 14:34:58 +0000 (20:34 +0600)]
Code cleanup: no need to switch to threaded alloc, it's done by task pool

5 years agoUse generic task scheduler for threaded image processor
Sergey Sharybin [Wed, 25 Dec 2013 14:32:13 +0000 (20:32 +0600)]
Use generic task scheduler for threaded image processor

It allows to schedule tasks of smaller size without having
threads overhead or extra worry about splitting tasks into
smaller pieces.

This simplifies code in color management which was manually
splitting task into smaller chunks to keep memory usage low.

Further optimization is possible by avoid malloc called from
threads, but that's how it used to work for ages already
and would be optimized as a separate patch.

5 years agoMotion tracking curves: correct some operator's poll functions
Sergey Sharybin [Wed, 25 Dec 2013 13:35:29 +0000 (19:35 +0600)]
Motion tracking curves: correct some operator's poll functions

Curve selection and transform were allowed in cases track's motion
curve wasn't visible.

5 years agoImplement per-frame track reprojection error visualization
Sergey Sharybin [Sun, 13 Oct 2013 20:26:29 +0000 (22:26 +0200)]
Implement per-frame track reprojection error visualization

It is now possible to display per-frame track reprojection
error in curve view of clip editor. Simply enable corresponding
option in filter buttons.

Currently displayed using blue color which might confuse with
average reprojection error, further color tweaks are possible
and easy.

Also changed icon track x/y curves. Better icons here are
really appreciated.

5 years agoFix T37709: Memory corruption when freeing custom bone shape objects
Sergey Sharybin [Wed, 25 Dec 2013 10:43:26 +0000 (16:43 +0600)]
Fix T37709: Memory corruption when freeing custom bone shape objects

Issue was caused by access to pchan->custom object from channel free
function when freeing all objects from main. Order of objects free
is not defined and such an access might easily end up with access
to freed memory.

We don't need to do user counter stuff when freeing main, so added
an _ex functions with do_id_user flag which is used when freeing main.

We had the same issue with other datablocks, so now it should be
easier to support relevant user counter.

This issue was caused by the fix for T36391, so perhaps that's indeed
high time to do real user counter.

Reviewers: brecht, campbellbarton

Reviewed By: campbellbarton

Maniphest Tasks: T37709

Differential Revision:

5 years agoCycles / OpenCL: Let the OpenCL runtime determine its optimal work-group size automat...
Thomas Dinges [Tue, 24 Dec 2013 19:20:35 +0000 (20:20 +0100)]
Cycles / OpenCL: Let the OpenCL runtime determine its optimal work-group size automatically, by passing a NULL pointer here.

This is recommended in the Intel OpenCL optimization docs ( and I can confirm a small performance increase here (1-2% on nVidia OpenCL, up to 8% on Intel OpenCL).

5 years agoUse HTTPS protocol for arc
Sergey Sharybin [Tue, 24 Dec 2013 16:52:05 +0000 (22:52 +0600)]
Use HTTPS protocol for arc

5 years agoString API: BLI_ascii_strtolower/upper now check NULL terminator
Campbell Barton [Tue, 24 Dec 2013 14:20:46 +0000 (01:20 +1100)]
String API: BLI_ascii_strtolower/upper now check NULL terminator

This wasn't needed before now, but since recent change to bUnit_ReplaceString,
it uses in a context where NULL terminator is expected - best add.
(spotted by Sergey)

5 years agofind_package(OPENAL) does not play nice with our current library naming nonvention
Martijn Berger [Tue, 24 Dec 2013 12:21:56 +0000 (13:21 +0100)]
find_package(OPENAL) does not play nice with our current library naming nonvention

5 years agoFix for own recent commit
Campbell Barton [Tue, 24 Dec 2013 07:56:07 +0000 (18:56 +1100)]
Fix for own recent commit

5 years agoUI: Display alpha checkers in image info's color swatch.
Campbell Barton [Tue, 24 Dec 2013 06:20:37 +0000 (17:20 +1100)]
UI: Display alpha checkers in image info's color swatch.

5 years agoUI: fix for slight glitch drawing image info
Campbell Barton [Tue, 24 Dec 2013 04:06:38 +0000 (15:06 +1100)]
UI: fix for slight glitch drawing image info

Using sub-pixel position made the text clip badly sometimes.

5 years agoFix T37914: Mask modifier behaves differently until painted
Campbell Barton [Tue, 24 Dec 2013 03:26:31 +0000 (14:26 +1100)]
Fix T37914: Mask modifier behaves differently until painted

5 years agoCycles / Hair: No need to calculate curvepoint() when we use Ribbon curves.
Thomas Dinges [Tue, 24 Dec 2013 03:00:27 +0000 (04:00 +0100)]
Cycles / Hair: No need to calculate curvepoint() when we use Ribbon curves.

Also some style cleanup.

5 years agoBMesh optimize face splitting by taking loops rather then verts
Campbell Barton [Tue, 24 Dec 2013 00:04:03 +0000 (11:04 +1100)]
BMesh optimize face splitting by taking loops rather then verts

- add BM_vert_pair_share_face
- add BM_loop_is_adjacent
- remove BM_verts_connect

5 years agoStyle cleanup: BGE
HG1 [Mon, 23 Dec 2013 18:44:54 +0000 (05:44 +1100)]
Style cleanup: BGE

5 years agoCode Cleanup: style
Campbell Barton [Mon, 23 Dec 2013 18:04:29 +0000 (05:04 +1100)]
Code Cleanup: style

5 years agoUI: communicate external data autopack better in the UI.
Simon Repp [Mon, 23 Dec 2013 17:35:32 +0000 (18:35 +0100)]
UI: communicate external data autopack better in the UI.

Previously there was no way to see if autopack was enabled. Now the external
data menu has 3 entries instead of 2:

* Automatically Pack Into .blend (with checkbox to indicate autopack on/off)
* Pack All Into .blend
* Unpack All Into Files

Fixes T37608, includes modifications by Brecht from the original patch.

Reviewed By: brecht

Differential Revision:

5 years agoMove python threading stuff to own file in bf_python_ext
Sergey Sharybin [Mon, 23 Dec 2013 16:48:20 +0000 (22:48 +0600)]
Move python threading stuff to own file in bf_python_ext

This way blender player can easily use BPY_thread_save/restore.
Not so much important for master branch, but crucial to solve
linking issues in threaded depsgraph branch.

5 years agoCMake: attempt to fix Boost detection on Fedora 20, which omits -mt.
Brecht Van Lommel [Mon, 23 Dec 2013 15:52:34 +0000 (16:52 +0100)]
CMake: attempt to fix Boost detection on Fedora 20, which omits -mt.

5 years agoMake makesdna capable of detecting 32bit alignment issues on 64bit platform
Sergey Sharybin [Mon, 23 Dec 2013 15:37:39 +0000 (21:37 +0600)]
Make makesdna capable of detecting 32bit alignment issues on 64bit platform

Summary: Just some extra comparison between native and 32bit structure length was needed.

Reviewers: brecht, campbellbarton

Reviewed By: brecht

Differential Revision:

5 years agoFix T37929: inherit scale for dupli faces was not shown greyed out when it should be.
Brecht Van Lommel [Mon, 23 Dec 2013 15:27:43 +0000 (16:27 +0100)]
Fix T37929: inherit scale for dupli faces was not shown greyed out when it should be.

5 years agoFix compile error on 32 bits linux / windows, wireframe modifier needs padding.
Brecht Van Lommel [Mon, 23 Dec 2013 14:47:24 +0000 (15:47 +0100)]
Fix compile error on 32 bits linux / windows, wireframe modifier needs padding.

Thanks to Scott Petrovic and Jia Wang for submitting fixes.

Differential Revision:
Differential Revision:

5 years agoSyntax correction for gpu docs, D124
Campbell Barton [Mon, 23 Dec 2013 06:24:23 +0000 (17:24 +1100)]
Syntax correction for gpu docs, D124

5 years agoBMesh API: optimize BM_edge_exists().
Campbell Barton [Mon, 23 Dec 2013 05:52:43 +0000 (16:52 +1100)]
BMesh API: optimize BM_edge_exists().

5 years agoBMesh API: make simple, low level functions inline
Campbell Barton [Mon, 23 Dec 2013 05:03:07 +0000 (16:03 +1100)]
BMesh API: make simple, low level functions inline

5 years agoFix for crash when no args where given with -o, -x command line args
Campbell Barton [Mon, 23 Dec 2013 02:08:32 +0000 (13:08 +1100)]
Fix for crash when no args where given with -o, -x command line args

Patch D123 from djnz (Masakazu Ito)

5 years agoUI: Resolve T37917, disable tooltip scaling (zoomout only)
Campbell Barton [Mon, 23 Dec 2013 01:46:50 +0000 (12:46 +1100)]
UI: Resolve T37917, disable tooltip scaling (zoomout only)

5 years agoFix for tooltip right side having zero offset
Campbell Barton [Mon, 23 Dec 2013 01:42:46 +0000 (12:42 +1100)]
Fix for tooltip right side having zero offset

5 years agoFix for converting unfilled 3d text into a mesh
Campbell Barton [Mon, 23 Dec 2013 01:12:40 +0000 (12:12 +1100)]
Fix for converting unfilled 3d text into a mesh

5 years agoDupliverts: avoid calculating normals if not used
Campbell Barton [Sun, 22 Dec 2013 23:53:46 +0000 (10:53 +1100)]
Dupliverts: avoid calculating normals if not used

5 years agoMore CMakeLists.txt changes
Martijn Berger [Sun, 22 Dec 2013 22:24:47 +0000 (23:24 +0100)]
More CMakeLists.txt changes

I added a function that adds all libdir/* to  CMAKE_PREFIX_PATH :

further there where two places where if(MSVC) else (mingq) where defined after each other. I moved those into one place.
The things common to MSVC and mingw are now blow the special code as we set libdir and such things depending on compiler.

Besides find_package() working and some cleanups there should be no functional changes

Reviewers: dingto

Reviewed By: dingto

Differential Revision:

5 years agoCode cleanup / Cycles: Remove CUDA check (we don't support sm_1x anymore) and unused...
Thomas Dinges [Sun, 22 Dec 2013 13:43:37 +0000 (14:43 +0100)]
Code cleanup / Cycles: Remove CUDA check (we don't support sm_1x anymore) and unused hair flag.

5 years agoCode cleanup / Cycles: Remove unused interpolation code for hair triangles, we only...
Thomas Dinges [Sun, 22 Dec 2013 13:13:49 +0000 (14:13 +0100)]
Code cleanup / Cycles: Remove unused interpolation code for hair triangles, we only support cardinal curves.

5 years agoFix T37898: blenderplayer painfully slow in recent builds
Sergey Sharybin [Sun, 22 Dec 2013 09:26:59 +0000 (15:26 +0600)]
Fix T37898: blenderplayer painfully slow in recent builds

Issue was caused by recent image cache rewrite and root of
the issue goes to the fact that blender player doesn't
initialize cache limiter and it uses 32meg of memory only.

This leads to infinite image loading/freeing.

For now disabled cache limiter in game engine, this brings
back old behavior.

In theory we might be smarter here, but better caching
policy is to be discussed.

5 years agoAdd ItemDestroyable to the cache limitor
Sergey Sharybin [Tue, 10 Dec 2013 08:40:09 +0000 (14:40 +0600)]
Add ItemDestroyable to the cache limitor

This callback is used when cache limiter needs to remove
some cached objects when running out of limit.

From blender side it's used to keep painted images always
in memory.

This fixes issue when painted images were removing from
the memory after image cache rewrite.

5 years agoCode Cleanup: de-duplicate constraint checks with armature join
Campbell Barton [Sun, 22 Dec 2013 05:05:09 +0000 (16:05 +1100)]
Code Cleanup: de-duplicate constraint checks with armature join

5 years agoStyle Cleanup: remove preprocessor indentation (updated wiki style guide too)
Campbell Barton [Sun, 22 Dec 2013 03:11:10 +0000 (14:11 +1100)]
Style Cleanup: remove preprocessor indentation (updated wiki style guide too)

5 years agoFix T37910: maya key configuration not working after recent changes.
Brecht Van Lommel [Sat, 21 Dec 2013 22:27:35 +0000 (23:27 +0100)]
Fix T37910: maya key configuration not working after recent changes.

5 years agoFix for extrude poll functions not checking active object
Campbell Barton [Sat, 21 Dec 2013 20:59:24 +0000 (07:59 +1100)]
Fix for extrude poll functions not checking active object

5 years agoerror in recent commit (this is getting ridiculous),
Campbell Barton [Sat, 21 Dec 2013 20:27:07 +0000 (07:27 +1100)]
error in recent commit (this is getting ridiculous),
faces were flipping the wrong way

5 years agoerror in last commit, missing normal update.
Campbell Barton [Sat, 21 Dec 2013 20:19:48 +0000 (07:19 +1100)]
error in last commit, missing normal update.

5 years agoerror in last commit, flag names.
Campbell Barton [Sat, 21 Dec 2013 20:16:41 +0000 (07:16 +1100)]
error in last commit, flag names.

5 years agoModifier: New Wireframe Modifier
Campbell Barton [Sat, 21 Dec 2013 20:08:35 +0000 (07:08 +1100)]
Modifier: New Wireframe Modifier

Based on patch originally by Thomas Beck,
uses options similar to solidify.

5 years agoEditMesh: wireframe tool, add offset and vgroup support (not used yet)
Campbell Barton [Sat, 21 Dec 2013 19:54:37 +0000 (06:54 +1100)]
EditMesh: wireframe tool, add offset and vgroup support (not used yet)

5 years agoFix for mesh deform modifier missing copy for flag.
Campbell Barton [Sat, 21 Dec 2013 17:45:00 +0000 (04:45 +1100)]
Fix for mesh deform modifier missing copy for flag.

5 years agoMesh Modifiers: refactor copying using a generic function
Campbell Barton [Sat, 21 Dec 2013 17:35:52 +0000 (04:35 +1100)]
Mesh Modifiers: refactor copying using a generic function

5 years agoSupport units in modal numinput
Bastien Montagne [Sat, 21 Dec 2013 16:11:43 +0000 (17:11 +0100)]
Support units in modal numinput

This completly changes the way modal numinput is handled. Now, edited expression is a string, which then gets unit- and py-evaluated to get a float value.

We gain many power and flexibility, but lose a few "shortcuts" like '-' to negate, or '/' to inverse (if they are really needed, we still can add them with modifiers, like e.g. ctrl-/ or so).

- units (cm, ", deg, etc.).
- basic operations from python/BKE_unit (+, *, **, etc.), and math constants and functions (pi, sin, etc.).
- you can navigate in edited value (left/right key, ctrl to move by block) and insert/delete chars, e.g. to fix a typo without having to rewrite everything.
- you can go to next/previous value with (ctrl-)TAB key.
- As before, hitting backspace after having deleted all leading chars will first reset the edited value to init state, and on second press, the whole "modal numinput" editing will be cancelled, going back to usual transform with mouse.

- Did not touch to how values are shown in header when modal numinput is not enabled (would do that in another commit), so this is still quite inconsistent.
- Added back radian support in BKE_unit.
- Added arcminute/arcsecond to BKE_unit.
(those unit changes affect all angle UI controls, btw, so you can now enter radians or longitude/latitude values when in degrees units).

Related to T37600.

Reviewers: brecht, campbellbarton, carter2422

Reviewed By: brecht, campbellbarton, carter2422
Thanks everybody!

Differential Revision:

5 years agoFix T37906: Adding force field settings to boids gives hard crash
Sergey Sharybin [Sat, 21 Dec 2013 14:35:47 +0000 (20:35 +0600)]
Fix T37906: Adding force field settings to boids gives hard crash

Was a regression since fix for another bug T37189.

5 years agoFix T37907: Crash when change screen layout to "Motion Tracking"
Sergey Sharybin [Sat, 21 Dec 2013 14:26:23 +0000 (20:26 +0600)]
Fix T37907: Crash when change screen layout to "Motion Tracking"

Was a bug in recent change from my own.

Also fixed cache line being displayed twice.

5 years agoCleanup: Code and style cleanup for Cycles curve export code.
Thomas Dinges [Fri, 20 Dec 2013 23:20:16 +0000 (00:20 +0100)]
Cleanup: Code and style cleanup for Cycles curve export code.