This makes the bones transparent when the object or the viewport display
type is Wireframe. This is in order to make things consistent.
In object mode all bones are fully transparent to not create more visual
noise if the scene is complex.
Another small addition is that the Bounding Box draw mode now works as
expected on armatures.
After a previous commit to use unique identifiers for Ghash key, I had missed to free the memory of the name key.
Thanks to Jacques Lucke for detecting the leak.
The problem was not only for instances, but for particles too, and produced segment fault.
For some reason due any internal modification of how duplicated objects are generated, the duplicated object are not available when the draw manager try to use runtime data.
Now, before drawing the particle or the instance, the pointers of the duplicated objects are reassigned to the original "real object" to get full access to runtime data.
Now it's possible use the different Wire modes (Single, Object & Random)
Also support for x-ray mode.
For random colors, the name of the object and the name of the layer is used.
Also some parameters cleanup.
When enable Wireframe mode in the shading type, all strokes are displayed as simple 1 pixel lines.
The color of the line is equal to the stroke color or the fill color if the fill is enabled and the stroke is disabled or has invisible alpha value.
In wireframe mode, all FX are disabled because sometimes the effects can make the lines invisible.
The modifiers are not disabled.
Still pending to decide if we must add support for Random colors, but not sure if this is useful in 2D.
Add a new Draw Mode to display panel in order to define the z-.depth order of the strokes using the real 3D position and not the 2D layer position.
This change makes possible to use VR with grease pencil drawings because the depth of the strokes change with camera position. Also, provide an alternative solution to tasks: T57859, T60325,
The parameter only works with 3D space depth ordering. The Back and Front depths are incompatible with 3D Space mode.
Options are:
- Back
- Front
- 3D Space->2D Layers (default)
-3D Space->3D Location (new mode)
On CCG side it is done similar to displacement, where we have
a dedicated functor which evaluates displacement. Might be seemed
as an overkill, but allows to decouple SubdivCCG from mesh entirely,
and maybe even free up coarse mesh in order to save some memory.
Some weak-looking aspect is the call to update normals from the
draw manager. Ideally, the manager will only draw what is already
evaluated. But it's a bit tricky to find a best place for this since
we avoid dependency graph updates during sculpt as much as possible.
The new code mimics the old code, this is how it was in 2.7.
Fix shading part of T58307.
The option is separated from the solid mode color option.
Random color uses the same method as solid mode.
Selection state is indicated by a brighter color that is outside the
brightness range of the unselected state colors. The active state is
indicated by the outlines that is, now, still drawn in wireframe mode.
Coloring of the selection / active outline is not optimal because it
can look ugly in some cases of color combination. But the outline color
is using index range coloring so it's not trivial to change the color of
the outline per object. For now we use the same outline color used in solid
mode for consistency and also still add an emphasis on the selected objects.
The Single color option uses the theme color. Maybe it would be nice to
change the name of it in a latter commit to avoid confusion.
Removes the flat shader variant since the attrib is specified for each vert
loop in flat shaded mode. It was something leftover from the previous
implementation.
We are still ditching the specular intensity of SSR (ssr_data.xyz).
But at least now there is some comment about it.
See T61704 for user reports on that matter.
Comments with the blessing of Clément Foucault.
If all axis and grid options were turned off, the grid in the main ortho views would not be rendered.
Now we force rendering of the grid regardless of the settings when in one of the main ortho views.
Reviewed By: Brecht Van Lommel
Differential Revision: https://developer.blender.org/D4378
When hiding the curve handles/points previously, the control points would still be drawn (loose verts).
Now we hide everything related to the handle if it is hidden.
Reviewed By: Clément Foucault
Differential Revision: https://developer.blender.org/D4373
The dependency graph now handles updating image users to point to the current
frame, and tags images to be refreshed on the GPU. The image editor user is
still updated outside of the dependency graph.
We still do not support multiple image users using a different current frame
in the same image, same as 2.7. This may require adding a GPU image texture
cache to keep memory usage under control. Things like rendering an animation
while the viewport stays fixed at the current frame works though.
This introduce the wireframe batches. Creating the indices buffer does
not seems to slow down the sculpt in my testing (but it is kind of hard to
test reliably)
This includes a bit of cleanup in gpu_buffers.c.