Commit Graph

5611 Commits

Author SHA1 Message Date
Campbell Barton
baa4b5e93c CLeanup: clang-format 2020-02-11 18:45:08 +11:00
Campbell Barton
3e6e9ce01b Cleanup: extra semicolons, comma use, undeclared vars 2020-02-11 12:04:50 +11:00
Ray Molenkamp
c92163b2b0 CTest: Disable the cross test from the avxf unit tests.
Test fails on AVX2, I'll look into this but until the
cause is determined the test will be disabled
2020-02-10 09:27:11 -07:00
Alex Fuller
76208a5670 Cycles: internal support for constant object/mesh attribute values
None are currently exported from Blender, this fixes the Cycles side
implementation.

Differential Revision: https://developer.blender.org/D6794
2020-02-10 13:52:23 +01:00
Sergey Sharybin
956fd64653 Cycles: Fix linking error of new avxf unit tests
Was happening on macOS. The reason of this is because OpenImageIO
depends on boost, so it is to be passed to the linker after the
OpenImageIO libraries.
2020-02-10 11:22:10 +01:00
Campbell Barton
cdfaddbb1d Cleanup: spelling 2020-02-10 10:33:00 +11:00
Ray Molenkamp
02495f1e3c Cycles: Add avxf unit tests.
Differential Revision: https://developer.blender.org/D3706

Reviewers: brecht
2020-02-08 16:01:28 -07:00
Brecht Van Lommel
01cb35cc8f Fix Cycles error with hair and spatial splits after recent changes 2020-02-08 23:26:09 +01:00
Brecht Van Lommel
9ff3482af4 Fix Cycles embree render crash after recent refactor 2020-02-08 21:28:50 +01:00
Brecht Van Lommel
fc412be5ac Cleanup: fix compiler warning 2020-02-08 21:28:50 +01:00
Dalai Felinto
08a4cb0727 Cleanup: make format
Remember to run `make format` after cleanups/renames/...
2020-02-07 15:29:46 +01:00
Brecht Van Lommel
d809853513 Cleanup: simplify Cycles primitive attribute map storage 2020-02-07 12:18:15 +01:00
Brecht Van Lommel
d9c5f0d25f Cleanup: split Cycles Hair and Mesh classes, with Geometry base class 2020-02-07 12:18:15 +01:00
Brecht Van Lommel
46c9872afa Cleanup: remove unnecessary operations in Cycles curves export
Clearing and computing bounds is already done elsewhere.
2020-02-07 12:18:15 +01:00
Brecht Van Lommel
47402dcb91 Cleanup: split Cycles export into smaller files 2020-02-07 12:18:15 +01:00
Brecht Van Lommel
7b66f73558 Cleanup: export particle hair as a separate Cycles object 2020-02-07 12:18:15 +01:00
Brecht Van Lommel
ad489b7164 Cleanup: add type inheritance for Cycles nodes 2020-02-07 12:18:15 +01:00
Ray Molenkamp
02226ef653 Code_Cleanup_Day/Windows: Clean-up windows API Level.
Not sure when this happened but apparently the lower bar is now windows 7 [1]

This patch bumps to API version to 0x0601 (Win7) and cleans up any uses that
worked around the globally set API version.

[1] https://www.blender.org/download/requirements/

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6758
2020-02-05 20:03:06 -07:00
Lukas Stockner
dc1db0791e Cycles: Track specular throughput to account for reflection color in denoising albedo pass
To determine the albedo pass, Cycles currently follows the path until a predominantly
diffuse-ish material is hit and then takes the albedo there.
This works fine for normal mirrors, but as it completely ignores the color of the bounces
before that diffuse-ish material, it also means that any textures that are applied to the
specular-ish BSDFs won't affect the albedo pass at all.

Therefore, this patch changes that behaviour so that Cycles also keeps track of the
throughput of all specular-ish closures along the path so far and includes that in
the albedo pass.

This fixes part of the issue described in T73043. However, since it has an effect on the
albedo pass in most scenes, it could cause cause regressions, which is why I'm uploading
it as a patch instead of just committing as a fix.

Differential Revision: https://developer.blender.org/D6640
2020-02-06 03:37:48 +01:00
Pablo Dobarro
6b9062508a Merge branch 'blender-v2.82-release' 2020-02-04 15:33:19 +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
5f056fb742 Merge branch 'blender-v2.82-release' 2020-02-03 18:40:21 +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
Brecht Van Lommel
ff40f3967a Cycles: bump version to 1.12, matching Blender 2.83 release cycle 2020-01-31 19:26:40 +01:00
Brecht Van Lommel
f9d09a1209 Merge branch 'blender-v2.82-release' 2020-01-31 19:26:20 +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
Campbell Barton
7a27f64ecb Cleanup: clang-format, unused variable 2020-01-30 13:28:17 +11:00
Charlie Jolly
d3670823b3 Fix T73469: OSL: Vector Math Node modulo uses wrong function
This also fixes glsl version of fmod when both inputs are negative.

Differential Revision: https://developer.blender.org/D6704
2020-01-29 12:37:22 +00:00
Ray Molenkamp
f357740a80 Merge remote-tracking branch 'origin/blender-v2.82-release' 2020-01-27 10:49:18 -07: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
Charlie Jolly
20e803ac6b Shading: Add color output to White Noise node
Hash input values to a color.

Differential Revision: https://developer.blender.org/D6672
2020-01-27 15:47:51 +00:00
Sergey Sharybin
6fff73e3f0 Merge branch 'blender-v2.82-release' 2020-01-23 16:59: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
Antonio Vazquez
fb671035be Merge branch 'blender-v2.82-release' 2020-01-23 16:56:26 +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
Campbell Barton
c81549af28 Cleanup: unused vars, clang-format 2020-01-21 20:57:15 +11:00
Lukas Stockner
2210f9c7c8 Merge branch 'blender-v2.82-release' 2020-01-20 23:11:38 +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
a5270d4cf3 Merge branch 'blender-v2.82-release' 2020-01-20 14:53:14 +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
OmarSquircleArt
6dc979e2f9 Cycles: Suppress OSL normalize function warnings.
This patch suppress the OSL warnings resulted from ambiguous calls
to the normalize function. This is done by casting to the vector
type before normalizing.

Reviewed By: Brecht

Differential Revision: https://developer.blender.org/D6621
2020-01-18 19:19:26 +02:00
Stefan Werner
b963745cdf Merge branch 'blender-v2.82-release' 2020-01-16 20:54:11 +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
Campbell Barton
41075589c0 Merge branch 'blender-v2.82-release' 2020-01-15 13:46:25 +11:00
Campbell Barton
dedceb9395 Cleanup: clang-format 2020-01-15 13:26:20 +11:00
Patrick Mours
2a638e8c90 Merge branch 'blender-v2.82-release' 2020-01-14 17:49:04 +01: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
6f03e356fb Merge branch 'blender-v2.82-release' 2020-01-14 15:00:39 +01:00
Stefan Werner
042e4daa72 Cycles: Crash fix for random walk SSS with Embree. 2020-01-14 14:52:32 +01:00