blender.git
3 years agoMerge branch 'master' into blender2.8
Campbell Barton [Wed, 13 Sep 2017 13:44:13 +0000 (23:44 +1000)]
Merge branch 'master' into blender2.8

3 years agoFix T52299: X resolution of 4 causes nodes to collapse
Sergey Sharybin [Wed, 13 Sep 2017 13:29:37 +0000 (18:29 +0500)]
Fix T52299: X resolution of 4 causes nodes to collapse

Was caused by numeric overflow when calculating preview dimensions.
Now we try to avoid really insance preview resolutions by fitting
aspect into square.

3 years agoEevee: SSR: Making ray count a define rather than an uniform.
Clément Foucault [Wed, 13 Sep 2017 13:29:13 +0000 (15:29 +0200)]
Eevee: SSR: Making ray count a define rather than an uniform.

The branching introduced by the uniform caused problems on mesa + AMD in the resolve stage.
This patch create one shader per sample count without branching.
This improves performance of a single ray per pixel case (3.0ms against 3.6ms in my testing)

3 years agoCode cleanup: store branch factor in PathState.
Brecht Van Lommel [Sun, 10 Sep 2017 12:09:12 +0000 (14:09 +0200)]
Code cleanup: store branch factor in PathState.

3 years agoCode cleanup: avoid used of uninitialized value in case of precision issue.
Brecht Van Lommel [Fri, 8 Sep 2017 01:21:50 +0000 (03:21 +0200)]
Code cleanup: avoid used of uninitialized value in case of precision issue.

3 years agoCode cleanup: abstract shadow catcher logic more into accumulation code.
Brecht Van Lommel [Mon, 28 Aug 2017 11:33:37 +0000 (13:33 +0200)]
Code cleanup: abstract shadow catcher logic more into accumulation code.

3 years agoCode cleanup: deduplicate some branched and split kernel code.
Brecht Van Lommel [Wed, 13 Sep 2017 00:10:24 +0000 (02:10 +0200)]
Code cleanup: deduplicate some branched and split kernel code.

Benchmarks peformance on GTX 1080 and RX 480 on Linux is the same for
bmw27, classroom, pabellon, and about 2% faster on fishy_cat and koro.

3 years agoCode cleanup: tweak inlining for 2% better CUDA performance with hair.
Brecht Van Lommel [Tue, 12 Sep 2017 22:12:51 +0000 (00:12 +0200)]
Code cleanup: tweak inlining for 2% better CUDA performance with hair.

3 years agoFix T52140: Align objects centers using origin for text
Sergey Sharybin [Wed, 13 Sep 2017 12:38:20 +0000 (17:38 +0500)]
Fix T52140: Align objects centers using origin for text

The issue was caused by operator redo which frees all object's evaluated data,
including bounding box. This bounding box can not be reconstructed properly
without full curve evaluation (need to at least convert font to nurbs, which is
not cheap already).

3 years agoCleanup: avoid right-shifted args in RNA register
Campbell Barton [Wed, 13 Sep 2017 11:52:57 +0000 (21:52 +1000)]
Cleanup: avoid right-shifted args in RNA register

3 years agoNode UI: scale cross by pixelsize
Campbell Barton [Wed, 13 Sep 2017 11:46:43 +0000 (21:46 +1000)]
Node UI: scale cross by pixelsize

Draws a little smaller to fit with 2.8x manipulator.

3 years agoManipulator: cage2d option to grab w/ a center handle
Campbell Barton [Wed, 13 Sep 2017 11:42:13 +0000 (21:42 +1000)]
Manipulator: cage2d option to grab w/ a center handle

3 years agoFix T52113: Compositor doesnt mix unrendered render layers well
Sergey Sharybin [Wed, 13 Sep 2017 10:37:01 +0000 (15:37 +0500)]
Fix T52113: Compositor doesnt mix unrendered render layers well

Compositor was always defaulting to all-zero s output for missing passes.

This was broken in 4cf7fc3.

3 years agoCompositor: Cleanup, get rid of nested ternary operators
Sergey Sharybin [Wed, 13 Sep 2017 10:00:14 +0000 (15:00 +0500)]
Compositor: Cleanup, get rid of nested ternary operators

Having single switch statement is much more readable.

3 years agoCompositor: Cleanup, de-duplicate some code
Sergey Sharybin [Wed, 13 Sep 2017 09:57:57 +0000 (14:57 +0500)]
Compositor: Cleanup, de-duplicate some code

3 years agoCompositor: Cleanup, reduce indentation level in render layer node
Sergey Sharybin [Wed, 13 Sep 2017 09:52:24 +0000 (14:52 +0500)]
Compositor: Cleanup, reduce indentation level in render layer node

There is absolute no reason to have such an indentation level, it only causes
readability and maintainability issues. It is really simple to make code more
"streamlined".

3 years agoManipulator: Only allow negative scale w/ flag set
Campbell Barton [Wed, 13 Sep 2017 08:19:23 +0000 (18:19 +1000)]
Manipulator: Only allow negative scale w/ flag set

In most cases we don't want this by default

3 years agoManipulator: use solid regions for select drawing
Campbell Barton [Wed, 13 Sep 2017 07:07:15 +0000 (17:07 +1000)]
Manipulator: use solid regions for select drawing

Needed for 3D view selection

3 years agoManipulator: cage2d - uniform handle size
Campbell Barton [Tue, 12 Sep 2017 17:29:29 +0000 (03:29 +1000)]
Manipulator: cage2d - uniform handle size

3 years agoManipulator: fix cage2d scaling
Campbell Barton [Tue, 12 Sep 2017 15:11:18 +0000 (01:11 +1000)]
Manipulator: fix cage2d scaling

3 years agoEevee: Fix T52713: SSR not working in AMD
Clément Foucault [Tue, 12 Sep 2017 16:32:29 +0000 (18:32 +0200)]
Eevee: Fix T52713: SSR not working in AMD

This was cause by a fairly funky unitialize buffer (last frame) that was causing NANs during the SSR resolve stage.
They were then propagated to the whole image during the next swap.

Bypassing the SSR completly if no valid history exists fixes the problem. Also disabling SSR data output in this case so we can have correct reflection in the 1st history buffer.

3 years agoEevee: Fix T52510: assert with volume defines.
Clément Foucault [Tue, 12 Sep 2017 15:50:21 +0000 (17:50 +0200)]
Eevee: Fix T52510: assert with volume defines.

This assert was not making sense at all. Removing

3 years agoEevee: Fix extinction of Light parallel to views.
Clément Foucault [Tue, 12 Sep 2017 14:18:18 +0000 (16:18 +0200)]
Eevee: Fix extinction of Light parallel to views.

This was a problem with orthographic views and lights without rotations. This introduce a small bias that should fix most cases.

3 years agoCycles: change AO bounces approximation to do more glossy and transmission.
Mathieu Menuet [Tue, 12 Sep 2017 13:13:55 +0000 (15:13 +0200)]
Cycles: change AO bounces approximation to do more glossy and transmission.

Rather than treating all ray types equally, we now always render 1 glossy
bounce and unlimited transmission bounces. This makes it possible to get
good looking results with low AO bounces settings, making it useful to
speed up interior renders for example.

Reviewed By: brecht

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

3 years agoEevee: Fix wrong shadow Orco mapping.
Clément Foucault [Tue, 12 Sep 2017 13:06:07 +0000 (15:06 +0200)]
Eevee: Fix wrong shadow Orco mapping.

3 years agoEevee / DRW : Codestyle
Clément Foucault [Tue, 12 Sep 2017 13:03:34 +0000 (15:03 +0200)]
Eevee / DRW : Codestyle

3 years agoT50354: Action length calculation added unnecessary padding if some F-Curves
Joshua Leung [Tue, 12 Sep 2017 00:35:04 +0000 (12:35 +1200)]
T50354: Action length calculation added unnecessary padding if some F-Curves
only contained a single key (on the last real frame of the action).

3 years agoAdding some verbose documentation
Joshua Leung [Mon, 11 Sep 2017 11:42:31 +0000 (23:42 +1200)]
Adding some verbose documentation

I thought this was already clear enough, but apparently not.

3 years agoEevee: Fix T52480: Can't reproduce Metallic transparency with Principled + Mix Shader
Clément Foucault [Tue, 12 Sep 2017 12:19:57 +0000 (14:19 +0200)]
Eevee: Fix T52480: Can't reproduce Metallic transparency with Principled + Mix Shader

You can now use a transparent shader as a completly transparent bsdf. And use whatever alpha mask in a mix shader between a transparent bsdf and another bsdf.

3 years agoEevee: Fix T52546 : 129th light crashes Blender
Clément Foucault [Tue, 12 Sep 2017 11:13:20 +0000 (13:13 +0200)]
Eevee: Fix T52546 : 129th light crashes Blender

3 years agoFix T52573: Cycles baking artifacts
Sergey Sharybin [Tue, 12 Sep 2017 11:33:42 +0000 (16:33 +0500)]
Fix T52573: Cycles baking artifacts

Synchronize condition for faces split between Cycles itself and baking API.

3 years agoCycles tests: Add baking features tests
Sergey Sharybin [Tue, 12 Sep 2017 11:22:02 +0000 (16:22 +0500)]
Cycles tests: Add baking features tests

3 years agoFix T52679: Hole in bake normal
Sergey Sharybin [Tue, 12 Sep 2017 09:14:34 +0000 (14:14 +0500)]
Fix T52679: Hole in bake normal

In fact, any type of baking might have caused holes in mesh.

The issue was caused by zspan_scanconvert() attempting to get order of traversal
'a-priori', which might have failed if check happens at the "tip" of span where
`zspan->span1[sn1] == zspan->span2[sn1]`.

Didn't see anything bad on making it a check when iterating over scanlines and
pick minimal span based on current scanline. It's slower, but unlikely to cause
measurable difference. Quality should stay the same unless i'm missing something.

Reviewers: brecht, dfelinto

Reviewed By: brecht

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

3 years agoFix rare firefly in volume equiangular sampling when sampling short distance.
Brecht Van Lommel [Fri, 8 Sep 2017 23:37:54 +0000 (01:37 +0200)]
Fix rare firefly in volume equiangular sampling when sampling short distance.

3 years agoCycles tests: add environment variable to update references renders.
Brecht Van Lommel [Sat, 2 Sep 2017 22:15:14 +0000 (00:15 +0200)]
Cycles tests: add environment variable to update references renders.

This will copy new renders over references renders:
CYCLESTEST_UPDATE=1 ctest -R cycles

3 years agoCycles: improve sample stratification on area lights for path tracing.
Brecht Van Lommel [Thu, 7 Sep 2017 23:42:14 +0000 (01:42 +0200)]
Cycles: improve sample stratification on area lights for path tracing.

Previously we used a 1D sequence to select a light, and another 2D sequence
to sample a point on the light. For multiple lights this meant each light
would get a random subset of a 2D stratified sequence, which is not
guaranteed to be stratified anymore.

Now we use only a 2D sequence, split into segments along the X axis, one for
each light. The samples that fall within a segment then each are a stratified
sequence, at least in the limit. So for example for two lights, we split up
the unit square into two segments [0,0.5[ x [0,1[ and [0.5,1[ x [0,1[.

This doesn't make much difference in most scenes, mainly helps if you have a
few large area lights or some types of HDR backgrounds.

3 years agoFix Cycles bug in RR termination, probability should never be > 1.0.
Brecht Van Lommel [Tue, 12 Sep 2017 00:27:02 +0000 (02:27 +0200)]
Fix Cycles bug in RR termination, probability should never be > 1.0.

This causes render differences in some scenes, for example fishy_cat
and pabellon scenes render brighter in a few spots. This is an old
bug, not due to recent RR changes.

3 years agoCycles: Tweaks to avoid compilation error of megakernel
Sergey Sharybin [Tue, 12 Sep 2017 08:33:46 +0000 (13:33 +0500)]
Cycles: Tweaks to avoid compilation error of megakernel

Also moved code out of deep-inside ifdef block, otherwise it was quite confusing.

3 years agoFix T52705: Lamps shadows are not refreshed when tweaking lamps parameters
Sergey Sharybin [Tue, 12 Sep 2017 06:58:30 +0000 (11:58 +0500)]
Fix T52705: Lamps shadows are not refreshed when tweaking lamps parameters

Lamp and camera datablocks updates should flush some updates to corresponding
objects. Currently it's done as Parameters -> Parameters relations.

3 years agoUpdate tgz script, remove deprecated `GZIP` use
Campbell Barton [Tue, 12 Sep 2017 06:23:10 +0000 (16:23 +1000)]
Update tgz script, remove deprecated `GZIP` use

3 years agoEevee: Fix T52593
Clément Foucault [Mon, 11 Sep 2017 21:17:33 +0000 (23:17 +0200)]
Eevee: Fix T52593

Use a placeholder texture to remove problems with sampler with no texture bound to it.

3 years agoDRW: Use static list (array) of texture/ubo to track bound textures/ubos.
Clément Foucault [Mon, 11 Sep 2017 21:15:29 +0000 (23:15 +0200)]
DRW: Use static list (array) of texture/ubo to track bound textures/ubos.

This is in order to use the same texture on multiple sampler.
Also texture counter is reset after each shading group. This mimics the previous behaviour.

3 years agoEevee: Fix performance issue on intel.
Clément Foucault [Mon, 11 Sep 2017 12:32:44 +0000 (14:32 +0200)]
Eevee: Fix performance issue on intel.

I did not checked if it makes a diff on other GPU. This might be change to be intel only.

3 years agoEevee: Fix shadow copy shader error.
Clément Foucault [Mon, 11 Sep 2017 12:09:12 +0000 (14:09 +0200)]
Eevee: Fix shadow copy shader error.

filter() is a reserved function.

3 years agoFix T52682: When hair number=faces number, particles/face = 1 , actually some hair...
Bastien Montagne [Mon, 11 Sep 2017 10:31:33 +0000 (12:31 +0200)]
Fix T52682: When hair number=faces number, particles/face = 1 , actually some hair is overlap.

Just using same code for distribution for face/volume as the one
changed/used for vertices since some months.

Note that this change is breacking compatibility, in that distribution
of particles over faces/volume may not be exactly the same as
previously.

3 years agoMerge branch 'master' into blender2.8
Campbell Barton [Mon, 11 Sep 2017 06:52:53 +0000 (16:52 +1000)]
Merge branch 'master' into blender2.8

3 years agoFix T52701: Mesh shortest path fails at boundaries
Campbell Barton [Mon, 11 Sep 2017 06:45:19 +0000 (16:45 +1000)]
Fix T52701: Mesh shortest path fails at boundaries

3 years agoFix T52696: Sculpt - Brush spacing pressure artifacts
Joshua Leung [Mon, 11 Sep 2017 06:24:39 +0000 (18:24 +1200)]
Fix T52696: Sculpt - Brush spacing pressure artifacts

Was caused by divide-by-zero in paint_stroke_integrate_overlap()
in paint_stroke.c, as identified by Bob Smith (uvwxyz).

Thanks for the report!

3 years agoEevee: Fix shadow bleeding after farclip for cubemaps.
Clément Foucault [Sun, 10 Sep 2017 23:13:55 +0000 (01:13 +0200)]
Eevee: Fix shadow bleeding after farclip for cubemaps.

NOTE: We should not check for radial distance. But this is faster.

3 years agoBake Action: operate on selected objects
Campbell Barton [Sun, 10 Sep 2017 06:58:04 +0000 (16:58 +1000)]
Bake Action: operate on selected objects

Previously only the active object was used.

Use coroutines to support baking frames for multiple objects at once,
without having to playback the animation multiple times.

3 years agoPyAPI: Add object argument to bake_action
Campbell Barton [Sun, 10 Sep 2017 04:30:03 +0000 (14:30 +1000)]
PyAPI: Add object argument to bake_action

Avoids having to set the scene's active object first.

3 years agoEevee: Shadows: Update cascaded shadowmaps when rendering probes.
Clément Foucault [Sun, 10 Sep 2017 01:07:55 +0000 (03:07 +0200)]
Eevee: Shadows: Update cascaded shadowmaps when rendering probes.

This is really resource intensive but there is no other way to correctly handle it.

3 years agoEevee: Shadow: Fix, improve cascade shadow map UI.
Clément Foucault [Sat, 9 Sep 2017 19:11:58 +0000 (21:11 +0200)]
Eevee: Shadow: Fix, improve cascade shadow map UI.

3 years agoEevee: Shadows: Add cubemap filtering and adaptive sample count.
Clément Foucault [Sat, 9 Sep 2017 19:11:22 +0000 (21:11 +0200)]
Eevee: Shadows: Add cubemap filtering and adaptive sample count.

Filter size is constant in world space and not dependant of shadow resolution.
The filter size is limited to the number of precomputed samples.

3 years agoEevee: Shadow: Fix Incorrect shadowing after sun lamp far clip plane.
Clément Foucault [Fri, 8 Sep 2017 18:22:50 +0000 (20:22 +0200)]
Eevee: Shadow: Fix Incorrect shadowing after sun lamp far clip plane.

Reject cascade sample if not in shadowmap volume.

3 years agoEevee: Shadows: Filtering improvement.
Clément Foucault [Fri, 8 Sep 2017 18:21:57 +0000 (20:21 +0200)]
Eevee: Shadows: Filtering improvement.

- Replace poisson by concentric samples: Less variance. They are sorted by radius then by angle.
- Separate filtering into 2 blur. First blur is 3x3 box blur. Second is user dependant.
- Group fetches by group of 4.

3 years agoEevee: Add Cascaded Shadow Map options.
Clément Foucault [Thu, 7 Sep 2017 13:31:11 +0000 (15:31 +0200)]
Eevee: Add Cascaded Shadow Map options.

3 years agoLamps: Remove uper limit of the buffer bias parameter.
Clément Foucault [Thu, 7 Sep 2017 13:17:03 +0000 (15:17 +0200)]
Lamps: Remove uper limit of the buffer bias parameter.

3 years agoEevee: Add Cascaded Shadow Map support with filtering.
Clément Foucault [Tue, 5 Sep 2017 19:02:17 +0000 (21:02 +0200)]
Eevee: Add Cascaded Shadow Map support with filtering.

This brings some data structure changes.
Shared shadow data are stored in ShadowData (in glsl) (aka EEVEE_Shadow in C).
This structure contains the array indices of the first shadow element of this shadow "object".
It also contains how many shadow to evaluate (to be used for Multiple shadow maps).

The filtering is noisy and needs improvement.

3 years agoEevee: Shadow: Add high bitdepth option.
Clément Foucault [Sat, 2 Sep 2017 00:27:28 +0000 (02:27 +0200)]
Eevee: Shadow: Add high bitdepth option.

This option is here for reducing the memory usage of shadow maps.

Also lower bitdepth are quicker to process.

3 years agoEevee: Expose Shadow filter size.
Clément Foucault [Fri, 1 Sep 2017 23:42:34 +0000 (01:42 +0200)]
Eevee: Expose Shadow filter size.

3 years agoEevee: Add Variance Shadow Mapping
Clément Foucault [Fri, 1 Sep 2017 16:39:39 +0000 (18:39 +0200)]
Eevee: Add Variance Shadow Mapping

This is an alternative to ESM. It does not suffer the same bleeding artifacts.

3 years agoEevee: Shadows: Add UI buttons for size and method
Clément Foucault [Fri, 1 Sep 2017 13:59:58 +0000 (15:59 +0200)]
Eevee: Shadows: Add UI buttons for size and method

Only one method is available right now. VSM and PCF are comming.

3 years agoEevee: Refactor Shadow System
Clément Foucault [Fri, 1 Sep 2017 13:59:01 +0000 (15:59 +0200)]
Eevee: Refactor Shadow System

- Use only one 2d texture array to store all shadowmaps.
- Allow to change shadow maps resolution.
- Do not output radial distance when rendering shadowmaps. This will allow fast rendering of shadowmaps when we will drop the use of geometry shaders.

3 years agoResolve T52687: Add node label shows as 'Unknown'
Campbell Barton [Sat, 9 Sep 2017 12:35:33 +0000 (22:35 +1000)]
Resolve T52687: Add node label shows as 'Unknown'

Add type access method, need to extend to other types
for now just get node UI working properly again.

3 years agoPyAPI: Fix mathutils freeze allowing owned data
Campbell Barton [Sat, 9 Sep 2017 01:08:38 +0000 (11:08 +1000)]
PyAPI: Fix mathutils freeze allowing owned data

3 years agoDocs: mathutils docstrings
Campbell Barton [Sat, 9 Sep 2017 01:02:26 +0000 (11:02 +1000)]
Docs: mathutils docstrings

3 years agoCleanup: mathutils vector comments
Campbell Barton [Sat, 9 Sep 2017 00:47:57 +0000 (10:47 +1000)]
Cleanup: mathutils vector comments

Use doxy markup & correct outdated info.

3 years agoCorrect last commit
Campbell Barton [Sat, 9 Sep 2017 00:14:53 +0000 (10:14 +1000)]
Correct last commit

3 years agoCleanup: Simplify SWIZZLE macro
Campbell Barton [Fri, 8 Sep 2017 23:58:19 +0000 (09:58 +1000)]
Cleanup: Simplify SWIZZLE macro

- Use indices instead of character args.
- Use numbered macros instead of variadic args.

Parsing using rtags used over 11gb of memory. While this should be
resolved upstream (report as #1053), the extra complexity didn't give
any real advantage.

3 years ago[msvc/make.bat] mention the msvc-2017 option in the make.bat help text.
Ray Molenkamp [Fri, 8 Sep 2017 20:24:02 +0000 (14:24 -0600)]
[msvc/make.bat] mention the msvc-2017 option in the make.bat help text.

3 years agoCycles: Attempt to work around compilation of sm_20 and sm_21
Sergey Sharybin [Fri, 8 Sep 2017 16:37:54 +0000 (18:37 +0200)]
Cycles: Attempt to work around compilation of sm_20 and sm_21

Disabled forceinline for those architectures, which seems to be compiling
successfully more often.

There might be ~3% slowdown based on quick tests, but better be rendering
something rather than failing to compile kernels again and again.

Those architectures will be doomed for abandon once we'll switch to toolkit 9.

3 years agoFix T52628: own error in string duplication
Campbell Barton [Fri, 8 Sep 2017 15:59:07 +0000 (01:59 +1000)]
Fix T52628: own error in string duplication

Error in 636baa598a56

3 years agoCycles: disable fast math flags, only use a subset.
Brecht Van Lommel [Thu, 7 Sep 2017 00:33:50 +0000 (02:33 +0200)]
Cycles: disable fast math flags, only use a subset.

Empty BVH nodes are set to NaN which must be preserved all the way to the
tnear <= tfar test which can then give false for empty nodes. This needs
strict semantices and careful argument ordering for min() and max(), so
the second argument is used if either of the arguments is NaN.

Fixes T52635: crash in BVH traversal with SSE4.1.

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

3 years agoFix: Grease Pencil pie menu keymaps were broken after the menus got renamed
Joshua Leung [Fri, 8 Sep 2017 13:02:32 +0000 (01:02 +1200)]
Fix: Grease Pencil pie menu keymaps were broken after the menus got renamed

3 years agoFix T52650:Grease pencil selection its not automatically updating in Clip Editor
Antonio Vazquez [Fri, 8 Sep 2017 09:21:49 +0000 (11:21 +0200)]
Fix T52650:Grease pencil selection its not automatically updating in Clip Editor

3 years agoFix T52678: Crash editing gpencil w/ frame-lock
Campbell Barton [Fri, 8 Sep 2017 08:51:47 +0000 (18:51 +1000)]
Fix T52678: Crash editing gpencil w/ frame-lock

3 years agoFix leak caused by wrong ownership flag
Campbell Barton [Thu, 7 Sep 2017 18:22:19 +0000 (04:22 +1000)]
Fix leak caused by wrong ownership flag

3 years agoFix leak w/ ocio glsl draw
Campbell Barton [Thu, 7 Sep 2017 18:20:58 +0000 (04:20 +1000)]
Fix leak w/ ocio glsl draw

3 years agoFix T52046: View transform applied twice w/ GL render
Campbell Barton [Thu, 7 Sep 2017 17:52:31 +0000 (03:52 +1000)]
Fix T52046: View transform applied twice w/ GL render

Patch from @sergey w/ minor edit.

3 years agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 7 Sep 2017 17:18:39 +0000 (03:18 +1000)]
Merge branch 'master' into blender2.8

3 years agoCorrect function name in argument parsing
Campbell Barton [Thu, 7 Sep 2017 14:59:27 +0000 (00:59 +1000)]
Correct function name in argument parsing

3 years agoPyAPI: use bl_rna_get_subclass for node API
Campbell Barton [Thu, 7 Sep 2017 14:03:01 +0000 (00:03 +1000)]
PyAPI: use bl_rna_get_subclass for node API

Returns a default value instead of an error when the type isn't defined.

3 years agoPyAPI: add function to get an RNA subclass
Campbell Barton [Thu, 7 Sep 2017 13:53:02 +0000 (23:53 +1000)]
PyAPI: add function to get an RNA subclass

This is inconvenient in regular Python, add a class-method
to perform the operation, eg:

bpy.types.Node.bl_rna_find_subclass("CustomNodeType")

3 years agoCleanup: remove goto's
Campbell Barton [Thu, 7 Sep 2017 12:53:46 +0000 (22:53 +1000)]
Cleanup: remove goto's

3 years agoUI: fix memory leak when copy-to-selected failed
Campbell Barton [Thu, 7 Sep 2017 12:13:28 +0000 (22:13 +1000)]
UI: fix memory leak when copy-to-selected failed

3 years agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 7 Sep 2017 04:49:55 +0000 (14:49 +1000)]
Merge branch 'master' into blender2.8

This discards node drawing changes which need to be written as shaders.

3 years agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 7 Sep 2017 04:33:59 +0000 (14:33 +1000)]
Merge branch 'master' into blender2.8

3 years agoWeight Smooth: remove source option
Campbell Barton [Thu, 7 Sep 2017 04:12:11 +0000 (14:12 +1000)]
Weight Smooth: remove source option

Use current selection mode instead of an operator option.

3 years agoFix T52639: Weight paint smooth tool crash
Campbell Barton [Thu, 7 Sep 2017 03:20:39 +0000 (13:20 +1000)]
Fix T52639: Weight paint smooth tool crash

3 years agoCleanup: custom nodes template
Campbell Barton [Wed, 6 Sep 2017 19:18:44 +0000 (05:18 +1000)]
Cleanup: custom nodes template

- Use conventional (pep8) prop names
- Simplify class registration

3 years agoWorkaround node types not being exposed
Campbell Barton [Wed, 6 Sep 2017 19:17:02 +0000 (05:17 +1000)]
Workaround node types not being exposed

We might want to have a utility function for this,
for now just keep it working.

3 years agoNode UI: Add square and diamond socked draw styles
Campbell Barton [Wed, 6 Sep 2017 18:45:38 +0000 (04:45 +1000)]
Node UI: Add square and diamond socked draw styles

Currently not used by Blender's node trees

D2814 by @charlie

3 years agoFix T52660: CUDA volume texture rendering not working on Fermi GPUs.
Brecht Van Lommel [Wed, 6 Sep 2017 16:12:45 +0000 (18:12 +0200)]
Fix T52660: CUDA volume texture rendering not working on Fermi GPUs.

3 years agoFix crash using arrow manipulator
Campbell Barton [Wed, 6 Sep 2017 15:55:32 +0000 (01:55 +1000)]
Fix crash using arrow manipulator

3 years agoMerge branch 'master' into blender2.8
Brecht Van Lommel [Wed, 6 Sep 2017 15:23:47 +0000 (17:23 +0200)]
Merge branch 'master' into blender2.8

3 years agoFix mistake in previous fix for T52640.
Brecht Van Lommel [Wed, 6 Sep 2017 15:21:58 +0000 (17:21 +0200)]
Fix mistake in previous fix for T52640.

3 years agoUse normalized project functions
Campbell Barton [Wed, 6 Sep 2017 15:19:37 +0000 (01:19 +1000)]
Use normalized project functions

3 years agoFix T52640: crash when opening image file browser in some cases.
Brecht Van Lommel [Wed, 6 Sep 2017 13:56:01 +0000 (15:56 +0200)]
Fix T52640: crash when opening image file browser in some cases.

There was some invalid state in the screen here, some areas had
sa->full set even though no screen was maximized, which then caused
a restore from the wrong (empty) area, which then led to spacedata
being empty and a crash.

This fix properly clears the sa->full after restore, and also fixes
existing .blend files in such an invalid state.

3 years agoScrew Modifier: remove doubles option
Campbell Barton [Wed, 6 Sep 2017 14:10:13 +0000 (00:10 +1000)]
Screw Modifier: remove doubles option

Vertices on the axis can be optionally merged,
nice for creating objects which close at the end-points.