Commit Graph

75472 Commits

Author SHA1 Message Date
Germano
59286ddcf8 transform_snap_object: Better bvhtree creation management for editing multiple objects.
- Use the object referenced in `BMEditMesh` as the `ghash` key to save the bvhtrees in cache;
- Create a boundbox around edit_mesh to test the snap before creating bvhtree;
- Save the `edit_mesh`s bvhtree in the mesh bvh_cache;

This is a part of the D3504.
2018-07-23 11:04:58 -03:00
Sergey Sharybin
66fde2d0b5 Fix T55634: Particle Viewport Display affects render visibilty
Changed code to follow master behavior closer: ignore draw-as checks
when particles are evaluating for rendering.
2018-07-23 12:53:46 +02:00
Sergey Sharybin
d7b472c198 Fix wrong view layer rendered from command line
The issue was caused by Render Single Layer option enabled, which is
very handy for artists work, so they can hit F12 and see view layer
they are currently working in a final rendered state. This saves a lot
of time since all the "non-interesting" objects are ignored for such
iterations.

However, for the render farm we need to render view layers which are
explicitly set for render, and ignore active view layer.

Reasonable solution seems to be to ignore the Render Single Layer
option when rendering from the command line. It is really something
more like UI behavior option.
2018-07-23 11:54:41 +02:00
Sergey Sharybin
f0dd7dd4c0 Mark view layer renderability and scene single layer render as non-animatable
We can not support animation of those flags reliably in the pipeline, so just
mark them as non-animatable.
2018-07-23 11:54:41 +02:00
Ines Almeida
96abec41cc Cleanup: comments and UI descriptions for cursor snapping 2018-07-23 11:37:03 +02:00
Pablo Vazquez
d432a239ad Outliner Keymap: E key to Exclude collections from View Layer
Alt+E to include.
2018-07-23 11:20:31 +02:00
Clément Foucault
f07140940c Eevee: Principled: Fix Subsurface input behaviour
Match Cycles behaviour of scalling the SSS radius and don't interpolate
between diffuse and SSS result.
2018-07-21 18:15:31 +02:00
Rohan Rathi
4e6bcd10e5 Merge branch 'blender2.8' into soc-2018-bevel 2018-07-21 19:29:15 +05:30
Clément Foucault
e361e9e99c Render Preview: Fix ID freeing in wrong function 2018-07-21 14:16:29 +02:00
Clément Foucault
a1689fb091 Eevee: Fix wrong SSR reprojection when switching orthographic view
We just reset the temporal sampling and avoid using the previous frame
for SSR at all.
2018-07-20 22:43:30 +02:00
Clément Foucault
3005c2e2be Eevee: LightProbes: Fix RNA defaults and remove unused data_draw_size 2018-07-20 22:22:30 +02:00
Clément Foucault
eae9228a4d Eevee: Lamps: Fix RNA defaults and change defaults for contact shadows 2018-07-20 22:21:44 +02:00
Clément Foucault
33c4ffdf46 Render Preview: Fix memory leak 2018-07-20 21:31:36 +02:00
Clément Foucault
a987daa18d Render Preview: Fix problem with multi size icon preview
The id was free after each size.
We now only free after the job has finished.
2018-07-20 20:36:14 +02:00
Clément Foucault
4609205a3f GPUMaterial: Cleanup unused headers 2018-07-20 20:06:39 +02:00
Clément Foucault
28fa79219d GPUMaterial: Texture Node: Add support for Cubic filtering
Like in cycles it's a bit more slower than linear but it's smoother.

Works for all projection type.
2018-07-20 19:17:15 +02:00
Clément Foucault
26b6b5871e GPUMaterial: Texture Node: support for nearest (closest) filtering method
Add placeholder for cubic and smart filtering for now.
2018-07-20 19:16:48 +02:00
Clément Foucault
e7d8908f14 GPUMaterial: Optimize and fix blending in box mapping
Blending was done in srgb space and was not matching cycles.

Optimized by using less branches and more vector operations.
2018-07-20 19:16:48 +02:00
Brecht Van Lommel
9ad5eafe46 Fix incorrect magnification filter for text texture.
Barely any visible difference, except when drawing big custom text
with the Python API.
2018-07-20 17:40:46 +02:00
Brecht Van Lommel
b3b4b9fb8c Fix WITH_HEADLESS build. 2018-07-20 15:25:47 +02:00
Sergey Sharybin
72cbf966fb Depsgraph: Fix missing relation from proxy_form's ID properties
Hopefully this will fix issue with camera rig where camera properties
(like, near/far clip) are driven by custom properties from bones, and
those bones are actually belong to proxied armature.
2018-07-20 15:15:12 +02:00
Brecht Van Lommel
4a79b46b9c Fix build error with release + debug info build. 2018-07-20 13:35:08 +02:00
Clément Foucault
244b825ccd Fix assert for Image & Brush icon preview 2018-07-20 12:54:57 +02:00
Clément Foucault
a185bf3b85 Workbench: Add backface culling support 2018-07-20 12:41:54 +02:00
Clément Foucault
61c00802d0 Basic Draw Engine: Cleanup unused code.
This engine is only used for selection and draw depth so no need for
anything else.

Also add backface culling support to selection.
2018-07-20 12:41:54 +02:00
Bastien Montagne
ecfb74833d Merge branch 'master' into blender2.8 2018-07-20 12:13:58 +02:00
Bastien Montagne
710a059549 Cleanup: Move 'WAVEFORM_LOADING' of sounds from flags to tags.
This is purely runtime data, so move it to new tags. ;)
2018-07-20 12:11:34 +02:00
Bastien Montagne
f48e81e720 Fix T55414: waveforms are reprocessed when undoing
Add new tag to bSound (runtime flags), and make read code to set a 'no
reload waveform' new tag, since it uses a mapping to get existing
waveform in undo case...
2018-07-20 12:01:38 +02:00
Bastien Montagne
2de283615f Make draw_armature() abort in case pose is not up-to-date.
Previously it was calling `BKE_pose_rebuild()`, such thing shall never
be called from drawing code! Hopefully this now works as expected and
that horrible hack is not needed anymore.
2018-07-20 10:22:06 +02:00
Bastien Montagne
c205de0203 Fix T55973: [2.8] Crash when 'apply pose as rest pose' when bone scale is 0,0,0.
`BKE_pose_rebuild()` should (ideally) always trigger a rebuild of the
depsgraph, since it can add or remove posechannels.

This function now takes a Main parameter to ensure that related
depsgraphes are tagged as dirty (kept it optional, for some corner cases).

We should also probably double-check calls to that function, think in
theory it should only be called from depsgraph itself? But for now...
2018-07-20 10:22:06 +02:00
Sergey Sharybin
8a42b3909f Subsurf: Add basic statistics to help benchmarking 2018-07-20 09:28:02 +02:00
Clément Foucault
94722121e5 Fix MSVC compilation error in a less hacky way 2018-07-19 17:20:48 +02:00
Clément Foucault
44c7a7cf8b Fix compilation error with MSVC 2018-07-19 17:18:19 +02:00
Alexander Gavrilov
0bf8096501 Resolve the opposite vector ambiguity in Damped Track constraint.
Damped Track by specification attempts to arrive at the desired
direction via the shortest rotation. However with opposite vectors
there are infinitely many valid 180 degree rotations. Currently
it gives up and does nothing.

I think that it would be more reasonable to resolve the ambiguity
arbitrarily, so that Damped Track won't have a weird dead zone.
To make it more predictable I use a local axis.

In addition, the singularity area vicinity has some floating
point precision problems that result in significant jitter.
This applies workarounds for two causes of instability.

Differential Revision: https://developer.blender.org/D3530
2018-07-19 17:58:27 +03:00
Brecht Van Lommel
ca0ecf4c08 Fix crash with previews of non-IDs, like pose library thumbnails. 2018-07-19 16:31:15 +02:00
Clément Foucault
5037dd8abd GPU: Add GC to FBOs and UBOs and centralize all GCs
GPUFrameBuffers were being free when no context was attached or in the
wrong gl context. This make sure this does not happen again.

You can now safely free any gl resource from any thread (well as long as
it's not used anymore!).
2018-07-19 16:13:15 +02:00
Rohan Rathi
b6b185691f Code cleanup and fixes 2018-07-19 19:27:45 +05:30
Sergey Sharybin
3882d0943b Subsurf: Fix wrong edge original index 2018-07-19 11:23:59 +02:00
Sergey Sharybin
64bbfaf421 Subsurf: Set original index for high-poly vertices 2018-07-19 11:23:59 +02:00
Campbell Barton
9df1e54079 Cleanup: style 2018-07-19 16:06:37 +10:00
Ray Molenkamp
34a45c54e0 Merge remote-tracking branch 'origin/master' into blender2.8 2018-07-18 20:02:16 -06:00
Brecht Van Lommel
e81dc0b7bc Fix E key in Python console not working after recent changes. 2018-07-18 22:23:29 +02:00
Clément Foucault
c05a8460a6 Icon/Render Preview: Fix Race condition with BKE_*_localize
When editing a Material the depsgraph can throw away the evaluated ID
before the preview job localized the said ID.

To fix this we localize the ID from the main thread.

Also fix WM_OT_previews_ensure crashing because of no depsgraph.
2018-07-18 19:30:34 +02:00
Brecht Van Lommel
057b4a6acf Fix/workaround T56019: memory leak with preview renders.
I would not expect the order of registration to matter, and ideally we want
to order the engines in the UI menu differently, but this helps for now.
2018-07-18 18:46:40 +02:00
Brecht Van Lommel
9d514a4e6f Cleanup: remove debug comment. 2018-07-18 18:11:59 +02:00
Sergey Sharybin
5fd677c83c Subsurf: Add subdivision code which uses new module
The code is ifdef-ed for now, since there is more work needed
to be done before we can officially switch to it.

Uses new subdiv module.
2018-07-18 15:42:49 +02:00
Sergey Sharybin
433bb9bbcb Subsurf: Begin new subdivision surface module
The idea is to use this as a replacement of old CCG, now it is
based on OpenSubdiv. The goal is to reduce any possible overhead
which was happening with OpenSubdiv used by CCG.

Currently implemented/supported:

- Creation from mesh, including topology on OpenSubdiv side,
  its refinement.

- Evaluation of limit point, first order derivatives, normal,
  and face-varying data for individual coarse position.

- Evaluation of whole patches.

  Currently not optimized, uses evaluation of individual coarse
  positions.

- Creation of Mesh from subdiv, with all geometry being real:
  all mvert, medge, mloop, and mpoly.

  This includes custom data interpolation, but all faces currently
  are getting separated (they are converted to ptex patches, which
  we need to weld back together).

Still need to support lighter weights grids and such, but this
is already a required part to have subsurf working in the middle
of modifier stack.

Annoying part is ifdef all over the place, to keep it compilable
when OpenSubdiv is disabled. More cleaner approach would be to
have stub API for OpenSubdiv, so everything gets ifdef-ed in a
much fewer places.
2018-07-18 15:42:49 +02:00
Campbell Barton
428743a9b0 Cleanup: style for GPU module 2018-07-18 23:10:31 +10:00
Clément Foucault
f882df9e0f GPU: Fix build error on Mac and Windows. 2018-07-18 14:58:56 +02:00
Brecht Van Lommel
3d67819a17 Merge branch 'master' into blender2.8 2018-07-18 14:13:16 +02:00