Commit Graph

60457 Commits

Author SHA1 Message Date
04067a54c0 GPUShader: Fix previous "old Nvidia" fix commit
Note to myself, next time, better check the fix before pushing it.

GL_ARB_texture_gather is defined if there is support for the extension
not only when the extension is enabled. Do this check ourself with
GPU_ARB_texture_gather define.

Original fix 822de6e9e1
2018-08-13 23:09:48 +02:00
53ed270523 Fix T56298: Rendering glitch when bones are in stick mode in ortho view 2018-08-13 23:01:18 +02:00
efd44f8480 Cleanup: GPU codegen: remove most of legacy code
A lot of code in codegen was used by previous GLSL system.
Now most of it is not used due to all the things being written from scratch
in 2.8 and we can clean most of it.

As a side not this make the system a bit less flexible (no support for
cubemaps, preview image, etc...) but can be extended again.
2018-08-13 23:01:18 +02:00
77b39bbaa0 Cleanup: Rename GPU_* functions to make more sense
* Remove GPU_link_changed which is unused.
* Remove all GPU link function that are not used anymore.
* GPU_uniform_buffer is now GPU_uniform.
* GPU_texture_ramp is now GPU_color_band.
* GPU_uniform is now GPU_constant.
2018-08-13 23:01:18 +02:00
822de6e9e1 Fix T55802 shader compile bug with texture gather on old Nvidia card
The extension GL_ARB_texture_gather is reported to be supported and does
not trigger an error when enabled but the textureGater functions are not
defined.

Workaround is to disable the use of this extension on such systems.
2018-08-13 23:01:18 +02:00
2aa26de378 Use full transformation of B-Bone segments in Copy Transforms.
Currently constraints can only read the location along the
spline. This obviously limits opportunities for complex bone
interactions in rigs.

This patch exposes access to rotation and scale as well in
Copy Transforms. However, due to the way how things work,
this data cannot be smoothly interpolated, and abruptly
changes when switching to the next segment.

Reviewers: aligorith

Differential Revision: https://developer.blender.org/D3545
2018-08-13 20:37:53 +03:00
47af343b61 Implement multiplicative Copy Scale and make it the new default.
Scale is a multiplicative quantity, so adding it doesn't make sense.
However, for backward compatibility reasons, and in case somebody
actually desires the old additive behavior, the old way remains as
an option.

Without this change the only way to properly combine scale is via
parenting or the complicated Transformation constraint.

The new mode is turned on by a flag for file compatibility, but the
RNA option is reversed so that the new behavior feels more default.

Reviewers: aligorith

Differential Revision: https://developer.blender.org/D3558
2018-08-13 19:57:15 +03:00
a5aeca4a64 Fix dependency graph for constraints depending on B-Bone shape.
Some constraints have an option to take the final bezier shape of
the target B-Bone into account. This shape usually depends on two
other bones in addition to the target itself, so the graph should
include the relevant dependencies.

Reviewers: sergey

Differential Revision: https://developer.blender.org/D3591
2018-08-13 19:02:49 +03:00
ff6bd57873 Merge branch 'master' into blender2.8 2018-08-13 17:49:19 +02:00
bc675d90d0 Fix T55745: Pick Shortest Path tool, inconsistent selection.
To get consistent, user-expected results here, we need to 'fake'
starting immediately after a 'skip' block (such that we start with a
full block of selected elements).

Same issue affected vertices and edges selection of course, did not
check the other usages of WM_operator_properties_checker_interval_test()
though.
2018-08-13 17:48:36 +02:00
0e8bd6ba8a Version update to 2.80 Alpha 2, new splash from Hero open movie. 2018-08-13 16:53:16 +02:00
5c61be777f Subsurf: Introduce quality option
For users it defines how accurate vertex positions are in terms
of limit surface (as in, how close the vertices locations to the
condition when they are calculated for an infinitely subdivided
mesh).

This affects things like:

- Irregular vertices (joint of 3 or more edges)
- Crease

Keep quality value low for performance.

NOTE: Going higher does not necessarily mean real improvement
in quality, ideal case might be reached well before maximum
quality of 10. Quality of 3 is a good starting point.

Internally quality is translated directly to adaptive subdivision
level.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3599
2018-08-13 16:04:06 +02:00
aac5458fa5 Fix bevel problem for vertex-only cube corners.
Was introduced by code from gsoc branch that does better job
on cube corners, but shouldn't have applied to vertex-only case.
2018-08-13 09:25:16 -04:00
Dalai Felinto
cead9abe07 Depsgraph: Build node and relations for movieclip ID for its nodes
Otherwise we get asserts when opening files with the Move Distortion node.
2018-08-13 10:11:27 -03:00
b7784c0cd2 Merge branch 'master' into blender2.8 2018-08-13 13:49:48 +02:00
798a83e35f Cleanup: avoid too close namings, prone to typo mistakes! 2018-08-13 13:47:06 +02:00
0aefef7f8f Fix T56224: Blender2.8 will force a quit when trying to open a scene containing clip track created by blender 2.79.
Beautiful example of typo going unoticed and firing back up in totally
unexpected place years later. Guess nobody actually duplicated a Clip
data-block before! :P

Most likely own fault, during refactor of ID copying code.
2018-08-13 13:43:35 +02:00
8656081561 Depsgraph: Remove obscure code which was only needed for old OSD implementation 2018-08-13 13:10:10 +02:00
3ee6b940df Subsurf: Remove OpenSubdiv options from modifier
There are following reasons to do so:

- The plan is to replace it with some sort of object or viewport option,
  so we can apply OpenSubdiv subdivisions on top of modifier stack and
  keep modifier stack purely CPU side.

  This will solve issues when adding some relation in scene will force
  modifier to be evaluated on CPU.

- With new upcoming OpenSubdiv based CPU modifier implementation we can
  cache topology similar to what GPU side was doing, which will already
  be reasonably faster.

- OpenSubdiv GPU does not work since the OpenGL version bump, and is
  to be rewritten with all the adaptive refine options kept in mind.

Since OpenSubdiv GPU was already broken and was only causing object
to become invisible, there is no reason to keep having that option in
the modifier.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3598
2018-08-13 13:10:00 +02:00
e6827ad9a6 Fix T56290: Segfault when loading file - OpenSubdiv
Filled missing callbacks to converter.
2018-08-13 12:51:34 +02:00
517f58be3c Subsurf: Make uv boundaries easily extendible
This replaces old single toggle option to subdivide UVs with
an enum which can have more options. The usecase for this is
to be compatible with other software. But we also might choose
different subdivision type as default in the future.

DNA and underlying code supports all possible options, but
only the ones which are compatible with old subdivision code
are currently exposes.

Reviewers: brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3575
2018-08-13 12:37:46 +02:00
f8a499b596 OpenSubdiv: Add stub implementation of C-API
C-API is way smaller than the rest of the code which uses it.
So better to conditionally compile stub implementation than
to keep adding ifdef everywhere.
2018-08-13 12:37:18 +02:00
d3250593d0 Merge branch 'master' into blender2.8 2018-08-13 11:58:24 +02:00
844b40b0c1 Fix T56344: Crash when used Twist for Emitter type of Particles System.
That effect is NOP with emitter particles anyway...
2018-08-13 11:57:18 +02:00
4710af81a4 Cleanup: Description should not end with a fullstop 2018-08-13 11:45:55 +02:00
444a0202d4 Gizmo: add blank gizmo definition
Missed from 98c304e865 by accident.
2018-08-12 13:17:10 +10:00
b4b8d3ab0e Cleanup: Fix wrong formatting
For unknown reasons, visual studio unformat a section of the code.
2018-08-11 20:54:13 +02:00
f22d8ee94c Cleanup: Remove debug print 2018-08-11 10:03:06 +02:00
92b12d914f Cleanup GP instance: Remove element 0 because is duplicated 2018-08-11 09:59:44 +02:00
d7b5e2fa72 Outliner: use generic WM drag and drop system for collections.
* Drag and drop between multiple outliners now works.
* Dragging the icon and text now give the same results.
* Fixes various crashes.
2018-08-10 17:54:00 +02:00
4375e7ff0b WM: internal changes to support dragging multiple IDs.
To be used by the outliner.
2018-08-10 17:53:00 +02:00
86c363a027 WM: pass on wmDrag to drop operators, so they can get the data directly.
Currently drop operators work mostly by specifying the name of the datablock.
However there can be datablocks with the same name in different libraries, so
this gives wrong results in some cases.

Currently only outliner drop operators have been updated to use this mechanism.
2018-08-10 17:53:00 +02:00
74016d73db WM: drag and drop poll functions can now specify a custom tooltip. 2018-08-10 17:53:00 +02:00
9e83283f73 Cleanup: decouple outliner tree element icon retrieving from drawing. 2018-08-10 17:53:00 +02:00
367ada71a0 Cleanup: move most outliner drag & drop code into one file. 2018-08-10 17:53:00 +02:00
d9fc59c37c Cleanup: Remove unused param 2018-08-10 17:00:48 +02:00
7673867360 GPUMaterial: Fix color ramp node with constant interpolation
Color ramp with constant interpolation must bypass texture filtering and
use nearest neighboor sampling in order to appear correctly sharp.

This patch use a GLSL hack to use nearest sampling on thoses particular
color band.
2018-08-10 16:16:35 +02:00
2cbffc8e40 Eevee: Fix assert with object volume rendering 2018-08-10 16:16:35 +02:00
bf6a22ed6f GPUMaterial: Group all colorband texture together
This lower the use of texture samplers slots and let users use more real
textures in their shaders.

This patch also make the ramp texture 16 bit floating point. Meaning you
can now use value greater than one in your color ramps.

With the limit of 128 colorband per shader (a color band being either a
color ramp, a wavelength node or a curve node (and maybe wavelength node in
the future)).

Only drawback with the current implementation is that it does not remove
colorband from pruned GPUNodes but it shouldn't really matter in practice.

This should fix T56010
2018-08-10 16:16:35 +02:00
c9bd61b372 UI: Fix nodelink not touching inputs when noodle_curving is 0 2018-08-10 16:16:35 +02:00
c70350c68f GP: Set instance maximum value to something more logic 2018-08-10 15:57:45 +02:00
aa5a96430e Python: Add support for @ infix operator matrix multiplication
This differential revision implements the code for T56276

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D3587
2018-08-10 15:18:00 +02:00
693ecdf7d3 Fix build error due to missing file from commit 98c304e865.
Proper contents still needs to be added, this just makes things build.
2018-08-10 14:39:01 +02:00
69d710187d Fix unreported assert error when change instance modifier
Doing very fast change in the number of instances soemtimes get an error of duplicate ghash entry.
2018-08-10 13:14:13 +02:00
98c304e865 Gizmo: add option to catch all mouse clicks
This was previously default behavior, now it's default.
2018-08-10 21:04:06 +10:00
e18a2c4ed7 Gizmo: support for 2D selection checks for 3D gizmos
This means 3D manipulators can use their own logic
for checking if the cursor intersects.
2018-08-10 17:32:40 +10:00
3daf5cc1ce Gizmo: 2d select now takes region coords
Was taking an event, when only the region coords are needed.
2018-08-10 08:14:22 +10:00
eb7b450c0c Cleanup: style 2018-08-10 08:14:22 +10:00
1ee93dc670 Quiet warnings in bmesh_bevel.c. 2018-08-09 14:43:52 -04:00
5b6dde2293 Eevee: Fix assert with subsurface bsdf 2018-08-09 16:46:03 +02:00