Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
Modifiers such as sub-surf and mirror now work with show-on-cage.
Selection and loose geometry still needs to be supported.
|
|
|
|
|
|
Makes code slightly more readable.
|
|
Also re-order logic so loop indices are ensured to be valid.
|
|
|
|
|
|
|
|
The warning was: runtime error: left shift of 1 by 31 places cannot be
represented in type 'int'
Patch by Clément Foucault.
|
|
Show-on-cage and show-in-editmode options now work as it did in 2.7x
(but only for deformation).
|
|
Was caused by the use of a batch that was using a discarded index buffer.
|
|
Caveat: Random output does not yet work with instance (dupli) objects.
|
|
|
|
DerivedMesh is now removed from edit-mesh modifier evaluation.
|
|
- immAttrib* -> immAttr*
- immSkipAttrib -> immAttrSkip
Term 'attr' is a convention for GPU module.
|
|
Note this is just using the derived-mesh data at the moment,
to support this properly we'll need to remove derived-mesh.
|
|
|
|
Also use const qualifier for object's.
|
|
Both original handle types are based on location, and Absolute uses it
in a weird way: the Start handle uses the head, while End uses the tail.
This makes controlling the shape of the B-Bone via control bone rotation
really non-intuitive, especially if trying to add a single control for
the tangent in the middle of a B-Bone chain.
To remedy this, add a new custom handle type that uses the orientation
of the control bone, while completely ignoring location. It is even
possible to control both ends of one B-Bone with the same handle bone,
resulting in an S shape.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D3769
|
|
Specifically, it should always use the position of the custom handle
bone head, even when affecting the handle at the tail of the main bone,
and shouldn't apply the special handling for joining two B-Bones.
This handle type was unusably broken before a bug fix included in
recent changes, so it should be safe to break backward compatibility.
|
|
|
|
The rest shape of B-Bones is actually affected by custom handles or
the default connected parent/child mechanism. Ignoring these effects
thus leads to the edit mode shape being different from the actual
rest pose.
This splits the b_bone_spline_setup function that is used to compute
the correct rest and pose shape from pose channels into two parts,
and applies the data structure independent half to edit mode.
In order to access the custom handle settings in Edit Mode, they are
moved to Bone and EditBone, while the bPoseChannel fields are downgraded
in status to a cache for performance. Also, instead of flags, introduce
an enum to specify the handle operation modes, so that new ones could
be added later.
Reviewers: aligorith, brecht
Differential Revision: https://developer.blender.org/D3588
|
|
|
|
Add BKE_mesh_batch_cache_dirty_tag option for resetting UV's.
|
|
Avoid accessing object mode via the view layer active object
when drawing since it's done everywhere we store the active object mode
in the draw-context.
|
|
The cursor is used as location to draw new stroke
|
|
The 3D Cursor, origin and dummy are hidden depending of the mode to get a cleaner drawing space.
|
|
|
|
|
|
|
|
|
|
All that was needed is a VAO refresh. It's not a performance problem
because it only concerns a handful of batches.
|
|
Currently it's not showing the subdivided mesh (if there is a subdiv mod)
and there is some sync issue if there is multiple uv image space opened.
But thoses will be tackled later on. The purpose of this commit is to fix
the overflow issue of IMM and speed issue.
|
|
NOTE: This commit only concern edit UVs and not the "shadow" mesh displayed
when texture painting. This will be address in a future commit.
We now cache the uv mesh in the mesh batch cache and only reupload data on
changes.
Update could be more granular (and a bit faster) but it's not our main
concern ATM.
This should fix problem caused by the IMM api used to draw large meshes.
This makes performance skyrocket compared to previous implementation.
There is still a big CPU bottleneck when not in sync selection mode but it
is not related to the drawing function directly.
|
|
|
|
The crash occurs in a shader with uniform block of a certain size and misaligned.
|
|
Seems there is something wrong with ternary operator
and type deduction.
Copying matrix to a variable with cleaner name seems
to be better solution than to force cast to an array.
|
|
Move the weight paint drawing to the fragment shader. The shader
uses a texture that uses the U.coba_weight custom color band, or
an internal color band.
In addition to actual weights, the shader has to display two
alert colors: missing vertex group, and zero weight. The zero
weight alert has to be blended with regular weight colors,
so that a single alert vertex surrounded by weighted ones is
still visible.
Reviewers: campbellbarton, fclem
Differential Revision: https://developer.blender.org/D3675
|
|
This commit make the Xray option for the wireframe different from the other
shading mode. This makes it possible to rapidly switch between wireframe +
Xray and Solid mode without Xray.
Xray alpha is also decoupled.
Both variables are duplicated and exposed separately through RNA.
|
|
|
|
It's so similar in practice that we don't need a separate engine for edit
surface overlays.
|
|
This is not any kind of length, it is the number of true values.
|
|
|
|
|
|
Now handles are drawn using index buffer instead of duplicating memory
requirement.
Also make use of shader tricks to draw handles antialiased, and respond to
UI scalling.
Make vertex point match edit mesh vertex size.
|