Commit Graph

78823 Commits

Author SHA1 Message Date
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
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
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
Ray Molenkamp
51f14cfa43 make.bat : restore msvc2015 support.
broke when i removed the 2013 support.
2018-07-18 20:00:34 -06:00
Brecht Van Lommel
20191980f4 Cycles: increase volume stack to support 32 overlapping volumes.
This increases stack memory usage some, and ideally we'd support a dynamic
size. But this is quite difficult on the GPU and hopefully 32 is enough even
for very complex cases.
2018-07-18 22:58:52 +02: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
2604f281b7 Cycles: Fix missing nested particle systems when instanced multiple times
Was only visible when doing command line, since it was happening due to
cache-free policy which was aimed to bring memory usage down.

The issue is that if object with particle system is used as a nested
duplicator multiple times, it will only generate children first time,
and after that its caches are freed. After that duplication system
can not generate any instances, since the path cache is lost.

Now we delay caches free to after all objects are synchronized, which
ensures all instances are generated.

This will increase a memory peak a bit during object synchronization
time, but overall it shouldn't be that bad, since memory footprint
after synchronization will stay the same as before this change.

The ultimate thing to do here would be to drop the whole dependency
graph away, but this will require:

- API on engine side, to inform it to drop the dependency graph.
- Changes in Cycles report system to NOT use evaluated scene to get
  scene name (evaluated scene will be gone with dependency graph).
2018-07-18 16:09:19 +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
Sergey Sharybin
c64262a05a OpenSubdiv: Add API to evaluate face-varying data
There are move changes along the line to keep everything
working from from C.
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
Campbell Barton
257d072317 3D View: show 3D axis-letter when pointing away
While only the positive axis is shown,
account for an exception when axis aligned.
2018-07-18 22:08:10 +10:00
L. E. Segovia
5078b9d2d0 Cycles: add Principled Hair BSDF.
This is a physically-based, easy-to-use shader for rendering hair and fur,
with controls for melanin, roughness and randomization.

Based on the paper "A Practical and Controllable Hair and Fur Model for
Production Path Tracing".

Implemented by Leonardo E. Segovia and Lukas Stockner, part of Google
Summer of Code 2018.
2018-07-18 13:59:06 +02:00
Brecht Van Lommel
566b319335 Cleanup: Cryptomatte node style tweaks. 2018-07-18 13:59:06 +02:00
Stefan Werner
bdda0964e0 Compositor: Cryptomatte compositing node.
This patch adds a new matte node that implements the Cryptomatte specification.
It also incluces a custom eye dropper that works outside of a color picker.
Cryptomatte export for the Cycles render engine will be in a separate patch.

Reviewers: brecht

Reviewed By: brecht

Subscribers: brecht

Tags: #compositing

Differential Revision: https://developer.blender.org/D3531
2018-07-18 13:03:34 +02:00
Clément Foucault
8cd7828792 GWN: Port to GPU module: Replace GWN prefix by GPU 2018-07-18 11:49:15 +02:00
Clément Foucault
247ad2034d GWN: Port to GPU module: Move files to GPU
This does not include all the struct and type renaming. Only files were
renamed.

gwn_batch.c/h was fusioned with GPU_batch.c/h
gwn_immediate.c/h was fusioned with GPU_immediate.c/h
gwn_imm_util.c/h was fusioned with GPU_immediate_util.c/h
2018-07-18 00:17:57 +02:00
Clément Foucault
6329629bb9 GWN: Port to GPU module: codestyle & licence 2018-07-18 00:17:57 +02:00
Ray Molenkamp
a28fd8fee2 Merge remote-tracking branch 'origin/master' into blender2.8 2018-07-17 14:46:22 -06:00
Ray Molenkamp
41045478ab make.bat: remove msvc2013 support. 2018-07-17 14:44:47 -06:00
Brecht Van Lommel
644fadf2f0 Render: add "OpenGL" render engine.
This is intended for quick renders for previsualization, animation previews
or sequencer previews. It provides the same settings as found in the 3D view
Shading popover in solid display mode, but in the scene render properties.

The "Workbench" engine was removed, and this name no longer appears in the
user interface, it's purely an internal name. We might come up with a better
name for this OpenGL engine still, but it's good to be consistent with the
OpenGL Render operator name since this has a similar purpose.
2018-07-17 16:46:09 +02:00
Brecht Van Lommel
7b3a18f0aa Cleanup: moving shading type into View3DShading.
So all shading settings are in this struct and can be reused in the OpenGL
render engine.
2018-07-17 14:59:07 +02:00
Brecht Van Lommel
f8e2dba7fe UI: move specular light settings to Lights tab in user preferences. 2018-07-17 14:59:07 +02:00
Brecht Van Lommel
117a5c0ac7 Fix Python error removing studio lights in user preferences. 2018-07-17 14:59:07 +02:00
Brecht Van Lommel
6d8e36b723 Fix inconsistent shade smooth naming in object and edit mode. 2018-07-17 14:59:07 +02:00
Bastien Montagne
7c8e6048b3 Merge branch 'master' into blender2.8 2018-07-17 13:58:26 +02:00
Bastien Montagne
efe94793c0 Fix T56003: Opening image files as movies in VSE crashes.
metadata loading code was assuming all videos in Blender were from
FFMPEG... added empty place-holders for other types too, we probably
could load some metadata from pictures or AVI files too!
2018-07-17 13:55:43 +02:00
Jeroen Bakker
8d53b72b81 World: Added 'Viewport Display' panel
The Properties->World tab had no Viewport Display panel. The world color
itself was hidden when the 'use_node_tree' was enabled.

Also renamed the World.horizon_color to World.color as it has nothing to
do with the color of the horizon (old BI feature)
2018-07-17 12:39:03 +02:00
Vuk Gardašević
84d4037363 UI: Single-column and flow layout for Scene properties
See D3532
2018-07-17 12:17:42 +02:00
Vuk Gardašević
273482749e UI: Minor fixes to separators on menus
Closes D3547
2018-07-17 11:59:24 +02:00
Clément Foucault
7dcc7bd5ee Object Mode: Add back object bound display 2018-07-17 11:36:21 +02:00
Pablo Vazquez
dc3b3d9453 UI: Lamp -> Light for the object type visibility operators
Spotted in a live stream by Emilton Mendoza, thanks!
2018-07-17 00:45:56 +02:00
Bastien Montagne
b85be88655 Fix (IRC-reported) wrong usercount handling of deprecated IPO datablocks.
versionning code would unref those twice... Reported by @ßergey on IRC, thanks!
2018-07-16 22:29:26 +02:00
Clément Foucault
d5f048f883 Eevee: Add debug visual for Cascaded Shadow Maps 2018-07-16 20:08:09 +02:00
Clément Foucault
db374d6658 DRWDebug: Add new debug functions for spheres and matrices. 2018-07-16 20:08:09 +02:00
Clément Foucault
1f69ffd35b Eevee: Fix Cascaded Shadow Maps glitches
There was an issue that caused the cascaded shadow map to appear glitchy
when the lamp was not at the origin.
2018-07-16 20:08:09 +02:00
Clément Foucault
44a9c39229 Workbench: Fix use of uninitialized memory. 2018-07-16 20:08:09 +02:00
Clément Foucault
eef6e1cca1 StudioLight: Fix codestyle 2018-07-16 20:08:09 +02:00
Clément Foucault
7a693626d6 Smoke: Port display to Workbench + object mode
This does not fix the smokesim. It only port the drawing method.

The Object mode engine is in charge of rendering the velocity debugging.

Things left to do:
- Flame rendering.
- Color Ramp coloring of volume data.
- View facing slicing (for now it's only doing sampling starting from the
  volume bounds which gives a squarish look)
- Add option to enable dithering (currently on by default.
2018-07-16 20:08:09 +02:00