Age | Commit message (Collapse) | Author |
|
This fix the ugly (usually) dark outline that was around selected edges.
|
|
This is important for good texture paint performance.
|
|
- see the face selection color when face is active
- test different masks for active face, finally chosen for no mask at
all.
|
|
reorganized shader compilation
|
|
This reverts commit da6ed54569d03d18512e46ae08629bf72a592a82.
|
|
- removed the dithering from the active face
|
|
- Hide facedots, except when in V3D_ZBUF_SELECT mode
`use_occluded_geometry`
- Different theme (wire_inactive) when not in edge selection mode
|
|
|
|
This is visually too distracting (flickering). Until we have a better
solution, just disable occlusion fading.
|
|
This Fix the problem when multiple objects are selected and one of them
occlude the others. You cannot see clearly what is selected.
With this option, selection is more clear when Xray mode is enabled.
|
|
the parent/child object is selected
As in Pose Mode, the idea here it to try to reduce viewport complexity
without requiring users to turn off the overlay completely all the time.
For example, a background prop (e.g. a tree with a tyre hanging off it,
or a branch with hand-placed leaves) won't be cluttering the viewport with
its relationship lines all the time, when you're trying to do something else.
When you really do need to see these lines, you can still select the object
in question, and you'll see the lines for which objects are its children
or what its parent is. And to see all lines, you can still always select all
objects.
|
|
Object Mode & Armatures (Edit/Pose)
|
|
This will show the associated edges to the vertices but that's the only
workaround I can think of right now.
|
|
This make the limited wireframe not a performance problem anymore.
However, this does change the number of edges displayed as the threshold
is now computed per vertex instead of per edges.
For this reason we extended (internaly) the range of the slider so that the
users can hide more edge.
|
|
|
|
|
|
|
|
|
|
Experiment: let the user be in control of the alpha channel as some rigs
are hard too see during bone selection. Especially rigs that were
designed for 2.79 wireframe mode.
|
|
Particles in EMITTER mode needs to have cache.
|
|
The default behaviour is to show the same amount of edges as 2.7.
The slider makes it possible to show all edges or even less.
|
|
|
|
Only use catmull-rom interpolation for now. It's smoother and does not
exhibit artifacts.
|
|
Intel GPU take more advantage of the geometry shader than other vendors.
Using a simple geom shader approach in this case is more performant.
|
|
|
|
This commit restores support for Motion Path drawing in 2.8 (as it wasn't ported over
to the new draw engines earlier, and the existing space_view3d/drawanimviz.c code was
removed during the Blender Internal removal).
Notes:
* Motion Paths are now implemented as an overlay (enabled by default).
Therefore, you can turn all of them on/off from the "Overlays" popover
* By and large, we have kept the same draw style as was used in 2.7
Further changes can happen later following further design work.
* One change from 2.7 is that thicker lines are used by default (2px vs 1px)
Todo's:
* There are some bad-level calls introduced here (i.e. the actgroup_to_keylist() stuff).
These were introduced to optimise drawing performance (by avoiding full keyframes -> keylist
conversion step on each drawcall). Instead, this has been moved to the calculation step
(in blenkernel). Soon, there will be some cleanups/improvements with those functions,
so until then, we'll keep the bad level calls.
Credits:
* Clément Foucault (fclem) - Draw Engine magic + Shader Conversion/Optimisation
* Joshua Leung (Aligorith) - COW fixes, UI integration, etc.
Revision History:
See "tmp-b28-motionpath_drawing" branch (rBa12ab5b2ef49ccacae091ccb54d72de0d63f990d)
|
|
This fix T55280 Loose edges not visible in object mode
|
|
|
|
This overlay is showing mesh topology. It is usable with transparency
even if the mesh order can mess up with the expected result (some object
more prominent than others).
Edge thickness and alpha values are hardcoded for now but can easily be
added to theme or object settings.
|
|
|
|
|
|
This new system use transform feedback to compute subdivided hair points
position. For now no smoothing is done between input points.
This new system decouple the strands data (uv, mcol) with the points
position, requiring less update work if only simulation is running.
In the future, we can have compute shader do the work of the feedback
transform pass since it's really what it's meant to. Also we could generate
the child particles during this pass, releasing some CPU time.
draw_hair.c has been created to handle all of the Shading group creations
as well as subdivision shaders.
We store one final batch per settings combination because multiple viewport
or render could use the same particle system with a different subdivision
count or hair shape type.
|
|
|
|
|
|
Selection is no longer needed for an object to be considered in a mode.
Part of T55246 design task, fixes T55187
|
|
Fixes T55190 Grid displayed on top of objects in orthographic view
|
|
|
|
I had to correct some errors in the winding order of the normal bones.
|
|
|
|
This is much faster and simpler. This is also to make it compatible with
custom bone shape in the future.
|
|
|
|
The implementation is pretty straightforward.
In Cycles, sampling the shapes is currently done w.r.t. area instead of solid angle.
There is a paper on solid angle sampling for disks [1], but the described algorithm is based on
simply sampling the enclosing square and rejecting samples outside of the disk, which is not exactly
great for Cycles' RNG (we'd need to setup a LCG for the repeated sampling) and for GPU divergence.
Even worse, the algorithm is only defined for disks. For ellipses, the basic idea still works, but a
way to analytically calculate the solid angle is required. This is technically possible [2], but the
calculation is extremely complex and still requires a lookup table for the Heuman Lambda function.
Therefore, I've decided to not implement that for now, we could still look into it later on.
In Eevee, the code uses the existing ltc_evaluate_disk to implement the lighting calculations.
[1]: "Solid Angle Sampling of Disk and Cylinder Lights"
[2]: "Analytical solution for the solid angle subtended at any point by an ellipse via a point source radiation vector potential"
Reviewers: sergey, brecht, fclem
Differential Revision: https://developer.blender.org/D3171
|
|
Use 'ob' prefix for objects, 'eval' suffix for evaluated data.
|
|
|
|
|
|
- Implemented custom selection in pose mode overriding the rest. This
selection mode is only done for bone selection right now
|
|
|
|
Allows to have quicker lookup in particle edit mode.
|
|
The idea is to allow "regular" strands to update edit cache and hence
get the final update strands.
|
|
This is what old particle drawing code was doing.
|