Age | Commit message (Collapse) | Author |
|
Follow conversion already used in most places.
|
|
Follow conversion already used in most places.
|
|
|
|
Before, the evaluation of modifers were done in draw manager. The reason of the old design was grease pencil was designed before depsgraph was in place.
This commit moves this logic to depsgraph to follow general design and reduce Draw Manager complexity. Also, this is required in order to use modifiers in Edit modes.
Really, there is nothing really new in the creation of derived data, only the logic has been moved to depsgraph, but the main logic is the same. In order to get a reference to the original stroke and points, a pointer is added to Runtime data as part of the evaluated data. These pointers allow to know and use the original data.
As the modifiers now are evaluated in Depsgraph, the evaluated stroke is usable in Edit modes, so now it's possible to work with the evaluated version instead to use a "ghost" of the final image over the original geometry as work today.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D5470
|
|
This reverts commit d357e7b06535. This caused crashes in UV editor drawing and
updates in lookdev mode.
Fixes T69087, T69083, T69088, T69096.
|
|
The old layout of `PointerRNA` was confusing for historic reasons:
```
typedef struct PointerRNA {
struct {
void *data;
} id;
struct StructRNA *type;
void *data;
} PointerRNA;
```
This patch updates it to:
```
typedef struct PointerRNA {
struct ID *owner_id;
struct StructRNA *type;
void *data;
} PointerRNA;
```
Throughout the code base `id.data` was replaced with `owner_id`.
Furthermore, many explicit pointer type casts were added which
were implicit before. Some type casts to `ID *` were removed.
Reviewers: brecht, campbellbarton
Differential Revision: https://developer.blender.org/D5558
|
|
Forward declare variables, or make them static.
|
|
The object color property is added as an additional output in
the Object Info node.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D5554
|
|
This also splits vertex access and allocation so it's possible
to copy coordinates into an existing array without allocating it.
|
|
The correct fix would be to avoid all those hacks but this is needed if
we want to be able to parallelize object vbo extractions.
|
|
I imagined that could be a problem for some drivers.
I should have avoided.
|
|
|
|
|
|
|
|
|
|
|
|
This is a step to finish the D4325 and fix the T61286.
Currently the grid is highlighted in steps of 10 out of 10, which is wrong for the imperial units as seen in `buImperialLenDef`.
The idea of the code is to pass the steps of the grid already dimensioned as a uniform.
Another important thing to note is that subdivisions now only affect the grid without unity.
This matches the 2.7x Blender versions.
No performance loss (almost no gain too).
Reviewers: fclem
Subscribers: zlsa, rl.amorato
Differential Revision: https://developer.blender.org/D4379
|
|
This was due to the GPUIndexBuf ranges only computed when requesting
the triangles indices. If the tris were already calculated, the new shading
batches would never have the GPUIndexBuf ranges and instead use the full
triangle index buffer.
So since this only happen when shading data does not match, we just save
the previous GPUIndexBuf ranges and reuse them for the new batch.
This patch is a bit of a hack on top of a hack but it works fine.
|
|
|
|
any wire view
|
|
|
|
|
|
Theses 2 function calls are mandatory.
|
|
|
|
|
|
|
|
Avoids calculating the visible part of a region whenever
on-screen overlays are drawn.
|
|
|
|
`'ParticleSystem': named type definition in parentheses`
And prevent the need for struct `Object` to be defined.
|
|
|
|
objects inside the rect
But in the future the selection code may also be used in object mode (eg for snapping).
So to avoid using too much VRAM resources, it is good to avoid drawing all objects in the viewport.
The solution was to create an array with only objects that are detected within the selection area.
If the selection operator is modal, objects already detected are not removed from the array until view3d is moved or orbited.
To detect the object, its BoundBox is tested.
Since the Select Engine does not have a dedicated depth texture, whenever a new object is "found" the depth of the objects in the array already drawn is redrawn.
Reviewers: campbellbarton, fclem
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D5435
|
|
For testing intersection with frustrum planes without having to transform all bound box vertices into global space.
|
|
|
|
As the video editor mode is not Render mode the VFX was omitted.
Now, the mode is only checked for View3D.
|
|
In rB9c010c44f420, DRW_mesh_batch_cache_create_requested was changed to
take a scene (instead of toolsettings directly), but
DRW_draw_depth_object is calling this with with NULL, just checking for
this seems to fix...
Reviewers: fclem
Maniphest Tasks: T68675
Differential Revision: https://developer.blender.org/D5488
|
|
This is done because they don't have the same update frequency. UV can be
persistent even on geometry update (ex: skinned object) but tangents
can change if the normals change.
Also the name buffer per vbo was too small to contain all names.
|
|
This remove code duplication and use base63 encoding of the hash.
Use mumur hash to have more randomness.
|
|
For clarity sake, the batch cache now uses exclusively per Loop attributes.
While this is a bit of a waste of VRAM (for the few case where per vert
attribs are enough) it reduces the complexity and amount of overall VBO
to update in general situations.
This patch also makes the VertexBuffers filling multithreaded. This make
the update of dense meshes a bit faster. The main bottleneck is the
IndexBuffers update which cannot be multithreaded efficiently (have to
increment a counter and/or do a final sorting pass).
We introduce the concept of "extract" functions/step.
All extract functions are executed in one thread each and if possible,
using multiple thread for looping over all elements.
Reviewed By: brecht
Differential Revision: http://developer.blender.org/D5424
|
|
|
|
|
|
Some statements were split across multiple lines because of their
trailing comments.
In most cases it's clearer to put the comments above.
|
|
Support should be full when using Alpha Blend mode and partial if using
any other blend mode (opaque / alpha clip / alpha hashed).
|
|
This commit also provide a compatibility code that will convert old
materials using Additive or Multiply Blend mode to their node equivalent.
This conversion is only done on outputs that are enabled for eevee.
|
|
Alpha blended Transparency is now using dual source blending making it
fully compatible with cycles Transparent BSDF.
Multiply and additive blend mode can be achieved using some nodes and are
going to be removed.
|
|
|
|
engine internals
|
|
This parameter was removed in 2.80 and we decided to back again, but now is inverted.
|
|
When using Vertex or Weight paint mode on a wireframe the overlay was
blended with the background. In this case we now use alpha blending.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D5340
|
|
The matrices that projects background images in the 3d view
were incorrect. The root cause was that the coordinate systems were not
respected, that was most noticeable when rotating a stretched image.
We re-validated conversions of coordinate spaces (UV -> Image -> Camera -> Window)
and made sure that the rotation is done in image space.
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D5431
|
|
|