4 years agoAlembic: added some clarification
Sybren A. Stüvel [Wed, 15 Feb 2017 14:26:33 +0000 (15:26 +0100)]
Alembic: added some clarification

4 years agoAlembic: added some getter functions to help debug prints etc.
Sybren A. Stüvel [Wed, 15 Feb 2017 14:26:00 +0000 (15:26 +0100)]
Alembic: added some getter functions to help debug prints etc.

4 years agoAlembic: do not presume to predict the parent name
Sybren A. Stüvel [Thu, 6 Apr 2017 13:35:57 +0000 (15:35 +0200)]
Alembic: do not presume to predict the parent name

AbcExporter::createTransformWriter() tries to predict the parent Xform
name, but if it cannot be found has multiple ways of creating it, possibly
under a different name than originally searched for.

4 years agoAlembic: Removed AbcTransformWriter::m_parent
Sybren A. Stüvel [Tue, 14 Feb 2017 16:32:55 +0000 (17:32 +0100)]
Alembic: Removed AbcTransformWriter::m_parent

It was set, but never read anywhere.

4 years agoBuildbot: Correct previous release
Sergey Sharybin [Thu, 6 Apr 2017 09:39:06 +0000 (11:39 +0200)]
Buildbot: Correct previous release

Seems CMake is not happy about changing compiler from script.

4 years agoBuildbot: Force build environment to use latest GCC
Sergey Sharybin [Thu, 6 Apr 2017 09:21:07 +0000 (11:21 +0200)]
Buildbot: Force build environment to use latest GCC

4 years agoCleanup: function naming for manipulator
Campbell Barton [Thu, 6 Apr 2017 02:23:39 +0000 (12:23 +1000)]
Cleanup: function naming for manipulator

Rename 'stats_*' to 'protectflag_to_drawflags_*' (was too vague).
Also remove NULL check from gimbal_axis

4 years agoCleanup: minor changes to transform-manipulator
Campbell Barton [Thu, 6 Apr 2017 02:00:14 +0000 (12:00 +1000)]
Cleanup: minor changes to transform-manipulator

Match stats_editbone & stats_pchan behavior to avoid confusion.

4 years agoFix alembic build error with MSVC
lazydodo [Wed, 5 Apr 2017 16:59:29 +0000 (10:59 -0600)]
Fix alembic build error with MSVC

4 years agoDepsghraph: Remove unused function
Sergey Sharybin [Wed, 5 Apr 2017 13:36:17 +0000 (15:36 +0200)]
Depsghraph: Remove unused function

4 years agoCycles: Fix race condition in attributes creation during SVM compilation
Sergey Sharybin [Wed, 5 Apr 2017 12:57:54 +0000 (14:57 +0200)]
Cycles: Fix race condition in attributes creation during SVM compilation

4 years agoCycles: Add utility class to simplify scoped spin locks
Sergey Sharybin [Wed, 5 Apr 2017 12:57:34 +0000 (14:57 +0200)]
Cycles: Add utility class to simplify scoped spin locks

4 years agoCycles: Guard global write access in SVM compilation code
Sergey Sharybin [Wed, 5 Apr 2017 12:21:49 +0000 (14:21 +0200)]
Cycles: Guard global write access in SVM compilation code

4 years agoLocales: Some optimization work
Sergey Sharybin [Wed, 5 Apr 2017 09:25:58 +0000 (11:25 +0200)]
Locales: Some optimization work

Mainly visible for MSVC debug builds and gives about 2x speedup.

4 years agoInstallDeps: Raise minimal & official version of OIIO to 1.7.13.
Bastien Montagne [Wed, 5 Apr 2017 07:26:41 +0000 (09:26 +0200)]
InstallDeps: Raise minimal & official version of OIIO to 1.7.13.

As requested by @sergey.

4 years agoAlembic: addition of a simple logging class.
Kévin Dietrich [Wed, 5 Apr 2017 02:56:38 +0000 (04:56 +0200)]
Alembic: addition of a simple logging class.

The idea is to have a system where we properly log error messages and
let the users know that errors occured redirecting them to the console
for explanations. This is only implemented for the exporter since the
importer already has similar functionalities; however they shall
ultimately be unified in some way.

Reviewers: sybren, dfelinto

Differential Revision:

4 years agoCleanup: redundant casts
Campbell Barton [Tue, 4 Apr 2017 14:55:51 +0000 (00:55 +1000)]
Cleanup: redundant casts

4 years agoFix missing protection of `RNA_pointer_as_string()` against NULL pointers.
Bastien Montagne [Tue, 4 Apr 2017 13:57:45 +0000 (15:57 +0200)]
Fix missing protection of `RNA_pointer_as_string()` against NULL pointers.

Odd that issue was never reached before? Looks like it hit in
datablock_idprops branch though...

4 years agoCycles: Tag shaders for update after the threading part is over
Sergey Sharybin [Tue, 4 Apr 2017 11:36:58 +0000 (13:36 +0200)]
Cycles: Tag shaders for update after the threading part is over

This avoids write access happening in non-atomic manner in
Shader::tag_update which modifies the global managers. Even
for 1 byte data types it's quite dangerous.

4 years agoDepsgraph: Use atomic operation to tag the changed ID
Sergey Sharybin [Tue, 4 Apr 2017 11:38:43 +0000 (13:38 +0200)]
Depsgraph: Use atomic operation to tag the changed ID

4 years agoCycles: Fix uninitialized memory access when comparing curve mapping nodes
Sergey Sharybin [Tue, 4 Apr 2017 11:47:18 +0000 (13:47 +0200)]
Cycles: Fix uninitialized memory access when comparing curve mapping nodes

The issue is coming from the fact that float3 is actually 16 bytes aligned
data type and the "padding" was not initialized. This caused memcmp() to
access non-initialized memory.

4 years agoinstall_deps: removed leftover compile_HDF5 command
Sybren A. Stüvel [Tue, 4 Apr 2017 12:50:36 +0000 (14:50 +0200)]
install_deps: removed leftover compile_HDF5 command

It was a leftover from when Alembic with HDF5 was still officially

4 years agoBumped Alembic library version to 1.7.1
Sybren A. Stüvel [Tue, 4 Apr 2017 10:55:38 +0000 (12:55 +0200)]
Bumped Alembic library version to 1.7.1

This provides us with a clearer API (so I don't have to use const_cast<>
in upcoming code). It also allows layering of different Alembic files,
so you can have a base file and load a separate file containing overrides.

Verbally approved by Dr. Sergey.

4 years agoBuildbot: Update master config
Sergey Sharybin [Tue, 4 Apr 2017 10:52:37 +0000 (12:52 +0200)]
Buildbot: Update master config

4 years agoAlembic: force ALEMBIC_LIB_USES_BOOST=ON when not using C++11
Sybren A. Stüvel [Thu, 16 Feb 2017 09:59:19 +0000 (10:59 +0100)]
Alembic: force ALEMBIC_LIB_USES_BOOST=ON when not using C++11

Alembic requires one of ALEMBIC_LIB_USES_BOOST, ALEMBIC_LIB_USES_TR1, or
C++11, and silently defaults to the latter if the former two are OFF.

Before this change, Alembic was only built without C++11 of OpenEXR
was built at the same time. This dependency was both unnecessary and

4 years agoTask: Remove non-atomic pool suspended flag assignment
Sergey Sharybin [Tue, 4 Apr 2017 10:32:15 +0000 (12:32 +0200)]
Task: Remove non-atomic pool suspended flag assignment

This was done some lines above by atomic fetch and and.

4 years agoBuildbot: Update master config
Sergey Sharybin [Tue, 4 Apr 2017 10:15:35 +0000 (12:15 +0200)]
Buildbot: Update master config

4 years agoBuildbot: Some more twqeaks to master config
Sergey Sharybin [Mon, 3 Apr 2017 13:51:31 +0000 (15:51 +0200)]
Buildbot: Some more twqeaks to master config

4 years agoBuildbot: Update bundled vetrsion of server configuration
Sergey Sharybin [Mon, 3 Apr 2017 13:36:52 +0000 (15:36 +0200)]
Buildbot: Update bundled vetrsion of server configuration

4 years agoBuildbot: SPecial branch trickery for linux slaves
Sergey Sharybin [Mon, 3 Apr 2017 13:04:16 +0000 (15:04 +0200)]
Buildbot: SPecial branch trickery for linux slaves

4 years agoPoint all submodules to master branch
Sergey Sharybin [Mon, 3 Apr 2017 12:54:51 +0000 (14:54 +0200)]
Point all submodules to master branch

This way it should be safe to use `git submodule update --remote`.

4 years agoBuildbot: Some special tricks for Blender 2.8 slave
Sergey Sharybin [Mon, 3 Apr 2017 12:49:07 +0000 (14:49 +0200)]
Buildbot: Some special tricks for Blender 2.8 slave

4 years agoFix blender player
Sergey Sharybin [Mon, 3 Apr 2017 10:31:33 +0000 (12:31 +0200)]
Fix blender player

4 years agoFix T51115: Bump node is broken when the displacement socket is used
Sergey Sharybin [Mon, 3 Apr 2017 08:50:42 +0000 (10:50 +0200)]
Fix T51115: Bump node is broken when the displacement socket is used

4 years agoCollada - add flag to limit precision of exported data, mainly to simplify debugging
Gaia Clary [Mon, 3 Apr 2017 08:48:00 +0000 (10:48 +0200)]
Collada - add flag to limit precision of exported data, mainly to simplify debugging

4 years agofix: collada - do proper conversion from int to bool (as with other nearby parameters)
Gaia Clary [Mon, 3 Apr 2017 08:45:24 +0000 (10:45 +0200)]
fix: collada - do proper conversion from int to bool (as with other nearby parameters)

4 years agofix: T50412 - collada: Replaced precision local limit function by blender's own imple...
Gaia Clary [Sat, 1 Apr 2017 13:29:40 +0000 (15:29 +0200)]
fix: T50412 - collada: Replaced precision local limit function by blender's own implementation

4 years agoCleanup: style
Campbell Barton [Sat, 1 Apr 2017 01:09:17 +0000 (12:09 +1100)]
Cleanup: style

4 years agoDepsgraph: Correction for the previous local view commit
Sergey Sharybin [Fri, 31 Mar 2017 15:07:44 +0000 (17:07 +0200)]
Depsgraph: Correction for the previous local view commit

Need to flush layers from components back to ID node.

4 years agoFix threading conflicts in multitex_ext_safe()
Sergey Sharybin [Fri, 31 Mar 2017 14:09:27 +0000 (16:09 +0200)]
Fix threading conflicts in multitex_ext_safe()

This function was modifying texture datablock, which makes the call
unsafe for call from multiple threads. Now we pass the argument that
we don't need nodes to the underlying functions.

There will be still race condition in noise texture, but that should
at least be free from crashes. Doesn't mean we shouldn't fix it tho.

4 years agoCycles: Solve threading conflict in shader synchronization
Sergey Sharybin [Fri, 31 Mar 2017 13:29:20 +0000 (15:29 +0200)]
Cycles: Solve threading conflict in shader synchronization

Update tag might access links (when checking for attributes) and
the links might be in the middle of rebuild in simplification

4 years agoFix unreported bug in Blender Render: using unnormalized normal in normal map node...
Alexander Romanov [Fri, 31 Mar 2017 14:53:55 +0000 (17:53 +0300)]
Fix unreported bug in Blender Render: using unnormalized normal in normal map node in the same way as in baking

4 years agoWM: Previous commit broke common-case loading new file
Campbell Barton [Fri, 31 Mar 2017 12:42:44 +0000 (23:42 +1100)]
WM: Previous commit broke common-case loading new file

Handle this in the operator

4 years agoKeep current app-template when selecting 'New File'
Campbell Barton [Fri, 31 Mar 2017 11:06:36 +0000 (22:06 +1100)]
Keep current app-template when selecting 'New File'

4 years agoUI cleanup: simplify Icon handling of uiDefAutoButR for PROP_POINTER.
Bastien Montagne [Fri, 31 Mar 2017 10:13:34 +0000 (12:13 +0200)]
UI cleanup: simplify Icon handling of uiDefAutoButR for PROP_POINTER.

Comes from D113, but really not related to the patch's topic!

4 years agoCycles: More fixes after include changes
Mai Lavelle [Fri, 31 Mar 2017 08:12:13 +0000 (10:12 +0200)]
Cycles: More fixes after include changes

4 years agoFix T51072: The reference of a pyobject may be being overwritten in `bm_mesh_remap_cd...
Germano Cavalcante [Fri, 31 Mar 2017 04:01:16 +0000 (01:01 -0300)]
Fix T51072: The reference of a pyobject may be being overwritten in `bm_mesh_remap_cd_update`

In this case the Pyobject gets lost from pybm, and does not invalidate the PyElem.
This will cause the destructor of python to read invalid memory and crash.

The solution is to make a copy of the pyobjects pointers before overwriting.

4 years agoCorrect string formatting (error in recent change)
Campbell Barton [Thu, 30 Mar 2017 22:45:25 +0000 (09:45 +1100)]
Correct string formatting (error in recent change)

4 years agoCleanup: warnings
Campbell Barton [Thu, 30 Mar 2017 22:48:38 +0000 (09:48 +1100)]
Cleanup: warnings

4 years agoCleanup/fix bad code in IDP_SetIndexArray()
Bastien Montagne [Thu, 30 Mar 2017 20:52:12 +0000 (22:52 +0200)]
Cleanup/fix bad code in IDP_SetIndexArray()

Mainly, using index before checking for its validity...

4 years agoRedraw parent popup when the child popup is closed
raa [Thu, 30 Mar 2017 13:48:18 +0000 (16:48 +0300)]
Redraw parent popup when the child popup is closed

4 years agoDepsgraph: Fix missing updates when in local view
Sergey Sharybin [Thu, 30 Mar 2017 12:38:25 +0000 (14:38 +0200)]
Depsgraph: Fix missing updates when in local view

This area is a subject of reconsideration, so for now used simplest
way possible -- ensure depsgraph's nodes have proper layer flags
when going in and out of local mode.

4 years agoCycles: Fix missing kernel re-compilation after recent changes
Sergey Sharybin [Thu, 30 Mar 2017 09:42:23 +0000 (11:42 +0200)]
Cycles: Fix missing kernel re-compilation after recent changes

Reported by Mai in IRC, thanks!

4 years agoFix T51051: Incorrect render on 32bit Linux
Sergey Sharybin [Thu, 30 Mar 2017 09:23:26 +0000 (11:23 +0200)]
Fix T51051: Incorrect render on 32bit Linux

The issue was apparently caused by -fno-finite-math-only added to kernel.cpp
CFLAGS. For now just removed this flag from the kernel (we don't really want
it there at this point, and we don't have it for SSE/AVX optimized kernels).

But surely more investigation is needed here.

4 years agoCycles: Cleanup, rename RegularBVH to BinaryBVH
Sergey Sharybin [Tue, 28 Mar 2017 16:58:51 +0000 (18:58 +0200)]
Cycles: Cleanup, rename RegularBVH to BinaryBVH

Makes it more explicit what the structure is from it's name.

4 years agoMirror Modifier: Add offsets for mirrored UVs
Campbell Barton [Thu, 30 Mar 2017 01:39:51 +0000 (12:39 +1100)]
Mirror Modifier: Add offsets for mirrored UVs

The mirror modifier now has two fields that specify a -1 to 1 offset for
the U and V axes when mirroring their coordinates.

D1844 by @circuitfox

4 years agoCycles: Fix compilation error of app after the include directories change
Sergey Sharybin [Wed, 29 Mar 2017 14:53:46 +0000 (16:53 +0200)]
Cycles: Fix compilation error of app after the include directories change

4 years agoCycles: Attempt to work around compilation errors of CUDA on sm_2x
Sergey Sharybin [Wed, 29 Mar 2017 14:22:51 +0000 (16:22 +0200)]
Cycles: Attempt to work around compilation errors of CUDA on sm_2x

4 years agoCycles: Cleanup, indentation
Sergey Sharybin [Wed, 29 Mar 2017 13:41:56 +0000 (15:41 +0200)]
Cycles: Cleanup, indentation

4 years agoCycles: Remove toolkit-specific workaround from kernel
Sergey Sharybin [Wed, 29 Mar 2017 13:07:53 +0000 (15:07 +0200)]
Cycles: Remove toolkit-specific workaround from kernel

4 years agoCycles: Only use CUDA 8.0 as officially supported one
Sergey Sharybin [Wed, 29 Mar 2017 13:06:47 +0000 (15:06 +0200)]
Cycles: Only use CUDA 8.0 as officially supported one

This deprecates CUDA 7.5.

4 years agoCycles: Cleanup, don't use m_ prefix for public properties
Sergey Sharybin [Wed, 29 Mar 2017 12:30:39 +0000 (14:30 +0200)]
Cycles: Cleanup, don't use m_ prefix for public properties

4 years agoCycles: Fix compilation error with visibility flag disabled
Sergey Sharybin [Wed, 29 Mar 2017 12:28:45 +0000 (14:28 +0200)]
Cycles: Fix compilation error with visibility flag disabled

4 years agoCycles: Make all #include statements relative to cycles source directory
Sergey Sharybin [Tue, 28 Mar 2017 18:39:14 +0000 (20:39 +0200)]
Cycles: Make all #include statements relative to cycles source directory

The idea is to make include statements more explicit and obvious where the
file is coming from, additionally reducing chance of wrong header being
picked up.

For example, it was not obvious whether bvh.h was refferring to builder
or traversal, whenter node.h is a generic graph node or a shader node
and cases like that.

Surely this might look obvious for the active developers, but after some
time of not touching the code it becomes less obvious where file is coming

This was briefly mentioned in T50824 and seems @brecht is fine with such
explicitness, but need to agree with all active developers before committing

Please note that this patch is lacking changes related on GPU/OpenCL
support. This will be solved if/when we all agree this is a good idea to move

Reviewers: brecht, lukasstockner97, maiself, nirved, dingto, juicyfruit, swerner

Reviewed By: lukasstockner97, maiself, nirved, dingto

Subscribers: brecht

Differential Revision:

4 years agoCycles: Attempt to workaround compilation error on new CUDA toolkit and sm_2x
Sergey Sharybin [Wed, 29 Mar 2017 09:49:50 +0000 (11:49 +0200)]
Cycles: Attempt to workaround compilation error on new CUDA toolkit and sm_2x

4 years agoRemove non-bmesh case from test
Campbell Barton [Wed, 29 Mar 2017 09:10:46 +0000 (20:10 +1100)]
Remove non-bmesh case from test

4 years agoFix skin mark operator
Campbell Barton [Wed, 29 Mar 2017 08:32:57 +0000 (19:32 +1100)]
Fix skin mark operator

Accessed custom-data layer offset before creating.

4 years agoFix crash closing window in background mode
Campbell Barton [Wed, 29 Mar 2017 08:25:34 +0000 (19:25 +1100)]
Fix crash closing window in background mode

4 years agoFix missing NULL check in gpencil poll
Campbell Barton [Wed, 29 Mar 2017 08:19:25 +0000 (19:19 +1100)]
Fix missing NULL check in gpencil poll

Also de-duplicate poll functions

4 years agoUse 'empty' option for clearing factory settings
Campbell Barton [Wed, 29 Mar 2017 08:18:09 +0000 (19:18 +1100)]
Use 'empty' option for clearing factory settings

4 years agoOption to load startup file with empty-data
Campbell Barton [Wed, 29 Mar 2017 08:07:21 +0000 (19:07 +1100)]
Option to load startup file with empty-data

Useful for batch conversion and tests.

4 years agoBuildbot: Revert previous change, older toolkit has same exact behavior
Sergey Sharybin [Wed, 29 Mar 2017 08:46:53 +0000 (10:46 +0200)]
Buildbot: Revert previous change, older toolkit has same exact behavior

4 years agoBuildbot: Use older NVCC on 32bit linux
Sergey Sharybin [Wed, 29 Mar 2017 08:21:17 +0000 (10:21 +0200)]
Buildbot: Use older NVCC on 32bit linux

Newer toolkit has some weird issue with cross0-compiling 32bit kernels
from 64bit environment.

4 years agoBuildbot: Remove global hardcoded NVCC path
Sergey Sharybin [Wed, 29 Mar 2017 08:16:41 +0000 (10:16 +0200)]
Buildbot: Remove global hardcoded NVCC path

This was initially needed for heterogeneous setup of two toolkits which
we no longer need.

4 years agoCycles: Bring back preview AA samples when using BPT
Sergey Sharybin [Wed, 29 Mar 2017 07:12:26 +0000 (09:12 +0200)]
Cycles: Bring back preview AA samples when using BPT

This was removed in 93426cb. Please be more accurate when
changing interface.

4 years agoPyAPI: minor path init simplification
Campbell Barton [Wed, 29 Mar 2017 04:07:41 +0000 (15:07 +1100)]
PyAPI: minor path init simplification

4 years agoFix 'bl_app_override' wrapping multiple times.
Campbell Barton [Wed, 29 Mar 2017 03:29:18 +0000 (14:29 +1100)]
Fix 'bl_app_override' wrapping multiple times.

Calling `SomeClass.draw(self, context)` instead of `self.draw()`
would try to wrap the argument `self` multiple times, causing an error.

4 years agoFix memory leak re-registering operators
Campbell Barton [Wed, 29 Mar 2017 02:26:34 +0000 (13:26 +1100)]
Fix memory leak re-registering operators

Re-registering an operator used by the keymap would lead memory.
Reload scripts for eg leaked over ~1600 blocks.

4 years agoPyAPI: check modules are registered before unregister
Campbell Barton [Wed, 29 Mar 2017 01:35:00 +0000 (12:35 +1100)]
PyAPI: check modules are registered before unregister

Needed since templates may unregister classes.

Also replace old modules on reloading.

4 years agoFix T51068: Place props in their own row
Aaron Carlisle [Tue, 28 Mar 2017 20:29:20 +0000 (16:29 -0400)]
Fix T51068: Place props in their own row

This allows the props to extend into the blank space that is to the right.

4 years agoCycles: Switch to reformulated Pluecker ray/triangle intersection
Sergey Sharybin [Mon, 27 Mar 2017 15:06:37 +0000 (17:06 +0200)]
Cycles: Switch to reformulated Pluecker ray/triangle intersection

The intention of this commit it to address issues mentioned in the
reports T43865,T50164 and T50452.

The code is based on Embree code with some extra vectorization
to speed up single ray to single triangle intersection.

Unfortunately, such a fix is not coming for free. There is some
slowdown for AVX2 processors, mainly due to different vectorization
code, which caused different number of instructions to be executed
and different instructions-per-cycle counters. But on another hand
this commit makes pre-AVX2 platforms such as AVX and SSE4.1 a bit
faster. The prerformance goes as following:

              2.78c AVX2   2.78c AVX   Patch AVX2         Patch AVX
BMW            05:21.09     06:05.34    05:32.97 (+3.5%)   05:34.97 (-8.5%)
Classroom      16:55.36     18:24.51    17:10.41 (+1.4%)   17:15.87 (-6.3%)
Fishy Cat      08:08.49     08:36.26    08:09.19 (+0.2%)   08:12.25 (-4.7%
Koro           11:22.54     11:45.24    11:13.25 (-1.5%)   11:43.81 (-0.3%)
Barcelone      14:18.32     16:09.46    14:15.20 (-0.4%)   14:25.15 (-10.8%)

On GPU the performance is about 1.5-2% slower in my tests on GTX1080
but afraid we can't do much as a part of this chaneg here and
consider it a price to pay for more proper intersection check.

Made in collaboration with Maxym Dmytrychenko, big thanks to him!

Reviewers: brecht, juicyfruit, lukasstockner97, dingto

Differential Revision:

4 years agoForgot those IDP_LibLinkProperty call on node sockets IDProps in previous commit...
Bastien Montagne [Tue, 28 Mar 2017 12:37:18 +0000 (14:37 +0200)]
Forgot those IDP_LibLinkProperty call on node sockets IDProps in previous commit...

4 years agoFix: Icon offset for pie buttons
raa [Tue, 28 Mar 2017 10:44:02 +0000 (13:44 +0300)]
Fix: Icon offset for pie buttons

4 years agoCycles: Pass m128 vectors by const reference
Sergey Sharybin [Tue, 28 Mar 2017 09:01:11 +0000 (11:01 +0200)]
Cycles: Pass m128 vectors by const reference

4 years agoFix lib_link_cachefile.
Bastien Montagne [Tue, 28 Mar 2017 08:15:52 +0000 (10:15 +0200)]
Fix lib_link_cachefile.

That one was:
* Resetting non-ID pointers (lib_link_xxx funcs should only affect ID
  pointers, everything else shall be done in direct_link_xxx func).
* Even worse, always calling lib_link_animdata, even when
  LIB_TAG_NEED_LINK tag was unset...

4 years agoBring back `lib_link_mesh()` in 'order' with other libdata liblink functions.
Bastien Montagne [Tue, 28 Mar 2017 08:10:15 +0000 (10:10 +0200)]
Bring back `lib_link_mesh()` in 'order' with other libdata liblink functions.

We do not need any special handling anymore for usercount of images used
by faces/polygons (tpage stuff), since we have the 'real_user' handling,
which will gracefully cope with all possible situations.

So better not keep that ugly confusing useless special case.

4 years agoreadfile.c: Cleanup lib_link code a bit.
Bastien Montagne [Tue, 28 Mar 2017 08:03:59 +0000 (10:03 +0200)]
readfile.c: Cleanup lib_link code a bit.

* Add missing `IDP_LibLinkProperty()` calls for many ID types
  (harmless currently, but better be consistent here!).
* Bring lib_link_xxx functions more in line with each other.
* Replace some long if/else by switch.

4 years agoCorrect splash size check
Campbell Barton [Tue, 28 Mar 2017 06:07:11 +0000 (17:07 +1100)]
Correct splash size check

4 years agoFix columns with fixed width
raa [Mon, 27 Mar 2017 21:07:31 +0000 (00:07 +0300)]
Fix columns with fixed width

4 years agoCleanup: Use upper case consistently in adaptive feature compile logging.
Thomas Dinges [Mon, 27 Mar 2017 20:52:33 +0000 (22:52 +0200)]
Cleanup: Use upper case consistently in adaptive feature compile logging.

4 years agoCleanup: Resolve todo in CUDA voxel image code.
Thomas Dinges [Mon, 27 Mar 2017 20:36:26 +0000 (22:36 +0200)]
Cleanup: Resolve todo in CUDA voxel image code.

4 years agoCycles UI: Avoid abreviation for Hair Extension.
Thomas Dinges [Mon, 27 Mar 2017 19:59:29 +0000 (21:59 +0200)]
Cycles UI: Avoid abreviation for Hair Extension.

Since 2.5x we should try to avoid such abreviations in the UI, except for common terms like Min / Max as much as possible.

4 years agoCycles: Move Shadow Catcher UI option next to Ray Visibility.
Thomas Dinges [Mon, 27 Mar 2017 19:51:56 +0000 (21:51 +0200)]
Cycles: Move Shadow Catcher UI option next to Ray Visibility.

Previously it was beneath the Performance UI label, which was incorrect. It's better suited next to Ray Visibility.

4 years agoCycles: Correct ifdef around float3 intrinsics
Sergey Sharybin [Mon, 27 Mar 2017 14:08:39 +0000 (16:08 +0200)]
Cycles: Correct ifdef around float3 intrinsics

4 years agoCorrect for Py3.5
Campbell Barton [Mon, 27 Mar 2017 10:33:51 +0000 (21:33 +1100)]
Correct for Py3.5

4 years agoCycles: Make shadow catcher an optional feature for OpenCL
Sergey Sharybin [Tue, 21 Mar 2017 12:55:27 +0000 (13:55 +0100)]
Cycles: Make shadow catcher an optional feature for OpenCL

Solves majority of speed regression on AMD OpenCL.

4 years agoCycles: Add OpenCL support for shadow catcher feature
Hristo Gueorguiev [Tue, 21 Mar 2017 11:27:12 +0000 (12:27 +0100)]
Cycles: Add OpenCL support for shadow catcher feature

The title says it all actually.

4 years agoCycles: Remove ccl_addr_space from RNG passed to functions
Hristo Gueorguiev [Tue, 21 Mar 2017 11:24:47 +0000 (12:24 +0100)]
Cycles: Remove ccl_addr_space from RNG passed to functions

Simplifies code quite a bit, making it shorter and easier to extend.
Currently no functional changes for users, but is required for the
upcoming work of shadow catcher support with OpenCL.

4 years agoCycles: First implementation of shadow catcher
Sergey Sharybin [Thu, 9 Feb 2017 13:19:01 +0000 (14:19 +0100)]
Cycles: First implementation of shadow catcher

It uses an idea of accumulating all possible light reachable across the
light path (without taking shadow blocked into account) and accumulating
total shaded light across the path. Dividing second figure by first one
seems to be giving good estimate of the shadow.

In fact, to my knowledge, it's something really similar to what is
happening in the denoising branch, so we are aligned here which is good.

The workflow is following:

- Create an object which matches real-life object on which shadow is
  to be catched.

- Create approximate similar material on that object.

  This is needed to make indirect light properly affecting CG objects
  in the scene.

- Mark object as Shadow Catcher in the Object properties.

Ideally, after doing that it will be possible to render the image and
simply alpha-over it on top of real footage.

4 years agoCycles: Optimize shaders earlier to skip unneccessary attributes for noninteractive...
Lukas Stockner [Wed, 14 Dec 2016 22:47:39 +0000 (23:47 +0100)]
Cycles: Optimize shaders earlier to skip unneccessary attributes for noninteractive rendering

Before, Cycles would first sync the shader exactly as shown in the UI, then determine and sync the used attributes and later optimize the shader.
Therefore, even completely unconnected nodes would cause unneccessary attributes to be synced.

The reason for this is to avoid frequent resyncs when editing shaders interactively, but it can still be avoided for noninteractive renders - which is what this commit does.

Reviewed by: sergey

Differential Revision: