Commit Graph

9161 Commits

Author SHA1 Message Date
Sebastián Barschkis
e7d71ce9cf Fluid: Fixed slow cache loading for smoke data
Cache files are currently loaded via the Manta Python API. With very big caches this can slow down the viewport playback. Especially smoke simulations, which just load grids and no meshes, can suffer from this. This fix solves this problem by directly loading the cache files from disk (no Python). This fix has been in the works for some time. The developer of this patch is ready to handle any potential fall-out of this patch quickly.
2020-02-06 16:53:00 +01:00
Bartosz Moniewski
842e71a1ef Fix wrong default value for Lacunarity in Musgrave texture
Lacunarity parameter determines scaling of subsequent octaves in fractal
noises. For example, Noise node have this scaling hardcoded to 2.0. Each
octave have twice bigger scale than previous one, resulting in finer details.

By design fractal noises that generate octaves with same seed should not
have Lacunarity set to 1.0, since then it just stacks up identical noises.

Differential Revision: https://developer.blender.org/D6742
2020-02-04 13:46:28 +01:00
Brecht Van Lommel
3d6e7cd67c Fix Cycles particle hair rendering broken after recent changes
This code was already wrong, we were just lucky that the previous coordinate
was repeated due to using the same memory location.
2020-02-03 18:35:29 +01:00
Yevgeny Makarov
5780142679 Fix T64024: fullscreen switching on macOS shows red line artifacts
Specifically, this happened when automatically hiding and showing of the
menu bar and dock was enabled in the system preferences.

Differential Revision: https://developer.blender.org/D6710
2020-01-31 18:40:45 +01:00
Brecht Van Lommel
4f8f0f3208 Fix issues in Cycles standalone, particularly related to render display
Some code was removed to avoid storing the combined pass when viewport
rendering other passes. But we can keep this by default, Blender overrides
the list of passes entirely.
2020-01-31 16:49:24 +01:00
Brecht Van Lommel
aa81a05de8 Cycles: bump version to 1.11, matching Blender 2.82 release cycle 2020-01-31 16:39:13 +01:00
Sebastián Barschkis
3601924acb Fluid: More stable flow emission
Reverting some changes that were made in 33317b4647
2020-01-31 13:50:33 +01:00
Brecht Van Lommel
a075f45526 Fix more undefined behavior in tangent space computation
Ref D6677
2020-01-31 12:56:20 +01:00
Campbell Barton
7a27f64ecb Cleanup: clang-format, unused variable 2020-01-30 13:28:17 +11:00
Sebastián Barschkis
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
Ray Molenkamp
10eb711e16 Fix: Building without WITH_MOD_FLUID
When MOD_FLUID was off and WITH_CYCLES was on there was a build error.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6542
2020-01-27 10:46:55 -07:00
Simon G
c8103efbe3 Fix undefined behavior in tangent space computation
Use an improved implementation for circular shift.

Differential Revision: https://developer.blender.org/D6677
2020-01-27 18:00:34 +01:00
Yevgeny Makarov
f4f57ed21a Fix part of T65404: quit dialog doesn't show if Blender is minimized
This solves the problem for macOS and Linux, but not Windows yet.

Differential Revision: https://developer.blender.org/D6673
2020-01-27 17:38:21 +01:00
Brecht Van Lommel
3788901107 Cleanup: fix compiler warnings 2020-01-27 12:19:49 +01:00
Sebastián Barschkis
64b152c254 Fluid: Added resume cache boolean to standalone scripts
Exported Manta script was missing the new resume options in the data load functions.
2020-01-24 17:23:50 +01:00
Sergey Sharybin
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
Sebastián Barschkis
ca7bd3f1c3 Fluid: Cleaned up functions that deal with Python objects (C-API)
This commit belongs to T72894. It's related to (my) previous commits on pointer exchanges (today + yesterday). It cleans up the functions by describing their usage in the comments, adds additional nullptr checks, and fixes the reference count responsibilities of newly created PyObjects.
2020-01-22 18:31:19 +01:00
Sebastián Barschkis
be7571a5e4 Fluid: Refactored Mantaflow <-> Blender pointer exchange once more 2020-01-22 16:45:57 +01:00
Patrick Mours
26687dda5a Fix T71344: Optix render errors with motion blur and unknown bone constraint relationship
The OptiX SRT motion expects a motion defined by translation,
rotation, shear and scale, but the matrix decomposition code in
Cycles was not able to extract shear information and instead
produced a stretch matrix with the information baked in. This
caused conflicting transforms between traversal and shading
and lead to render artifacts.
This patch changes the matrix decomposition to produce factors
inline with what OptiX expects to fix that.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6605
2020-01-22 15:49:14 +01:00
Sebastián Barschkis
96fa613639 Fix T73311: Mantaflow > Liquid: Enabling Initial Velocity on Inflow / Outflow crashes Blender 2020-01-22 11:40:04 +01:00
Sebastián Barschkis
c4b5279bbc Fix T72894: Mantaflow: several crashes due to null pointers
Incorporated LazyDodo's suggestions from the task.
2020-01-22 11:17:54 +01:00
Sebastián Barschkis
6c50e82efb Fluid: Refactored the Mantaflow <-> Blender pointer exchange function and switched to from NULL to nullptr in cpp files 2020-01-21 18:31:10 +01:00
Lukas Stockner
902209eda5 Partial Fix T73043: Denoising Albedo not working well for Sheen
Similar to the Microfacet Closures, the Principled BSDF Sheen closure is
added at a high weight but typically results in fairly low values.
Therefore, the default weight is a bad indicator of importance.

The fix here is the same as it was back then for Microfacets:
Compute an average weight using the normal as the half-vector
and use it to scale down the sample weight and the albedo channel.

In addition to drastically improving denoising of materials with
sheen when using the new Denoising node, this also can reduce noise
on such materials considerably.
2020-01-20 23:06:08 +01:00
Brecht Van Lommel
1613c994b0 Fix Cycles not correctly using Background.shader if specified
Based on patch by Alex Fuller.

Differential Revision: https://developer.blender.org/D6627
2020-01-20 14:03:14 +01:00
Sebastián Barschkis
153a96472a Fluid: Fix typo in smoke script 2020-01-20 12:34:38 +01:00
Brecht Van Lommel
02f6722350 Build: upgrade to OpenEXR 2.4.0, OpenVDB 7.0.0 and Boost 1.70.0
This aligns with the VFX reference platform 2020 along with the decision
to stick to Python 3.7, see T68774.

Blosc was downgraded to 1.5 as recommended by the OpenVDB documentation.

IlmBase and OpenEXR are now built together with CMake rather separately
using autoconf.

Differential Revision: https://developer.blender.org/D6593
2020-01-20 09:43:28 +01:00
Sebastián Barschkis
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
Stefan Werner
6257cdc376 Fix T73064: Embree does not like Bevel shader
Embree's local intersection routine was not prepared
for local intersections without per-object BVH.
Now it should be able to handle any kind of local
intersection, such as AO, bevel and SSS.

Differential Revision: https://developer.blender.org/D6602
2020-01-16 20:42:17 +01:00
Brecht Van Lommel
db33867270 Fix T71952, T70125: Blender Linux crash on startup with some tablets
It's not certain this fixes the issue since I can't reproduce the crash, but
the code was wrong in any case.

Thanks to Ray Molenkamp and Anonymous for finding this.
2020-01-16 16:14:57 +01:00
Sebastián Barschkis
d4261760c7 Fluid: Fix for mesh velocities
Was using incorrect file format when reading mesh velocities from cache
2020-01-16 15:33:15 +01:00
Sebastián Barschkis
68462a9419 Fix T73111: Bake data of fluid causes crash of Blender 2020-01-15 17:22:00 +01:00
Sebastián Barschkis
adcc9d014c Fluid: Moved grid reset loop for inner obstacle cells from blenkernel code into Mantaflow
Having this loop in directly Manta is faster and potentially fixes issues T72783 and T72894.
2020-01-15 16:28:56 +01:00
Sergey Sharybin
6b7991edf4 Fix numaapi on PowerPC platforms
Seems that previous fix didn't work in all cases: Debian's build
environment didn't fully detect endianess, possibly due to typo,
possibly due to difference in various environments.

Using define magic from a more battle-tested project seems a safe
way to go.

There are more changes than just PPC since the upstream commit contains
full re-synchronization of all defines.

This commit updates numaapi to a latest library version from upstream.
2020-01-15 11:18:24 +01:00
Campbell Barton
dedceb9395 Cleanup: clang-format 2020-01-15 13:26:20 +11:00
Patrick Mours
ff430dea66 Fix rendering motion blur scenes with OptiX failing with CUDA_ERROR_INVALID_CONTEXT
Commit baeb11826b switched memory
allocation for the motion transform to use CUDA directly, instead of going
through abstractions. But no CUDA context was set active before those
were called, so the calls failed. This fixes that by binding a context beforehand.
2020-01-14 17:48:16 +01:00
Stefan Werner
042e4daa72 Cycles: Crash fix for random walk SSS with Embree. 2020-01-14 14:52:32 +01:00
Patrick Mours
1cb938ef2c Cycles: Fix viewport rendering when displaying as byte and not half float
Commit rB7e61e597253f3ca75f2fb86a57212ca750ffbbe8 broke viewport rendering when not displaying as halfs.
This fixes that by actually using the `scale` parameter that is passed into `film_map` and also de-duplicates code around it.

Differential Revision: https://developer.blender.org/D6557
2020-01-10 16:30:13 +01:00
Patrick Mours
1d149f6746 Fix T72470: OptiX render fails with scene with many translucent planes on Linux.
OptiX always uses record-all behavior for transparent shadow rays, but did not check
whether the maximum number of hits exceeded the shadow hit stack. This fixes that.
2020-01-10 15:47:51 +01:00
Stefan Werner
2f1d3ba6da Cycles: Fixed OpenCL kernel build.
transform_direction() can't handle parameters in constant address space.
Creating a local copy of the parameter satisfies the OpenCL compiler.
CUDA and CPU compilers should be able to optimize this away I hope.
2020-01-09 14:40:24 +01:00
William Reynish
c3b406a7c3 Revert recent change to the particles RNA, and only affect the UI.
Even though the name change is more correct, we don't want to change the API at this time.
2020-01-08 20:37:35 +01:00
Josh Belanich
e72ecaa371 Fix T66529: Cycles motion blur render errors with fast rotating objects
In transform_motion_decompose, successive quaternion pairs are checked to be
aligned such that their interpolation is rotation through the shortest angle
between them. If not, the first in the pair was flipped. This can cause
problems for sequences of more than 2 quarternions, since flipping the first
in a pair might misalign the previously pair, if unlucky.

Instead, this change flips the second in the pair, which is safe when
iterating forwards.

Differential Revision: https://developer.blender.org/D6537
2020-01-08 17:23:41 +01:00
Brecht Van Lommel
15c463cee3 Fix T72954: Cycles gradient texture not clamped when using OSL 2020-01-08 16:57:16 +01:00
Patrick Mours
d5ca72191c Cycles: Add OptiX AI denoiser support
This patch adds support for the OptiX denoiser as an alternative to the existing NLM denoiser in Cycles. It's re-using the same denoising architecture based on tiles and therefore implicitly also works with multiple GPUs.

Reviewed By: sergey

Differential Revision: https://developer.blender.org/D6395
2020-01-08 16:53:11 +01:00
William Reynish
3a35301fd1 Fix T70821: Hair Radius Is Actually Hair Diameter
Renamed hair tip and root properties to be called diameter rather than radius. The old name was incorrect.
2020-01-06 21:54:56 +01:00
mano-wii
3b891989ac Fix T68131: Cycles bake panel code typo
```
NameError: name 'col' is not defined
```
2019-12-30 11:07:28 -03:00
Lukas Stockner
d35a319687 Cleanup: clang-format 2019-12-26 20:15:58 +01:00
Lukas Stockner
e4413dc72b Cycles: Use OIIO UDIM tag instead of %04d 2019-12-26 20:14:31 +01:00
Lukas Stockner
fa5e28ab08 Cycles: Support UDIMs with OSL shading 2019-12-26 00:32:16 +01:00
Jean First
6c2eeba0c7 Fix T72382: Arrow keys fail in search menu 2019-12-24 07:55:38 +11:00
Charlie Jolly
c1242874c9 Fix: NaN error in smoothminf function 2019-12-21 03:28:38 +00:00