Commit Graph

14104 Commits

Author SHA1 Message Date
Campbell Barton
a855a763c2 Merge branch 'master' into blender2.8 2018-07-13 08:40:17 +02:00
Campbell Barton
fb5597540d Cleanup: right shift arguments 2018-07-13 08:36:10 +02:00
Campbell Barton
6f8a141fad Merge branch 'master' into blender2.8 2018-07-12 21:43:51 +02:00
Campbell Barton
e77d2b4e3f Cleanup: remove legacy mesh save support
This was used for saving files for Blender 2.6x.
2018-07-12 21:35:57 +02:00
Campbell Barton
e387a4e768 Cleanup: style, duplicate header 2018-07-12 11:16:22 +02:00
Bastien Montagne
42fa889e46 Merge branch 'master' into blender2.8 2018-07-11 14:56:13 +02:00
Bastien Montagne
59b4c67536 Minor cleanup to logic in BKE's imbuf releasing code. 2018-07-11 14:32:06 +02:00
Sergey Sharybin
c37ca43720 OpenSubdiv: Changes in C-API
- Made OpenSubdiv_GLMesh private
  Previously, it was still accessible via C-API from C++ code.

- Don't implicitly refine evaluator when updating coarse positions,
  now there is an explicit call to do this.

  Allows to first apply all changes to the coarse mesh and then
  refine once.

- Added coarse positions update from a continuous buffer with given
  starts offset and stride.

  Allows to update coarse positions directly from MVert array.

- Refiner is no longer freed when CPU evaluator is created.
  Allows to re-use refiner for multiple purposes.
2018-07-11 12:55:22 +02:00
Brecht Van Lommel
a6ea38d345 Cleanup: remove unused interlace code after removal of fields. 2018-07-10 17:58:08 +02:00
Campbell Barton
2574ee3d38 Image: remove fields option for image sequences
Remove support for loading interlaced image sequences because
its less common now to record interlaced video,
the option to de-interlace video on load remains.
2018-07-10 17:31:13 +02:00
Brecht Van Lommel
e6dccb4b01 Fix T55826, fix T55804: crash after copying scene with linked objects. 2018-07-10 16:30:17 +02:00
Clément Foucault
1a43e08187 Eevee: LightCache: Initial Implementation
This separate probe rendering from viewport rendering, making possible to
run the baking in another thread (non blocking and faster).

The baked lighting is saved in the blend file. Nothing needs to be
recomputed on load.

There is a few missing bits / bugs:
- Cache cannot be saved to disk as a separate file, it is saved in the DNA
  for now making file larger and memory usage higher.
- Auto update only cubemaps does update the grids (bug).
- Probes cannot be updated individually (considered as dynamic).
- Light Cache cannot be (re)generated during render.
2018-07-10 15:31:34 +02:00
Clément Foucault
873d7f7e14 DrawData: Change drawdata to a generic struct shared accross ID types
This makes tagging much more generic and make the world updates more in
line with the new tagging system (Depsgraph).
2018-07-10 15:31:34 +02:00
Clément Foucault
dfd192ce41 GPUTexture: Refactor of texture creation & new feature
- Texture creation now requires explicit data type.
- GPU_texture_add_mipmap enable explicit mipmap upload.
- GPU_texture_get_mipmap_size can be used to get the size of a mipmap level
  of an existing GPUTexture
- GPU_texture_read let you read back data from a gpu texture.
2018-07-10 15:31:34 +02:00
Sergey Sharybin
15ef4638b3 Merge branch 'master' into blender2.8 2018-07-10 14:45:08 +02:00
Sergey Sharybin
c17cb50ae2 OpenSubdiv: Make more flexible C-API to specify FVar interpolation 2018-07-10 14:40:45 +02:00
Sybren A. Stüvel
25619443bb Ocean Modifier: prevent crashing on 'Apply Modifier' button
The 'Apply Modifier' button calls the modifier code on the original
object instead of an evaluated copy, which doesn't have an initialised
Ocean *.
2018-07-10 12:00:58 +02:00
Sybren A. Stüvel
0c8452ad99 Ocean Modifier: removed duplicated code
Some code was copied with 'keep in sync with xxx' comments added to it.
2018-07-10 12:00:58 +02:00
Sybren A. Stüvel
de55ae56ae Ocean Modifier: refactored the delayed-refresh approach
The approach of setting 'refresh' flags on the modifier, and performing
the associated actions when the modifier is being evaluated, is a bad
one. Instead, we use the separation of the original and the evaluated
copy to 'refresh' certain things (because they simply aren't set at all
on the original). Other actions are now done directly with BKE_ocean_xxx
functions on the original data, intead of during evaluation.
2018-07-10 12:00:58 +02:00
Sybren A. Stüvel
b9bef10d19 Ported mesh_create_derived_view() to mesh_create_eval_final_view() 2018-07-10 12:00:58 +02:00
Campbell Barton
9536f920e3 Cleanup: style 2018-07-10 09:29:30 +02:00
Campbell Barton
521f188af6 Fix workspace not freeing tool properties 2018-07-10 07:10:28 +02:00
Brecht Van Lommel
edeb9e5b01 Fix T55868: duplicating collection instances fails sometimes. 2018-07-09 15:37:36 +02:00
Brecht Van Lommel
aed09d4329 Cleanup: remove unused shader node compatibility flag.
No longer needed after Blender Internal removal and Eevee replacing the
Cycles GLSL shading nodes.
2018-07-06 20:22:03 +02:00
Brecht Van Lommel
74fd17e9d7 UI/Python: rename Lamps to Lights, to follow more standard terminology.
Internally it's still mostly named lamps, though some modules like Cycles
were already calling them lights.
2018-07-06 20:06:09 +02:00
Campbell Barton
aff8b02394 Merge branch 'master' into 28 2018-07-06 10:10:47 +02:00
Campbell Barton
62fbb7d4a1 Empty Object: Center images by default 2018-07-06 10:05:37 +02:00
Campbell Barton
5b3545f99f Merge branch 'master' into blender2.8 2018-07-06 07:56:08 +02:00
Campbell Barton
d56b90705e BKE_addons: utility to remove by name 2018-07-06 07:55:29 +02:00
Sergey Sharybin
d192d72312 Ensure dependency graph exists before initializing editors
Will help entering sculpt mode on file load by making it possible
to fully initialize sculpt session. The goal is to make sure PBVH
exists since the very beginning of file open (missing PBVH is a
reason why object is not visible before first stroke).

This is not enough yet to fully solve the issue, since entering
sculpt mode tags object for Copy-on-Write update, which frees
PBVH.
2018-07-05 16:56:47 +02:00
Sybren A. Stüvel
f4ce6d02cd Fluidsim: ported from DerivedMesh to Mesh
Also removed a bunch of unnecessary #include statements from fluidsim.c.
2018-07-05 11:30:38 +02:00
Sybren A. Stüvel
99a6d616e8 Ported CDDM_apply_vert_normals from DM to Mesh 2018-07-05 11:30:38 +02:00
Brecht Van Lommel
c43443d530 Workspaces: store view layer per main window, instead of per workspace.
It was a bit odd that the scene was stored per window but not the view
layer. The reasoning was that you would use different view layers for
different tasks. This is still possible, but it's more predictable to
switch them both explicitly, and with child window support manually
syncing the view layers between multiple windows is no longer needed
as often.
2018-07-04 18:40:33 +02:00
Brecht Van Lommel
4e2228525f Workspaces: add main and child windows.
* Main windows show a topbar and statusbar, and select a workspace and
  scene. They are created with Window > New Main Window.

* Child windows do not show a topbar or statusbar. These follow the
  workspace and scene of their parent main window. Created with Window >
  New Window or View > Duplicate Area into New Window.

* The purpose of this change is to support multi monitor setups where you
  just want to put more editors on the other monitors. Without multiple
  topbars and statusbars, working within a single workspace and scene.
  Creating multiple main windows is intended to be a concious choice to
  do different tasks in different workspaces and scenes.

* Note these changes do not currently affect how the operating system
  treats the windows.

* When changing the workspace, the layout in all child windows changes.
  This makes sense if we consider child windows to be just a way to
  extend the main window across more monitors. In some case it may be
  useful to keep the same layout though, we can add an option for this
  depending on user feedback.
2018-07-04 18:40:33 +02:00
Sybren A. Stüvel
60b9d413db Pass copy flag to modifier copyData function
This will allow modifiers to decide whether to copy or share caches between
ModifierData copies.
2018-07-04 14:52:14 +02:00
Sybren A. Stüvel
769c57b38a SoftBody: share point cache between CoW copies
This is the same approach as 98a0bcd425
applied to soft body simulation. In short, CoW copies share the point cache,
and treat it as read-only except when the depsgraph is active.
2018-07-04 11:33:27 +02:00
Sybren A. Stüvel
9e4d667c2c SoftBody: refactored sbFree()
This prevents having to wrap each call to sbFree() in an if(ob->soft)
condition and assign ob->soft = NULL after calling.

Furthermore, passing `Object *` allows us to change freeing behaviour
depending on whether the object is an evaluated copy or an original (not
done in this commit yet).
2018-07-04 11:22:57 +02:00
Sybren A. Stüvel
75b5ff6698 Softbody: unified copy functions
This unifies two almost-identical functions at the expense of having to
add one single 'flag' value at one call.

This makes copy_softbody() aware of the source/dest objects, allowing it
to make a distinction between doing depsgraph evaluation copies and real
object copies. This will be used in an upcoming commit to ensure that
the pointcache is shared between CoW copies, similar to the current
approach for rigidbody simulation.
2018-07-04 11:22:32 +02:00
Sergey Sharybin
b868e58d9b Sculpt: Fix wrong object used for crazy space calculation
Was applying modifiers twice, when it should not have.

Is expected to solve mesh corruption when in sculpt mode.
2018-07-03 12:53:29 +02:00
Sergey Sharybin
6d0e172fef Sculpt: Cleanup, spelling 2018-07-03 12:49:57 +02:00
Julian Eisel
bea364fe2a Fix: Global area edges couldn't call right click menu to join/split
Operators ignored edges along the screen-layout bounds. They should've ignored
those along window bounds instead.

Although the global areas can not be joined/split, the adjacent areas can. So
the menu should still be shown.
Had to change the return value of area joining operator, so that an error report
can show up when trying to join over a global area edge. Think this is fine to
do, but you never know with such stuff.

Preferably we'd gray out the "Join Area" item in the menu when clicking on the
edge of a global area. Unfotunately the operator uses coordinates passed as
operator properties to find the right edge/areas, which we cannot access from
the poll callback.
2018-07-02 16:56:54 +02:00
Campbell Barton
b076b3853c Merge branch 'master' into blender2.8 2018-07-02 12:03:56 +02:00
Campbell Barton
b88e51dd55 Cleanup: use bool for poll functions 2018-07-02 11:51:31 +02:00
Campbell Barton
36a9436d80 Merge branch 'master' into blender2.8 2018-07-01 16:22:06 +02:00
Campbell Barton
ddee0931b8 RNA: use bool for boolean RNA types
We were using int's for bool arguments in BKE,
just to avoid having wrapper functions.
2018-07-01 15:57:59 +02:00
Campbell Barton
6a13b6324b UI: support check-boxes in quick menu
Could support other RNA types,
however menus don't work well in this case.
2018-06-30 21:08:48 +02:00
Campbell Barton
41176cd3d8 UI: support adding menu's to favourites 2018-06-30 12:08:08 +02:00
Bastien Montagne
3bc21bc5f7 Cleanup: Moar DM busting, mostly cleaning up MOD_utils. 2018-06-29 18:58:13 +02:00
Jeroen Bakker
ccca2c0164 Workbench: Spherical Harmonics tests
Added a compile directive in order to test SH4 in stead of SH2Win.
For now I disabled SH4, it is a bit more clear, but has a small
performance impact. Will check later for a better approach
2018-06-29 14:59:30 +02:00
Bastien Montagne
5ba87cf22e Cleanup: remove another bunch of DM usages, includes etc. 2018-06-29 14:57:02 +02:00