Commit Graph

2095 Commits

Author SHA1 Message Date
52d75d5127 Overlay: Add support for per object wirefram options
This patch has a known bug on AMD + mesa because of the drivers. I will
send a bug report to mesa.
2018-08-20 10:46:11 +02:00
76ea32d192 Cleanup: unused warning 2018-08-20 11:29:23 +10:00
353e691ff9 DRW: Fix crash in defered compilation 2018-08-18 12:58:15 +02:00
6cad7984c6 Fix missing shader compilation progress bar. 2018-08-17 15:55:21 +02:00
8b79a150f8 Workbench: Fix buggy shadow
Was caused by shadow bbox not being updated.
2018-08-17 13:04:26 +02:00
f031e8d3ac Object Mode: Add back the extra object axes drawing option 2018-08-17 13:04:26 +02:00
435f308eed Object Mode: Use same empty (arrow) drawing as the bone axes display 2018-08-17 13:04:26 +02:00
c9d5d311ec Cleanup: fix harmless compiler warnings. 2018-08-17 13:00:31 +02:00
a452e5e5e3 GP: Fix fast drawing error
During the modifications of the drawing engine, this was changed by error.
2018-08-17 11:09:08 +02:00
77e1942e0e Armature: Add ghosting support (old x-ray) 2018-08-16 23:58:29 +02:00
4711e0ee26 Non-Meshes: Add ghosting support (old x-ray) 2018-08-16 23:58:29 +02:00
1e26345a89 Fix T56418: Changing to Solid View crashes Blender
Everything seems to behave like it should when drawdata is alloced
on instances.
2018-08-16 23:58:29 +02:00
7d29c9a16b Overlay: Fix crash when ghosting is enabled without wireframe 2018-08-16 23:58:29 +02:00
a01dec2d9c Cleanup: Remove unused uniform and UBO. 2018-08-16 23:58:24 +02:00
c761153f64 Overlays: Support for wireframes and edit mode overlay on xray objects 2018-08-16 23:57:59 +02:00
32e57fe4e7 GPUFramebuffer: Fix wrong stencil clearing 2018-08-16 23:57:59 +02:00
Dalai Felinto
461b3c817e Camera Reconstruction: Camera Path
The only difference from 2.7x is that we were using glLineWidth(2.0) before,
which is not supported reliably in the latest OpenGL.

Big thanks to Clément Foucault for helping with this, on the design as well as
debugging the implementation.

For the records, I'm creating and destroying batches for the path geometry at
every draw. The pipeline is as follows:

 1. Create GPUBatch with all the points
 2. Create new shgroup with simple shader
 3. Add call with the gpubatch
 4. Save it in a linked list in stl->g_data
 5. Free it after all drawing is done
2018-08-15 19:26:05 -03:00
Dalai Felinto
248c049b70 Camera Reconstruction: Draw solid spheres
If in SOLID "mode", and x-ray, draw the empty spheres still.
2018-08-15 19:25:53 -03:00
8661563156 Cleanup: Silent compiler warnings 2018-08-15 22:53:57 +02:00
08f5986d21 GP: Revert previous commit for fixing compiler error
The function must be static. The error was the definition in header file must be removed. This error was not detected by Microsoft compiler but Linux compiler fails.
2018-08-15 22:11:44 +02:00
Dalai Felinto
ea43e4a060 Fix build after GreasePencil commit 2018-08-15 16:11:18 -03:00
8e8d93eb86 GP: Redesign logic of drawing engine for object instance support
The initial design assumed that there was only one object for each unique name, but that was not the case when instances were created.

Now, instances are supported and speed has been greatly improved when repetitions are used.

As a result of this change, the option to create objects has been removed in the Instances modifier. This option was strange and was also against Blender's design rules, since a modifier should never create objects. The old functionality of the modifier can be achieved with instances.

Also, several memory leakage problems that were not previously detected have been eliminated, and especially in the grid and in the drawing process

Onion Skin is not supported in multi-user datablocks.  Support this, makes incompatible with instances. We need find a solution in the long term, but now it's better keep disabled and make instances work. Anyway, the new instances makes unnecessary to use muli-user datablocks.
2018-08-15 20:27:59 +02:00
Dalai Felinto
ad7cb02404 Skip bundle names when drawing selection pass 2018-08-15 10:06:11 -03:00
Dalai Felinto
7907dfc400 Motion Tracking Reconstruction Viewport Drawing (T51544)
* Draw bundle names.
* Draw bundle shapes (but spheres).
* Draw custom colors for bundles.
* Support selecting bundles.
* Object bundles also fully tested.

Missing from this commit:
* Camera path.
* Spheres are not drawn as solid.
* Blue dashed line from camera to tracker objects.
2018-08-15 09:45:25 -03:00
cb65542d2c DRW: Fix incorrect default stencil value 2018-08-14 21:38:13 +02:00
485b8d41be Workbench: Add support for the xray object option
Xray object can be see through other objects. They cast shadows as well
but cannot receive then.
2018-08-14 21:38:13 +02:00
Dalai Felinto
b2966b70fe EEVEE: Volumes - get current frame from depsgraph
The value from scene is not up to date at all times.
2018-08-14 16:07:52 -03:00
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
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
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
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
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
eb7b450c0c Cleanup: style 2018-08-10 08:14:22 +10:00
2b41b208c7 Merge branch 'soc-2018-bevel' into blender2.8 2018-08-09 19:52:07 +05:30
fea5f26ea5 Fix trivial error in call 2018-08-09 18:56:46 +05:30
42c2066d08 Fixed custom shading not updating in Edit Mode 2018-08-09 18:38:07 +05:30
c009b09f12 Eevee: Fix Clearcoat intensity 2018-08-08 21:27:33 +02:00
b8fc6317c7 Eevee: Remove per material SSS toggle
This is because we can now optimize the use of SSS on shaders based on
socket input values.
2018-08-08 21:27:33 +02:00
cac43e1765 Eevee: Use "constant folding" for the principle shader
This is more like a static optimisation when some parameters are set to 1.0
or 0.0. In theses case we use a more optimized version of the node.

This also revisit the transmission parameter behaviour to make it closer to
cycles.
2018-08-08 21:27:26 +02:00
82352565b7 Eevee: Remove some of the non-necessary uniforms
The remaining ones are from the attributes linear/srgb switches and from
nodes that should be pruned before running their _gpu function.
2018-08-08 21:26:49 +02:00
211ad6bf9a GP: Fix memory leak in draw engine for buffer strokes
This memory leak was undetected during a long time, but with new memory checking is visible.

The problem was the stroke buffer batch was realocating new batches without free the memory.
2018-08-08 19:48:57 +02:00
3e0bf69bfd GP: Change to make the temp name unique
The previous commit could fail if some corner situations. This new temp name must be unique always.
2018-08-08 11:48:18 +02:00
106e73da82 Fix T56270: Crash when save a grease pencil file with instance modifier.
The error was related to duplicate names in the internal hash used to order instances in z-depth.
2018-08-08 11:11:18 +02:00
65b31a4c9c GP: Check render status before use it. 2018-08-08 11:11:18 +02:00
bbaedad632 Minor tweak to last commit 2018-08-08 16:02:45 +10:00