Commit Graph

18112 Commits

Author SHA1 Message Date
c3001812dc Merge branch 'blender-v2.82-release' 2020-01-29 20:38:12 +01:00
33317b4647 Fluid: Fixes for flow objects and initial velocities
This commit cleans up the flow emission code (i.e. the code that determines where flow is generated). It also addresses an issue with initial velocities.

Related issues (that might be fixed through this commit) are: T73422, T72949
2020-01-29 19:21:52 +01:00
76489fbe7c Fix T73483: Mantaflow: Smoke inflow in liquid domain emits liquid
Added an extra check in the flow object loop that compares flow object type and domain type prior to writing to flow maps.
2020-01-29 19:21:52 +01:00
745e356300 Fluid: More cleanup related to flow emission maps
In addition to 4670c68e3dd9544fe14656dacdff641fcabcd540 which removed the unused high-res emission maps.
2020-01-29 19:21:52 +01:00
42318e358a Fluid: Cleanup in flow emission loops
- Initial velocities are no longer influenced by surface distance value.
- Added optimizations for different flow types (e.g. skip part of loop for liquid flow objects).
- Comments style cleanup and removed old todos.
2020-01-29 19:21:52 +01:00
e782d35d34 Fluid: Removed the currently unused high-res smoke emission code
This code is currently not in use and so removing it based on the YAGNI principle. If there really is need for a high-res emission loop it could be easily added again. However, I believe for the smoke noise it is sufficient to upscale the base emission map. A high-res emission map can easily be achieved by increasing the base resolution. Note also that in the new fluid system base loop and noise loop are decoupled making the need for a high-res emission loop even more unneccessary.
2020-01-29 19:21:52 +01:00
aa919f3e82 UI: Info Editor Visual Changes
Changes to Info Editor making it easier to read. Only visual changes, no functional changes.

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

Reviewed by Julian Eisel
2020-01-29 09:24:54 -08:00
642e5ec78c Merge branch 'blender-v2.82-release' 2020-01-29 12:49:18 +01:00
aa123555d7 Fix T73014: Marker sync does not work correctly if moving strip so it overlaps another strip
Need to also offset markers in BKE_sequence_base_shuffle_time().
Also clarify/correct related comments.

Maniphest Tasks: T73014

Differential Revision: https://developer.blender.org/D6555
2020-01-29 11:44:56 +01:00
James Fulop
d8435596d5 imbuf: support writing grayscale BMP images 2020-01-29 12:40:49 +11:00
14deacdc22 Merge branch 'blender-v2.82-release' 2020-01-28 18:39:58 +01:00
b2034c6ba2 Fix T62730 Overlay: Selected edit hair points highlight is incorrect
This was due to the fact the drawing code was expecting the editpoints
to be equaly spaced. Reuse the code in particle.c to output the select
mask in red color channel of the particle (which is unused in new code).
2020-01-28 18:28:48 +01:00
ca572e9970 Cleanup: fix compiler warnings related to deprecated members
For Freestyle, it helps to move the struct copy from C++ to C, where the
compiler knows that copying deprecated members is ok.
2020-01-28 18:25:31 +01:00
aabf4d4076 Merge branch 'blender-v2.82-release' 2020-01-27 12:26:18 +01:00
3788901107 Cleanup: fix compiler warnings 2020-01-27 12:19:49 +01:00
62ec19f37c Cleanup: removed unused derivedDeform and derivedFinal 2020-01-27 12:18:43 +01:00
cb83cf1b71 Cleanup: spelling 2020-01-25 20:15:38 +11:00
79d9874028 Merge branch 'blender-v2.82-release' 2020-01-24 20:48:38 +03:00
fc1f5bded4 Depsgraph: fix false positive time dependencies for simple drivers.
The dependency graph has to know whether a driver must be re-evaluated
every frame due to a dependency on the current frame number. For python
drivers it was using a heuristic based on searching for certain sub-
strings in the expression, notably including '('.

When the expression is actually evaluated using Python, this can't be
easily improved; however if the Simple Expression evaluator is used,
this check can be done precisely by accessing the parsed data.

Differential Revision: https://developer.blender.org/D6624
2020-01-24 20:48:02 +03:00
dada30f5ef Merge branch 'blender-v2.82-release' 2020-01-24 18:23:28 +01:00
300f937aec Sculpt: Rename Topology Brush to Slide Relax Brush
The full name was "Topology Slide/Relax", but it didn't fit in the
toolbar UI. This was causing some problems:

- The mesh filter that does the same thing is called "Relax"
- We may want to add a "Topology Brush" tool in the future that is more
oriented to retopology task (like creating strips of quads), so by doing
this we avoid having two tools with the same name in the UI.

Reviewed By: billreynish

Differential Revision: https://developer.blender.org/D6590
2020-01-24 18:21:19 +01:00
f08f92a04d Merge branch 'blender-v2.82-release' 2020-01-24 18:15:15 +01:00
7a9f102537 Fix T72975: [Mantaflow] Mesh generation bug
The initial value for phi was too high.
2020-01-24 17:23:50 +01:00
11df5443e5 Merge branch 'blender-v2.82-release' 2020-01-24 12:49:49 +01:00
af00fab312 IDProps: add utility to set an ID pointer IDProp value. 2020-01-24 11:39:21 +01:00
6fff73e3f0 Merge branch 'blender-v2.82-release' 2020-01-23 16:59:50 +01:00
517870a4a1 CMake: Refactor external dependencies handling
This is a more correct fix to the issue Brecht was fixing in D6600.

While the fix in that patch worked fine for linking it broke ASAN
runtime under some circumstances.
For example, `make full debug developer` would compile, but trying
to start blender will cause assert failure in ASAN (related on check
that ASAN is not running already).

Top-level idea: leave it to CMake to keep track of dependency graph.

The root of the issue comes to the fact that target like "blender" is
configured to use a lot of static libraries coming from Blender sources
and to use external static libraries. There is nothing which ensures
order between blender's and external libraries. Only order of blender
libraries is guaranteed.

It was possible that due to a cycle or other circumstances some of
blender libraries would have been passed to linker after libraries
it uses, causing linker errors.

For example, this order will likely fail:

  libbf_blenfont.a libfreetype6.a libbf_blenfont.a

This change makes it so blender libraries are explicitly provided
their dependencies to an external libraries, which allows CMake to
ensure they are always linked against them.

General rule here: if bf_foo depends on an external library it is
to be provided to LIBS for bf_foo.
For example, if bf_blenkernel depends on opensubdiv then LIBS in
blenkernel's CMakeLists.txt is to include OPENSUBDIB_LIBRARIES.

The change is made based on searching for used include folders
such as OPENSUBDIV_INCLUDE_DIRS and adding corresponding libraries
to LIBS ion that CMakeLists.txt. Transitive dependencies are not
simplified by this approach, but I am not aware of any downside of
this: CMake should be smart enough to simplify them on its side.
And even if not, this shouldn't affect linking time.

Benefit of not relying on transitive dependencies is that build
system is more robust towards future changes. For example, if
bf_intern_opensubiv is no longer depends on OPENSUBDIV_LIBRARIES
and all such code is moved to bf_blenkernel this will not break
linking.

The not-so-trivial part is change to blender_add_lib (and its
version in Cycles). The complexity is caused by libraries being
provided as a single list argument which doesn't allow to use
different release and debug libraries on Windows. The idea is:

- Have every library prefixed as "optimized" or "debug" if
  separation is needed (non-prefixed libraries will be considered
  "generic").

- Loop through libraries passed to function and do simple parsing
  which will look for "optimized" and "debug" words and specify
  following library to corresponding category.

This isn't something particularly great. Alternative would be to
use target_link_libraries() directly, which sounds like more code
but which is more explicit and allows to have more flexibility
and control comparing to wrapper approach.

Tested the following configurations on Linux, macOS and Windows:

- make full debug developer
- make full release developer
- make lite debug developer
- make lite release developer

NOTE: Linux libraries needs to be compiled with D6641 applied,
otherwise, depending on configuration, it's possible to run into
duplicated zlib symbols error.

Differential Revision: https://developer.blender.org/D6642
2020-01-23 16:59:18 +01:00
6a49161c8c VSE: Tool system integration
Add toolbar to sequencer regions.

A bit of refactoring has to be done in RNA space.
Currently there is only cut tool implemented to serve as template for
anybody who would like to add more.
2020-01-22 15:06:18 +01:00
d51760dc5a Merge branch 'blender-v2.82-release' 2020-01-22 13:41:43 +01:00
a60a623a1a Fix T69921: VSE - Waveforms unnecessary redrawn on offset change
Waveform is freed in `sound_load_audio()` when sound length is `queried by BKE_sound_info_get()`.

Add argument free_waveform, so `BKE_sound_info_get()` can skip waveform freeing, as it is not expected to alter sound.

Reviewed By: sybren

Differential Revision: http://developer.blender.org/D6053
2020-01-22 13:36:55 +01:00
0f7095f826 Merge branch 'blender-v2.82-release' 2020-01-22 01:41:26 +01:00
3119a014a6 Fix T70415 100% proxy files playing with poor performance
Refactor code to use `eSpaceSeq_Proxy_RenderSize` or corresponding `IMB_Proxy_Size`
enum items directly.

`SEQ_PROXY_RENDER_SIZE_100` has assigned value 99 to distinguish from `SEQ_PROXY_RENDER_SIZE_FULL`.
This caused error in image size calculation and because of that image had to be scaled.

Author: EitanSomething

Reviewed By: ISS

Differential Revision: http://developer.blender.org/D6368
2020-01-22 00:59:31 +01:00
676f6a699b Merge branch 'blender-v2.82-release' 2020-01-21 20:10:56 +01:00
367d60dab1 Make ED_object_modifier_add() accept NULL scene parameter.
This data is only used to get current time/frame value, which is never
mandatory to add a modifier.

Needed by incoming fix to support particles modifiers in liboverrides.
2020-01-21 20:10:02 +01:00
7dc4477784 Merge remote-tracking branch 'origin/blender-v2.82-release' 2020-01-21 17:58:49 +01:00
5168408ae5 Fix T72459: Mask Modifier breaks Vertex Parenting
The `give_parvert()` function was only considering the mesh's original
vertex indices when the parent vertex index was valid for the evaluated
mesh. However, when using the Mask modifier the evaluated mesh can have
less vertices but still have the parent vertex.

Since the `if (nr < numVertex)` condition wasn't used to prevent any
out-of-bounds access, and seems just an incorrect optimisation, it could
be removed.
2020-01-21 17:53:06 +01:00
43b4cf232c Merge branch 'blender-v2.82-release' 2020-01-20 21:27:39 +01:00
aee2b754dc Fix T73110: UDIM Texture Paint Crash
This would happen if a tile is found on disk, painting would actually
request that tile (because corresponding uvs were in that range), but
that tile was not added in blenders list of tiles in that Image.

Need to also check tile in `image_quick_test` (regardless of iuser
having passed).

thx @lukasstockner97 for additional input!

Maniphest Tasks: T73110

Differential Revision: https://developer.blender.org/D6578
2020-01-20 21:21:59 +01:00
587ca9e69b Merge branch 'blender-v2.82-release' 2020-01-20 16:19:02 +01:00
a5f19e3f72 Fix T73265: GPencil console error when delete frist frame 2020-01-20 16:18:20 +01:00
4dbaee0293 Fluid: Fix for liquid domains in cache replay mode
Added missing check that prevented bake from being executed correctly.
2020-01-20 16:17:16 +01:00
a5270d4cf3 Merge branch 'blender-v2.82-release' 2020-01-20 14:53:14 +01:00
81befded7b Fluid: Fix for smoke domain geometry object with adaptive domain enabled
The smoke mesh geometry always needs to be updated when using the adaptive domain.
2020-01-20 14:34:08 +01:00
ccfe5bf215 Cleanup: remove redundant function 2020-01-20 13:27:19 +01:00
a5a30e485f Merge branch 'blender-v2.82-release' 2020-01-20 09:50:09 +01:00
6368343da9 Fix T73129: sculpt mode slow on mesh with fake user
We can't use the fast path when the mesh is used by mulitple objects and so
slower sculpting is expected then. But fake users should not affect this. This
also fixes the same type of error in a few other areas.
2020-01-20 09:39:54 +01:00
fb26d25405 Merge branch 'blender-v2.82-release' 2020-01-20 19:22:44 +11:00
3fb8191d1d Cleanup: rename lightprobe configure to type_set
Consistent with similar API functions.
2020-01-20 17:54:38 +11:00
81b7f8efaf Fixed secondary particle combined export functionality
The combined export was using the old flag format.
2020-01-19 23:44:57 +01:00
c7596cd820 Fluid: Improved cache file loading
Cache file loading for mesh and particle files now works through the direct update_structures functions. The final cache mode now also only bakes the most essential files and is therefore not resumable anymore.
2020-01-19 23:44:56 +01:00