5 years agoFix T49100: Replace old tooltip for GPencil brush iterations
Antonioya [Wed, 17 Aug 2016 07:11:58 +0000 (09:11 +0200)]
Fix T49100: Replace old tooltip for GPencil brush iterations

5 years agoGPencil: Change ruler line thickness to make it thicker
Antonioya [Wed, 17 Aug 2016 07:04:50 +0000 (09:04 +0200)]
GPencil: Change ruler line thickness to make it thicker

5 years agoFirst set of UI/i18n messages fixes (mostly new GP code).
Bastien Montagne [Tue, 16 Aug 2016 20:36:26 +0000 (22:36 +0200)]
First set of UI/i18n messages fixes (mostly new GP code).

5 years agoFix T49097: GP ruler data reinstances GP_Palette Color
Antonioya [Tue, 16 Aug 2016 20:28:34 +0000 (22:28 +0200)]
Fix T49097: GP ruler data reinstances GP_Palette Color

If the ruler is saved, a new color was created for each ruler. With the
change, a color is created for the first instance, and it reused in the
following instances. The default color is the current default color for

5 years agoCleanup unused return value (was making coverity sad).
Bastien Montagne [Tue, 16 Aug 2016 16:22:03 +0000 (18:22 +0200)]
Cleanup unused return value (was making coverity sad).

5 years agoMore fixes from coverity report.
Bastien Montagne [Tue, 16 Aug 2016 16:19:52 +0000 (18:19 +0200)]
More fixes from coverity report.

5 years agoFix two memleaks found by coverity.
Bastien Montagne [Tue, 16 Aug 2016 14:15:55 +0000 (16:15 +0200)]
Fix two memleaks found by coverity.

5 years agoFix release build after recent fix for debug one
Sergey Sharybin [Tue, 16 Aug 2016 12:57:56 +0000 (14:57 +0200)]
Fix release build after recent fix for debug one

It's becoming annoying to have public API dependent on build type
and everything. Let's just always have API defined and do stubs
in the function implementation instead.

5 years agoFix depsgraph to compute more accurate links for collision & force.
Alexander Gavrilov [Fri, 12 Aug 2016 15:23:29 +0000 (18:23 +0300)]
Fix depsgraph to compute more accurate links for collision & force.

Current implementation more or less indiscriminately links physics
objects to colliders and forces, ignoring precise details of layer
checks and collider groups. The new depsgraph seemed to lack some
such links at all. The relevant code in modifiers suffers from a
lot of duplication.

Different physics simulations use independent implementations of
collision and similar things, which results in a lot of variance:

* Cloth collides with objects on same or visible layer with dupli.
* Softbody collides with objects on same layer without dupli.
* Non-hair particles collide on same layer with dupli.
* Smoke uses same code as cloth, but needs different modifier.
* Dynamic paint "collides" with brushes on any layer without dupli.

Force fields with absorption also imply dependency on colliders:

* For most systems, colliders are selected from same layer as field.
* For non-hair particles, it uses the same exact set as the particles.

As a special quirk, smoke ignores smoke flow force fields; on the other
hand dependency on such field implies dependency on the smoke domain.

This introduces two utility functions each for old and new depsgraph
that are flexible enough to handle all these variations, and uses them
to handle particles, cloth, smoke, softbody and dynpaint.

One thing to watch out for is that depsgraph code shouldn't rely on
any properties that don't cause a graph rebuild when changed. This
was violated in the original code that was building force field links,
while taking zero field weights into account.

This change may cause new dependency cycles in cases where necessary
dependencies were missing, but may also remove cycles in situations
where unnecessary links were previously created. It's also now possible
to solve some cycles by switching to explicit groups, since they are
now properly taken into account for dependencies.

Differential Revision:

5 years agoFix redundant declarations after recent changes in GPU debug
Sergey Sharybin [Tue, 16 Aug 2016 12:40:23 +0000 (14:40 +0200)]
Fix redundant declarations after recent changes in GPU debug

5 years ago2D stabilizer: Revert majority of UI change
Sergey Sharybin [Tue, 16 Aug 2016 12:25:55 +0000 (14:25 +0200)]
2D stabilizer: Revert majority of UI change

For now simply reshuffle option so they keep proper dependency flow.


- Has an ability to hide tracks lists to work with other sliders around.
  Could be really handy to quickly get rid of lenghty lists.

- From a feedback seems to be fitting workflow better.

Things to doublecheck on:

- Feels a bit misordered: first you define whether one want to have
  rotation stabilized, then have tracks, then scale options.

  While this follows dependency flow (which is really good and which
  we should not violate) it has weird feeling on whether things are
  really where they have to be.

- Autoscale controls visibility of max-scale, can we just make it
  active/inactive instead?

- Autoscale replaces slider with label. Can it be disabled slider
  instead to reduce visual jumping (disabled slider prevents user

Hopefully we'll still want to have collapsable box after re-iterating
over this points, so we don't waste bits in DNA.

5 years ago2D stabilizer: Fix compilation error in debug mode
Sergey Sharybin [Tue, 16 Aug 2016 12:24:06 +0000 (14:24 +0200)]
2D stabilizer: Fix compilation error in debug mode

5 years agoCorrect previous commit, need to indent verisoning code
Sergey Sharybin [Tue, 16 Aug 2016 11:53:29 +0000 (13:53 +0200)]
Correct previous commit, need to indent verisoning code

5 years ago2D stabilization: Modify interface so dependency goes strictly from top to bottom
Sergey Sharybin [Tue, 16 Aug 2016 11:30:47 +0000 (13:30 +0200)]
2D stabilization: Modify interface so dependency goes strictly from top to bottom

5 years agoRework 2D stabilizator
Ichthyostega [Tue, 16 Aug 2016 08:32:55 +0000 (10:32 +0200)]
Rework 2D stabilizator

See this page for motivation and description of concepts:

See this video for UI explanation and demonstration of usage

This proposal attempts to improve usability of Blender's image stabilization
feature for real-world footage esp. with moving and panning camera. It builds
upon the feature tracking to get a measurement of 2D image movement.

  - Use a weighted average of movement contributions (instead of a median).
  - Allow for rotation compensation and zoom (image scale) compensation.
  - Allow to pick a different set of tracks for translation and for
  - Treat translation / rotation / zoom contributions systematically in a
    similar way.
  - Improve handling of partial tracking data with gaps and varying
    start / end points.
  - Have a user definable anchor frame and interpolate / extrapolate data to
    avoid jumping back to "neutral" position when no tracking data is available.
  - Support for travelling and panning shots by including an //intended//
    position/rotation/zoom ("target position"). The idea is for these parameters
    to be //animated// by the user, in order to supply an smooth, intended
    camera movement. This way, we can keep the image content roughly in frame
    even when moving completely away from the initial view.

A known shortcoming is that the pivot point for rotation compensation is set to
the translation compensated image center. This can produce spurious rotation on
travelling shots, which needs to be compensated manually (by animating the
target rotation parameter). There are several possible ways to address that
problem, yet all of them are considered beyond the scope of this improvement
proposal for now.

Own modifications:

- Restrict line length, it's really handy for split-view editing
- In motion tracking we prefer fully human-readable comments, meaning we
  don't use doxygen with it's weird markup and comments are supposed to
  start with capital and end with a full stop,
- Add explicit comparison of pointer to NULL.

Reviewers: sergey

Subscribers: kusi, kdawg, forest-house, mardy, Samoth, plasmasolutions, willolis, sebastian_k, hype, enetheru, sunboy, jta, leon_cheung

Maniphest Tasks: T49036

Differential Revision:

5 years agoOpenGL: ignore deprecated API warnings
Mike Erwin [Mon, 15 Aug 2016 18:55:09 +0000 (14:55 -0400)]
OpenGL: ignore deprecated API warnings

Reduces noise from --debug-gpu so we can spot serious errors.

Blender 2.7x uses OpenGL 2.1, we don't care if features are deprecated.

I'll re-enable these warnings for blender2.8 after next merge.

5 years agoCycles microdisplacement: Allow kernels to be built without patch evaluation
Mai Lavelle [Mon, 15 Aug 2016 13:08:38 +0000 (09:08 -0400)]
Cycles microdisplacement: Allow kernels to be built without patch evaluation

Kernels can now be built without patch evaluation when not needed by the
scene (Catmull-Clark subdivision not in use), giving a performance boost
for some devices.

5 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.

5 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.

5 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

5 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

5 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.

5 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.

5 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.

5 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.

5 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.

5 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.

5 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.

5 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:

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

5 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.

5 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)

5 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.

5 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

5 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.

5 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.

5 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.

5 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.

5 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.

5 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

5 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.

5 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:

5 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

5 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.

5 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

5 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

5 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

5 years agoUpdated 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 to OSD 3.0.5 (and switch from git repo to download archive of sources).

5 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.

5 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.

5 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

5 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

5 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...

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

5 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

5 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.

5 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

5 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.

5 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

5 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.

5 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.

5 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.

5 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.

5 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.

5 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:

5 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 ;)

5 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.

5 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

5 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

5 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.

5 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.

5 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:

5 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.

5 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

5 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.

5 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

5 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.

5 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

5 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.

5 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.

5 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)

5 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:

5 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

5 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:

5 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

5 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.

5 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.

5 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.

5 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.

5 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.

5 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).

5 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().

5 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.

5 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...

5 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.

5 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:

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:

5 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.

5 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:

5 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.

5 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: