blender.git
3 years agoFix Cycles OpenCL textures after recent CUDA fix.
Brecht Van Lommel [Mon, 15 Aug 2016 14:17:47 +0000 (16:17 +0200)]
Fix Cycles OpenCL textures after recent CUDA fix.

kernel_textures.h is included in device_opencl.cpp, so we can't check
__KERNEL_OPENCL__ there.

3 years agoFix OpenGL backtrace build errors, without disabling warnings.
Brecht Van Lommel [Mon, 15 Aug 2016 13:34:41 +0000 (15:34 +0200)]
Fix OpenGL backtrace build errors, without disabling warnings.

3 years agoTentative compile fix after recent gpu debug changes
Jens Verwiebe [Mon, 15 Aug 2016 11:46:38 +0000 (13:46 +0200)]
Tentative compile fix after recent gpu debug changes

3 years agoOpenGL: debug context on Windows
Mike Erwin [Mon, 15 Aug 2016 08:49:07 +0000 (04:49 -0400)]
OpenGL: debug context on Windows

Enable based on --debug-gpu at the command line. Linux already works
this way.

This commit in master (2.78 timeframe) is the smallest change that gets
the desired result. I did a similar commit in blender2.8. Most ongoing
GL debug work will go into 2.8, not 2.7x.

In support of T49089

3 years agoOpenGL: backtrace on errors (--debug-gpu)
Mike Erwin [Mon, 15 Aug 2016 08:00:59 +0000 (04:00 -0400)]
OpenGL: backtrace on errors (--debug-gpu)

Backtrace so we can pinpoint where the GL error came from. Then fflush
on severe errors in case it's severe enough to crash Blender.

3 years agoOpenGL: enhance debug output
Mike Erwin [Tue, 9 Aug 2016 05:29:58 +0000 (01:29 -0400)]
OpenGL: enhance debug output

When running blender --debug-gpu

Display which debug facilities are available. One of these, in order of preference:
- OpenGL 4.3
- KHR_debug
- ARB_debug_output
- AMD_debug_output

All messages are logged now, not just errors. Will probably turn some of these off later.

GL_DEBUG_OUTPUT_SYNCHRONOUS lets us break on errors and backtrace to the exact trouble spot.

Callers of GPU_string_marker no longer pass in a message length, just the message itself (null terminated).

Apple provides no GL debug logging features.

3 years agoRevert "Cycles: Use half storage for 16bit files (e.g. 16bit pngs) as well."
Thomas Dinges [Sun, 14 Aug 2016 23:01:43 +0000 (01:01 +0200)]
Revert "Cycles: Use half storage for 16bit files (e.g. 16bit pngs) as well."

After discussion in IRC, 16bit int should not be converted to half, too much precision loss.

3 years agoFix CUDA compilation after OpenCL changes.
Thomas Dinges [Sun, 14 Aug 2016 22:04:19 +0000 (00:04 +0200)]
Fix CUDA compilation after OpenCL changes.

3 years agoCycles: Use half storage for 16bit files (e.g. 16bit pngs) as well.
Thomas Dinges [Sun, 14 Aug 2016 20:22:21 +0000 (22:22 +0200)]
Cycles: Use half storage for 16bit files (e.g. 16bit pngs) as well.

Note: This only works for textures loaded from disk via OIIO, not packed textures. That's still a ToDo.

3 years agoCycles microdisplacement: Move call to tessellate() from addon to Cycles
Mai Lavelle [Sun, 14 Aug 2016 16:41:45 +0000 (12:41 -0400)]
Cycles microdisplacement: Move call to tessellate() from addon to Cycles

By calling `tessellate()` from the mesh manager in Cycles we can do pre/post
processing or even threaded tessellation without concerning client side code
with the details.

3 years agoCycles: Add single channel texture support for OpenCL.
Thomas Dinges [Sun, 14 Aug 2016 18:21:08 +0000 (20:21 +0200)]
Cycles: Add single channel texture support for OpenCL.

This way OpenCL devices can also benefit from a smaller memory footprint, when using e.g. bumpmaps (greyscale, 1 channel).

Additional target for my GSoC 2016.

3 years agoPrevent max stiffness values from going under normal stiffness values in cloth stiffn...
Luca Rood [Sat, 13 Aug 2016 16:40:22 +0000 (19:40 +0300)]
Prevent max stiffness values from going under normal stiffness values in cloth stiffness scaling.

When updating the max values under stiffness scaling, they clip at the normal stiffness values
as expected, however when updating stiffness values, you could set them higher than the max
values, and the max values weren't updated accordingly. As the stiffness scaling computes using
the absolute difference between the max values and the stiffness values, you got higher
stiffnesses in scaled areas even though your max is actually lower than the normal stiffness.

This diff fixes that behaviour, by updating the max values to be equal to the stiffness whenever
you set a higher stiffness than the max value.

Also, I have initialized the max values to the same as the stiffnesses, as they were previously
just set to zero, and caused the same problem described above.

Reviewers: lukastoenne

Reviewed By: lukastoenne

Tags: #physics

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

3 years agoGPencil: Cleanup code
Antonioya [Sat, 13 Aug 2016 14:59:53 +0000 (16:59 +0200)]
GPencil: Cleanup code

3 years agoFix T49082: Intermediate update call when making links can change group socket layout.
Lukas Tönne [Sat, 13 Aug 2016 14:31:46 +0000 (16:31 +0200)]
Fix T49082: Intermediate update call when making links can change group socket layout.

Node tree update calls in the middle of a socket loop are dangerous, they can change sockets
on group nodes and link instances in particular. Updates should only happen after the operator
has finished.

Simply removed the extra convenience check for validity now. Worst case an invalid (red) link
is created which can be removed by the user as well and should simply be ignored by node systems.

The update system in nodes needs a complete rewrite to handle complex cases like this, where an
operator may need to react to changes during its execution.

3 years agoAdd DNA_struct_find (useful for version patching)
Julian Eisel [Fri, 12 Aug 2016 23:40:19 +0000 (01:40 +0200)]
Add DNA_struct_find (useful for version patching)

3 years agoFix error in GPencil V2 version patching
Julian Eisel [Fri, 12 Aug 2016 23:29:17 +0000 (01:29 +0200)]
Fix error in GPencil V2 version patching

GPencil conversion would just always run for file version 2.77.3. This wasn't an issue in master, but possibly for other branches that used the 2.77.3 block.

Wasn't aware that you have to add the asterisk for pointers either, this is kinda weird. Anyway, it's running correctly now.

3 years agoDepsgraph: tag relations for update when aterial slots changes
Sergey Sharybin [Fri, 12 Aug 2016 12:59:11 +0000 (14:59 +0200)]
Depsgraph: tag relations for update when aterial slots changes

New dependency graph puts materials to the graph in order to deal with animation
assigned to them and things like that. This leads us to a requirement to update
relations when slots changes.

This fixes: T49075 Assignment of a keyframed material using the frame_change_pre handler
                   doesn't update the keyframe using the new dependency graph

3 years agoDepsgraph: Tag relations for update when making datablocks single user
Sergey Sharybin [Fri, 12 Aug 2016 11:58:48 +0000 (13:58 +0200)]
Depsgraph: Tag relations for update when making datablocks single user

This is mainly required for the new dependency graph where non-object
datablocks are a part of dependency graph.

This solves issue when making mesh shared by multiple objects a single
user one.

3 years agoFix T49045: splash not working correctly on OS X, after recent bugfix.
Brecht Van Lommel [Thu, 11 Aug 2016 23:19:22 +0000 (01:19 +0200)]
Fix T49045: splash not working correctly on OS X, after recent bugfix.

3 years agoFix T49071: Cycles OSL build problem with oslc compilers that can't find their own...
Brecht Van Lommel [Thu, 11 Aug 2016 23:01:09 +0000 (01:01 +0200)]
Fix T49071: Cycles OSL build problem with oslc compilers that can't find their own stdosl.h.

3 years agoCycles: Enable half float support (4 channels and 1 channel) on CUDA.
Thomas Dinges [Thu, 11 Aug 2016 20:47:53 +0000 (22:47 +0200)]
Cycles: Enable half float support (4 channels and 1 channel) on CUDA.

Atm OpenEXR half files benefit from this and will use only 1/2 of the memory now. More space for HDRs!

Part of my GSoC 2016.

3 years agoCycles: Change code order for Image Data Types.
Thomas Dinges [Thu, 11 Aug 2016 20:30:03 +0000 (22:30 +0200)]
Cycles: Change code order for Image Data Types.

Now we have the 4 component ones first (float4, byte4, half4) followed by the 1 component ones (float, byte, half).
Makes code a bit more consistent and also reduces code a bit when enabling half support on GPU in next commit.

This also exposed a typo in half CPU images for 3D textures, which wasn't used yet, but good to have that one fixed anyway.

3 years agoCycles: Fix change of sign warning
Mai Lavelle [Thu, 11 Aug 2016 19:09:58 +0000 (15:09 -0400)]
Cycles: Fix change of sign warning

3 years agoCycles: Remove odd definition from CMake file
Mai Lavelle [Thu, 11 Aug 2016 18:35:43 +0000 (14:35 -0400)]
Cycles: Remove odd definition from CMake file

This was causing Cycles standalone to fail to build from Blender repo.
Hopefully nothing breaks from removing this.

3 years agoFix T49004 and motion blur of cloth, softbody, etc past the end frame.
Alexander Gavrilov [Thu, 11 Aug 2016 10:36:29 +0000 (13:36 +0300)]
Fix T49004 and motion blur of cloth, softbody, etc past the end frame.

Point cache read code contains checks designed to prevent it reading
stale data when the relevant simulation code should instead compute
the next frame from the previous one. However in some situations like
motion blur subframes the simulation can't possibly do it and just
exits. This causes completely incorrect motion blur at or after the
last cached frame.

To fix, add a parameter that tells the cache code whether it should
apply the checks and exit, or read what it can even if stale (true
means exactly same as old behavior).

Doing this in cache rather than clamping the frame number better in
the caller lets it handle the case of incomplete cache that stops
before the official last frame.

Reviewed By: mont29, lukastoenne

Maniphest Tasks: T49004

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

3 years agoCycles: Use static assert to control structures alignment
Sergey Sharybin [Thu, 11 Aug 2016 07:52:39 +0000 (09:52 +0200)]
Cycles: Use static assert to control structures alignment

3 years agoRevert "Cycles Tests: Add test for correct 16 byte alignment of KernelData structs"
Sergey Sharybin [Thu, 11 Aug 2016 08:08:23 +0000 (10:08 +0200)]
Revert "Cycles Tests: Add test for correct 16 byte alignment of KernelData structs"

Using unit tests is a wrong way to control static behavior of the
application. They should only be used for checking dynamic behavior,
all the rest is easily controllable at compile time.

Doing tests at ocmpile time are actually more robust approach since
we don't have strict policy of runnign unit tests before accepting
any change.

Proper alignment control is coming shortly.

This reverts commit 7c3a06c34918567e6b0ab67bded60725ff63073b.

3 years agoCycles Tests: Add test for correct 16 byte alignment of KernelData structs
Lukas Stockner [Wed, 10 Aug 2016 18:48:35 +0000 (20:48 +0200)]
Cycles Tests: Add test for correct 16 byte alignment of KernelData structs

3 years agoCycles Standalone: Fix building after microdisp changes
Mai Lavelle [Wed, 10 Aug 2016 18:06:43 +0000 (14:06 -0400)]
Cycles Standalone: Fix building after microdisp changes

3 years agoCycles: Fix KernelIntegrator padding to 16-byte boundary
Lukas Stockner [Wed, 10 Aug 2016 18:02:08 +0000 (20:02 +0200)]
Cycles: Fix KernelIntegrator padding to 16-byte boundary

3 years agoUpdated install_deps.sh to OSD 3.0.5 (and switch from git repo to download archive...
Bastien Montagne [Wed, 10 Aug 2016 17:18:53 +0000 (19:18 +0200)]
Updated install_deps.sh to OSD 3.0.5 (and switch from git repo to download archive of sources).

3 years agoCycles Standalone: Add option to set the tile size from the command line
Lukas Stockner [Mon, 8 Aug 2016 19:09:12 +0000 (21:09 +0200)]
Cycles Standalone: Add option to set the tile size from the command line

Since the optimal values depend on the device used, this option doesn't make much sense in the XML.
Therefore, it's now specified via the command line, just like the device itself.

3 years agoCycles: Correct maximum number of textures on pre-Kepler CUDA cards
Lukas Stockner [Wed, 10 Aug 2016 15:17:46 +0000 (17:17 +0200)]
Cycles: Correct maximum number of textures on pre-Kepler CUDA cards

Commit c96ae81160ad added three data textures and therefore removed three image texture slots, but the value in util_textures.h wasn't updated.

3 years agoGPencil: Avoid segment fault if new stroke function is called without colorname
Antonioya [Wed, 10 Aug 2016 13:51:40 +0000 (15:51 +0200)]
GPencil: Avoid segment fault if new stroke function is called without colorname

3 years agoGPencil: Rename color name property to keep consistency in naming
Antonioya [Wed, 10 Aug 2016 10:20:02 +0000 (12:20 +0200)]
GPencil: Rename color name property to keep consistency in naming

3 years agoFix crash in id remapping of Graph editor.
Bastien Montagne [Tue, 9 Aug 2016 18:00:53 +0000 (20:00 +0200)]
Fix crash in id remapping of Graph editor.

dopsheet data pointer is not guaranteed to be set it seems...

3 years agoCycles: Use proper property getter
Sergey Sharybin [Tue, 9 Aug 2016 14:37:40 +0000 (16:37 +0200)]
Cycles: Use proper property getter

3 years agoAttempt to fix previous commit for non-c++11 builds
Sergey Sharybin [Tue, 9 Aug 2016 13:47:51 +0000 (15:47 +0200)]
Attempt to fix previous commit for non-c++11 builds

3 years agoFix for isfinite breaking builds when WITH_CXX11 is enabled.
Lukas Tönne [Tue, 9 Aug 2016 13:32:58 +0000 (15:32 +0200)]
Fix for isfinite breaking builds when WITH_CXX11 is enabled.

This happens when cmath.h is included after math.h in cpp code.
Kudos to Sergey for pointing this out.

3 years agoFix T48916: Proxy Custom File is broken
Sergey Sharybin [Tue, 9 Aug 2016 12:58:34 +0000 (14:58 +0200)]
Fix T48916: Proxy Custom File is broken

3 years agoFix T49027: Sequence uses too much memory when rendering scene with lots of movie...
Sergey Sharybin [Tue, 9 Aug 2016 12:33:00 +0000 (14:33 +0200)]
Fix T49027: Sequence uses too much memory when rendering scene with lots of movie strips

Now we free sequencer cache and close all unneeded FFmpeg handles when rendering.
This is the same logic as image sequence memory freeding.

3 years agoCMake: Once again, don't use find_package to get hardcoded libraries
Sergey Sharybin [Tue, 9 Aug 2016 10:37:25 +0000 (12:37 +0200)]
CMake: Once again, don't use find_package to get hardcoded libraries

3 years agoCMake: Remove hardcoded DIR_ROOT for alembic and MinGW
Sergey Sharybin [Tue, 9 Aug 2016 10:35:00 +0000 (12:35 +0200)]
CMake: Remove hardcoded DIR_ROOT for alembic and MinGW

Do it for until precompiled libraries are there so we can allow
MinGW users to compile their own library and pass it via ROOT_DIR.

3 years agoCMake: Use proper way to define debug/release libraries for alembic
Sergey Sharybin [Tue, 9 Aug 2016 10:29:59 +0000 (12:29 +0200)]
CMake: Use proper way to define debug/release libraries for alembic

Please do not spread platform+library specific code all over the CMake file,
we already have sections dedicated to that.

3 years agoCMake: Do not force set root folder for Alembic
Sergey Sharybin [Tue, 9 Aug 2016 10:27:17 +0000 (12:27 +0200)]
CMake: Do not force set root folder for Alembic

it is incorrect to set ROOT_DIR and then call find_package.

If something is expected to be in a given location use hardcoded
locations (for the precompiled libraries). Otherwise just use
find_package() and let users to set ROOT_DIT when it is required.

3 years agoCycles: avoid making NaNs in Vector Math node by normalizing zero vectors.
Alexander Gavrilov [Tue, 9 Aug 2016 10:20:08 +0000 (13:20 +0300)]
Cycles: avoid making NaNs in Vector Math node by normalizing zero vectors.

Since inputs are user controlled, the node can't assume they aren't zero.

3 years agoCUDA: We don't support Toolkits < 7.5, update error message.
Thomas Dinges [Tue, 9 Aug 2016 09:41:25 +0000 (11:41 +0200)]
CUDA: We don't support Toolkits < 7.5, update error message.

3 years agoBugfix. glDisable with bad enum argument in GPU_texture_unbind
Alexander Romanov [Tue, 9 Aug 2016 09:29:14 +0000 (12:29 +0300)]
Bugfix. glDisable with bad enum argument in GPU_texture_unbind

Reported by @panzergame in D1414.

`glDisable` calls with bad enum argument `GL_TEXTURE_2D_MULTISAMPLE` that came from this line:
`tex->target = (n == 1) ? GL_TEXTURE_1D : (samples ? GL_TEXTURE_2D_MULTISAMPLE : GL_TEXTURE_2D);`

Reviewers: brecht

Reviewed By: brecht

Subscribers: AlexKowel, yurikovelenov, panzergame

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

3 years agoCycles: Fix crash in empty scenes
Julian Eisel [Tue, 9 Aug 2016 02:32:38 +0000 (04:32 +0200)]
Cycles: Fix crash in empty scenes

To recreate, just delete default cube and render.

Simple fix, but @maiself or @sergey may want to double-check ;)

3 years agoFix Cycles CUDA adaptive kernel not working correctly after recent closure changes.
Brecht Van Lommel [Mon, 8 Aug 2016 23:00:57 +0000 (01:00 +0200)]
Fix Cycles CUDA adaptive kernel not working correctly after recent closure changes.

3 years agoAlembic: fix finding boost headers for win32
lazydodo [Mon, 8 Aug 2016 22:57:04 +0000 (16:57 -0600)]
Alembic: fix finding boost headers for win32

3 years agoMake previous alembic fix only apply to MSVC
lazydodo [Mon, 8 Aug 2016 20:15:42 +0000 (14:15 -0600)]
Make previous alembic fix only apply to MSVC

3 years agoFix extra ; warning for OpenCL as well.
Thomas Dinges [Mon, 8 Aug 2016 18:00:44 +0000 (20:00 +0200)]
Fix extra ; warning for OpenCL as well.

3 years agoAlembic/ msvc : Link alembic_d.lib instead of alembic.lib when doing debug builds.
lazydodo [Mon, 8 Aug 2016 17:19:41 +0000 (11:19 -0600)]
Alembic/ msvc : Link alembic_d.lib instead of alembic.lib when doing debug builds.

3 years agoFix ID types DAG update tagging.
Kévin Dietrich [Mon, 8 Aug 2016 15:51:15 +0000 (17:51 +0200)]
Fix ID types DAG update tagging.

The first character of the ID type was used to tag IDs for updates which
is weak since different IDs can have the same first character (for
example meshes, materials and metaballs), causing unnecessary updates of
unrelated IDs.

Now we use a unique index per ID type to tag for updates, unifying IDs
arrays indexing along the way.

Reviewers: sergey, mont29

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

3 years agoBGE: Call DNA_sdna_current_init when launching blenderplayer.
Porteries Tristan [Mon, 8 Aug 2016 15:39:34 +0000 (15:39 +0000)]
BGE: Call DNA_sdna_current_init when launching blenderplayer.

Don't calling DNA_sdna_current_init was creating a crash because a global uninitialized
variable was used when reading blender files.

3 years agoCycles: Fix compilation on Cycles unit tests after recent changes
Sergey Sharybin [Mon, 8 Aug 2016 13:09:34 +0000 (15:09 +0200)]
Cycles: Fix compilation on Cycles unit tests after recent changes

3 years agoDisable depth buffer writes while rendering smoke in the viewport.
Alexander Gavrilov [Mon, 8 Aug 2016 10:48:03 +0000 (13:48 +0300)]
Disable depth buffer writes while rendering smoke in the viewport.

Depth buffer values are used by the viewport pan and zoom code to
adjust response scaling factors between mouse and viewport movement.
Letting smoke write to the buffer confuses it and causes the camera
to get stuck and move very slowly inside smoke domains, because it
thinks it is very close to an object.

3 years agoGPencil: Cleanup - Rename function for better naming
Antonioya [Mon, 8 Aug 2016 09:26:00 +0000 (11:26 +0200)]
GPencil: Cleanup - Rename function for better naming

The old function name was not clear enough

3 years agoGPencil: Move polygon to back only if something was drawn
Antonioya [Mon, 8 Aug 2016 09:21:44 +0000 (11:21 +0200)]
GPencil: Move polygon to back only if something was drawn

If the user enable polygon draw and press ESC before drawing something,
the last stroke must not be moved back.

3 years agoCycles: Remove set but unused variable
Sergey Sharybin [Mon, 8 Aug 2016 08:50:23 +0000 (10:50 +0200)]
Cycles: Remove set but unused variable

3 years agoCycles: Quiet warning with WITH_OPENSUBDIV disabled
Julian Eisel [Sun, 7 Aug 2016 21:20:22 +0000 (23:20 +0200)]
Cycles: Quiet warning with WITH_OPENSUBDIV disabled

Checked with @maiself, for now going with this simple solution.

3 years agoCycles: fix objects disappearing when starting or stopping movement.
Alexander Gavrilov [Sun, 7 Aug 2016 19:41:35 +0000 (22:41 +0300)]
Cycles: fix objects disappearing when starting or stopping movement.

Another issue with the modified particle motion blur fix: since
pre and post are used as validity markers, they must be set even
if there is no actual motion, like the original bool flags were.
Otherwise an object starting to move or stopping is interpreted
as having invalid blur data and hidden.

3 years agoFix local view editing broken after changing object's layer from non-local view
Julian Eisel [Sun, 7 Aug 2016 18:46:05 +0000 (20:46 +0200)]
Fix local view editing broken after changing object's layer from non-local view

Wasn't copying back local view bytes to object after changing layer.

Steps to reproduce were:
* Split 3D view in default startup.blend
* Enter local view in one of the 3D views
* Move default cube to different layer *in the other 3D view* (the one that's not in local view)
* Try transforming object from 3D View that's in local view (should lag)

3 years agoCycles microdisplacement: Move displacement options from mesh to material settings
Mai Lavelle [Tue, 2 Aug 2016 09:13:58 +0000 (05:13 -0400)]
Cycles microdisplacement: Move displacement options from mesh to material settings

Displacement is now a per material setting, which means old files will have to
be updated if they had used displacement. Cool side effect of this change is
material previews now show displacement.

Reviewed By: brecht

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

3 years agoSet WIN32_WINNT for all windows platforms, not just x64
lazydodo [Sun, 7 Aug 2016 17:00:35 +0000 (11:00 -0600)]
Set WIN32_WINNT for all windows platforms, not just x64

3 years agoCycles microdisplacement: Support for Catmull-Clark subdivision via OpenSubdiv
Mai Lavelle [Sun, 17 Jul 2016 02:57:06 +0000 (22:57 -0400)]
Cycles microdisplacement: Support for Catmull-Clark subdivision via OpenSubdiv

Enables Catmull-Clark subdivision meshes with support for creases and attribute
subdivision. Still waiting on OpenSubdiv to fully support face varying
interpolation for subdividing uv coordinates tho. Also there may be some
inconsistencies with Blender's subdivision which will be resolved at a
later time.

Code for reading patch tables and creating patch maps is borrowed
from OpenSubdiv.

Reviewed By: brecht

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

3 years agoGPencil: Handle drawing on back for polygons
Antonioya [Sun, 7 Aug 2016 10:16:44 +0000 (12:16 +0200)]
GPencil: Handle drawing on back for polygons

The polygons must move the stroke to back only when polygon is complete

3 years agoGPencil: Add option to draw new strokes on back of layer
Antonioya [Fri, 5 Aug 2016 21:03:51 +0000 (23:03 +0200)]
GPencil: Add option to draw new strokes on back of layer

For artist point of view is very useful to have an option to draw by
default the new strokes on back of all strokes in the layer.

3 years agoGPencil: Fix error in arrange strokes
Antonioya [Fri, 5 Aug 2016 19:09:30 +0000 (21:09 +0200)]
GPencil: Fix error in arrange strokes

During code review a field was renamed, but one line was missing.

3 years agoGPencil: Do not disable continuous drawing if click out of drawing area
Antonioya [Fri, 5 Aug 2016 16:12:17 +0000 (18:12 +0200)]
GPencil: Do not disable continuous drawing if click out of drawing area

Do not clear continuous drawing. This code was related to a previous
test and must be removed.

3 years agoDon't hide on/off buttons of the Softbody modifier when there's Collision.
Alexander Gavrilov [Sun, 7 Aug 2016 13:45:31 +0000 (16:45 +0300)]
Don't hide on/off buttons of the Softbody modifier when there's Collision.

From source code history, it seems this behavior is a relic of a very
old limitation when the same object couldn't be both a Softbody and a
Collision object. In those times if somehow both modifiers were added
to an object, Softbody auto-disabled itself and buttons were hidden.

Now however there is no problem having both modifiers on an object,
so there is no point hiding the buttons. The same exact buttons are
available on the physics tab in any case.

3 years agoParticles: don't output nonsense UV data for Grid distribution particles.
Alexander Gavrilov [Sun, 7 Aug 2016 10:48:25 +0000 (13:48 +0300)]
Particles: don't output nonsense UV data for Grid distribution particles.

As reported in T48928, From Dupli UV is not supported for grid
distribution, and running the normal code as usual simply produces
nonsense data, because fuv is used to hold orco instead of
interpolation factors for uv, and num is zero.

Since support won't be added in 2.78, just stop outputting nonsense.

3 years agoFix pretty stupid mistake in last 'append fix' commit (rB50c017b6eabd).
Bastien Montagne [Sun, 7 Aug 2016 08:02:17 +0000 (10:02 +0200)]
Fix pretty stupid mistake in last 'append fix' commit (rB50c017b6eabd).

3 years agoCleanup: add missing ID types to BKE_library_idtype_can_use_idtype().
Bastien Montagne [Sat, 6 Aug 2016 10:56:15 +0000 (12:56 +0200)]
Cleanup: add missing ID types to BKE_library_idtype_can_use_idtype().

3 years agoFix T49028: crash when copying a scene without grease pencil data.
Kévin Dietrich [Sat, 6 Aug 2016 10:43:37 +0000 (12:43 +0200)]
Fix T49028: crash when copying a scene without grease pencil data.

3 years agoCleanup: better not split UI strings when possible...
Bastien Montagne [Sat, 6 Aug 2016 09:27:05 +0000 (11:27 +0200)]
Cleanup: better not split UI strings when possible...

3 years agoCleanup some new gpencil rna functions names.
Bastien Montagne [Sat, 6 Aug 2016 09:22:34 +0000 (11:22 +0200)]
Cleanup some new gpencil rna functions names.

Convention for properties callback names is to prefix them with a version of the RNA struct name.

3 years agoBasic Alembic support
Kévin Dietrich [Sat, 6 Aug 2016 04:20:37 +0000 (06:20 +0200)]
Basic Alembic support

All in all, this patch adds an Alembic importer, an Alembic exporter,
and a new CacheFile data block which, for now, wraps around an Alembic
archive. This data block is made available through a new modifier ("Mesh
Sequence Cache") as well as a new constraint ("Transform Cache") to
somewhat properly support respectively geometric and transformation data
streaming from alembic caches.

A more in-depth documentation is to be found on the wiki, as well as a
 guide to compile alembic: https://wiki.blender.org/index.php/
User:Kevindietrich/AlembicBasicIo.

Many thanks to everyone involved in this little project, and huge shout
out to "cgstrive" for the thorough testings with Maya, 3ds Max, Houdini
and Realflow as well as @fjuhec, @jensverwiebe and @jasperge for the
custom builds and compile fixes.

Reviewers: sergey, campbellbarton, mont29

Reviewed By: sergey, campbellbarton, mont29

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

3 years agoAdd the collision group option to the UI for boid particle physics.
Alexander Gavrilov [Sat, 6 Aug 2016 07:49:42 +0000 (10:49 +0300)]
Add the collision group option to the UI for boid particle physics.

The option already works, just missing from the ui since it
has completely different option set from newtonian and fluid.

3 years agoFix T26658: particles stopped or bounced by 100% permeability colliders.
Alexander Gavrilov [Fri, 22 Jul 2016 15:55:37 +0000 (18:55 +0300)]
Fix T26658: particles stopped or bounced by 100% permeability colliders.

There were two issues here. One is that the fix done originally for this
bug only checks for colliding with the same face as the single preceeding
hit. If the particle hits an edge or vertex of the collider, it in fact
hits two or more faces, so the loop ends up cycling between first two
of them and reaches the max collision limit.

The fix is to disable the collider for the sim step once a permeability
roll succeeds, by adding it to a skip list. Skipping just one face causes
some particles to bounce at odd angles in case of partial permeability.

The second problem was that the collider bounced back a small percentage
of particles, and the cause seemed to be that the code was set to flip
the velocity if the particle was just past the collider but still within
collision distance. Inverting both values causes a half permeable collider
to stop particles, so it seems that this if branch shouldn't bounce at all.

Test file: {F327322}

Reviewers: lukastoenne, brecht

Reviewed By: brecht

Subscribers: brecht, #physics

Maniphest Tasks: T26658

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

3 years agoFix wrong property type usage
Julian Eisel [Sat, 6 Aug 2016 04:32:44 +0000 (06:32 +0200)]
Fix wrong property type usage

Prints error on startup.

3 years agoCycles: Add AttributeDescriptor
Mai Lavelle [Fri, 1 Jul 2016 21:36:27 +0000 (17:36 -0400)]
Cycles: Add AttributeDescriptor

Adds a descriptor for attributes that can easily be passed around and extended
to contain more data. Will be used for attributes on subdivision meshes.

Reviewed By: brecht

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

3 years agoFix for Cycles particle motion blur hiding fix.
Brecht Van Lommel [Fri, 5 Aug 2016 22:38:23 +0000 (00:38 +0200)]
Fix for Cycles particle motion blur hiding fix.

My mistake in modifying the patch.

3 years agoFix T49023: Segfault when switching brushes while renaming another brush.
Bastien Montagne [Fri, 5 Aug 2016 21:33:22 +0000 (23:33 +0200)]
Fix T49023: Segfault when switching brushes while renaming another brush.

rna_GPencilBrush_name_set() was trying to use a mere bGPDbrush as a complete ToolSettings,
was doomed to fail...

3 years agoGPencil: Tweaks to layout to try and get the spacing a bit nicer
Joshua Leung [Fri, 5 Aug 2016 15:46:42 +0000 (03:46 +1200)]
GPencil: Tweaks to layout to try and get the spacing a bit nicer

Currently, the lack of spacing (or rather, odd spacing/clumping) in places
seemed a bit off.

3 years agoGPencil: Various UI name fixes
Joshua Leung [Fri, 5 Aug 2016 15:29:51 +0000 (03:29 +1200)]
GPencil: Various UI name fixes

* "Flip direction" -> "Flip Direction"
* "Show drawing direction" -> "Show Directions"
* "Grease Pencil Curves" -> "Brush Curves"
  (I was considering "Brush Response Curves" instead, but that seemed like too much
   of a mouthful)
* "X" for removing a palette. The UI there was more similar to a standard datablock
  selector, so it should use the "+X" combo instead of "+-" combo for consistency.
  (Note though, presets tend to use "+-" instead - e.g. see the Render Settings)

3 years agoGPencil: Added Ctrl-J hotkey for Joining strokes
Joshua Leung [Fri, 5 Aug 2016 14:10:27 +0000 (02:10 +1200)]
GPencil: Added Ctrl-J hotkey for Joining strokes

(Ctrl-Shift-J is for "Join and Copy")

3 years agoGPencil: "Join Strokes" tool doesn't leave gaps by default now
Joshua Leung [Fri, 5 Aug 2016 14:00:21 +0000 (02:00 +1200)]
GPencil: "Join Strokes" tool doesn't leave gaps by default now

Previously, it would insert "invisible" points after the endpoints of the strokes,
so that they wouldn't appear to be joined, but that behaviour could also get quite
confusing as you wouldn't be sure whether the strokes were really joined or not.

To keep the previous behaviour, simply enable the "Leave Gaps" option on the operator
after running it. This setting will get saved between runs of the operator.

3 years agoFix T49022: Crash in BKE_libblock_remap_locked.
Bastien Montagne [Fri, 5 Aug 2016 15:09:56 +0000 (17:09 +0200)]
Fix T49022: Crash in BKE_libblock_remap_locked.

Previous check to skip non-linkable IDs resulted in not clearing those skipped ID's newid member,
wich lead to try to remap it later in code.

3 years agoCleanup: add missing entries to library_query.c ID types switch case.
Bastien Montagne [Fri, 5 Aug 2016 14:12:44 +0000 (16:12 +0200)]
Cleanup: add missing entries to library_query.c ID types switch case.

3 years agoFix T48366: Freestyle will unnecessary exclude some linked objects.
Tamito Kajiyama [Fri, 5 Aug 2016 13:21:43 +0000 (22:21 +0900)]
Fix T48366: Freestyle will unnecessary exclude some linked objects.

Group membership testing for including/excluding feature lines was not
accounting for object names possibly further qualified by library file
paths.

Also fixed a few potential (but unlikely) references of uninitialized
variables.

A big thank to Bastien Montagne for the insight on the cause of the
problem and how to fix it.

3 years agoFreestyle: minor code cleanup (whites pace).
Tamito Kajiyama [Fri, 5 Aug 2016 07:59:47 +0000 (16:59 +0900)]
Freestyle: minor code cleanup (whites pace).

3 years agoFix T49014: Append does not work in some cases.
Bastien Montagne [Fri, 5 Aug 2016 12:45:21 +0000 (14:45 +0200)]
Fix T49014: Append does not work in some cases.

There were actually two issues, one in recent changes and one existing... forever?

I) id_make_local() would never proceed over indirectly linked data, which is required in specific 'append' context.
II) BKE_image_copy() was not setting id->newid pointer of newly copied ID.

About II: don't really know why image copy does its own cooking instead of using generaic ID copy helpers.
Think this should be changed, but that would be after 2.78 now.

3 years agoCycles: Fix embarrassing typo
Sergey Sharybin [Fri, 5 Aug 2016 12:45:54 +0000 (14:45 +0200)]
Cycles: Fix embarrassing typo

Spotted by Mai Lavelle, thanks!

3 years agoCycles: Correction to previous commit
Sergey Sharybin [Fri, 5 Aug 2016 10:16:24 +0000 (12:16 +0200)]
Cycles: Correction to previous commit

The change didn't fix difference render result on CUDA as i've hoped,
so reverting change for GPU rendering for now.

Sorry for the noise.

3 years agoCycles: Fix/workaround for wrong/noise render results with GCC6
Sergey Sharybin [Fri, 5 Aug 2016 08:48:38 +0000 (10:48 +0200)]
Cycles: Fix/workaround for wrong/noise render results with GCC6

3 years agoCurve Fitting: fix off by one error
Campbell Barton [Fri, 5 Aug 2016 08:49:56 +0000 (18:49 +1000)]
Curve Fitting: fix off by one error

In practice this wasn't likely to cause problems, but better fix.

3 years agoVSE sound strips: draw either the waveform or text label, not both.
Sybren A. Stüvel [Thu, 4 Aug 2016 19:59:35 +0000 (21:59 +0200)]
VSE sound strips: draw either the waveform or text label, not both.

Drawing both text and the wave onto a sound strip makes both hard to read,
which is a concrete issue for Hjalti at the moment. This was the simplest
fix I could think of to give him control over what he sees.

3 years agoCycles: hide particles with broken motion blur traces.
Alexander Gavrilov [Thu, 4 Aug 2016 21:24:29 +0000 (23:24 +0200)]
Cycles: hide particles with broken motion blur traces.

Currently cycles cannot correctly render motion blur for objects that appear or
disappear during the shutter window. Until that can be fixed properly, it may be
better to hide such particles rather than let them render as if they were
stationary for half of the frame.

Reviewed By: brecht

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