To check if an "is_mesh_verts_only" mesh, the overlay engine checks if the
mesh has no "totedge" and has "totvert".
However, sometimes this engine can check the wrong mesh since editmesh
works on `embm->mesh_eval_final`.
Reviewed By: fclem
Differential Revision: https://developer.blender.org/D10917
The issue was that where_on_path uses a resampled curve to get the data
from the curve. This leads to disconnects between the curve the user
sees and the evaluated location data.
To fix this we simply use the actual curve data the user can see.
The older code needed a cleanup either way as there were hacks in other
parts of the code trying to work around some brokenness. This is now
fixed and we no longer need to clamp the evaluation range to 0-1 or make
helper functions to make it do what we actually want.
Reviewed By: Campbell, Sybren
Differential Revision: http://developer.blender.org/D10898
Before this change, you could have the new sculpt symmetry code and the
older weight paint symmetry code active at the same time. This would
lead to users easily trashing their weigh paint data if they were not
careful when switching between modes.
Now the specific weight paint symmetry code is an exclusive toggle so
the user can't accidentally mirror strokes and vertex groups at the same
time. This also paves the way of supporting Y and Z symmetry in the
future for weight groups mirroring if we decide to add it in the future.
Reviewed By: Sybren
Differential Revision: http://developer.blender.org/D10426
Now `ED_view3d_backbuf_depth_validate`, `ED_view3d_draw_depth` and
`ED_view3d_draw_depth_gpencil` are unified in `ED_view3d_depth_override`.
This new function replaces `ED_view3d_autodist_init`.
Also, since `ED_view3d_depth_update` depends on the render context, and
changing the context is a slow operation, that function also was removed,
and the depth buffer cached is now updated inside the new unified drawing
function when the "bool update_cache" parameter is true.
Finally `V3D_INVALID_BACKBUF` flag has been renamed and moved to
`runtime.flag`.
Differential revision: https://developer.blender.org/D10678
Display the bone axes at the head (root) of the bone by default, instead
of the tail (tip), and add a slider so that it's possible to adjust this
position.
Versioning code is in place to ensure existing files behave the same
(axes shown at tail), whereas new Armatures will be using the new
default (axes shown at head).
Reviewed By: #animation_rigging, #user_interface, Severin, Sybren
Differential Revision: https://developer.blender.org/D7685
The new clamping works by modifying the lamp internal radius which
then soften the light contribution.
However this does remove more light compare to the old solution.
This is because the clamp now affects the light over a much larger
distance since it is smoother. Old scene needs manual tweaking.
Soft surface shadows were already supported but now we support
soft shadows of the volume themselves.
This is only enabled if the light casts shadow and the scene soft
shadows toggle is enabled.
Previously area lights were just considered as point lights.
We now use a "most representative point" technique that make the
light shape appearant and gives more homogenous result.
This technique is quite cheap but it is not physically correct.
So I came up with a power function to have almost the same intensity
output as cycles in the general case.
Sun lights are treated as distant light source and need to gather
shadowing from the full frustum.
This might have performance impact on certain scenes.
This adds 2 new sliders for light objects that modulates the diffuse
light and the volume light intensities.
This also changes the way volume light is computed using point lamp
representation. We use "Point Light Attenuation Without Singularity"
from Cem Yuksel instead of the usual inverse square law.
Transforms in certain cases
This was caused by wrong flag checking in {rB278011e44d43}, which just
seems to be a copy-paste error.
For example, enabeling 'Auto-Offset' in the View menu would lead to CM
being ignored.
Maniphest Tasks: T86219
Differential Revision: https://developer.blender.org/D10751
This was cause by the change of some epsilon values for reflections.
This commit changes the planar reflection tracing to have correct
handling of parallel rays and discard any self intersection with normal
screen raytrace.
is hidden from the viewport
Check visibilty (as done in workbench_cache_populate) in
overlay_edit_uv_cache_populate as well.
Maniphest Tasks: T86542
Differential Revision: https://developer.blender.org/D10724
The shader was filtering everything but the selected color.
The fix inverts the check to make sure that color is selected.
Reviewed By: fclem
Maniphest Tasks: T86370
Differential Revision: https://developer.blender.org/D10670
Accumulate error caused by the low amount of integration slices and
correct it for the low roughness surfaces.
This increases light leak but it is less distracting than dark fringe
everywhere.
The shader was not using the horizon texture and was trying to
trace the AO again.
Also the depth reconstruction was off because now using the maxzBuffer.
This happens when the normal is too much deformed to give valid
reflection even after ensure_valid_reflection.
Cycles seems to not handle this case either so we just discard the
rays.
Simple divide by 0 error. The input radius was assumed to be safe
but is not when the user can scale it arbitrarly.
This also move the division out of the loop.
We now reuse 9 hitpoints from the neighboorhood using a blue noise
sample distribution as mentionned in the reference presentation.
Reusing more rays does however make some area a bit more blury.
The resulting noise is quite lower compared to previous implementation
which was only reusing 4 hits.
This make sure the rays are generated randomly from a fullres
texel center.
This creates more noise but increase the convergence when doing
half res tracing.
This split is to make code easier to manage and rename the files to
`effect_reflection_*` to avoid confusion.
Also this cleans up a bit of the branching mess in the trace shader.
This makes the hit delta threshold dependant on the ray angle.
If the ray is more aligned with the view, its intersection
threshold gets bigger to avoid going through geometry.
This improves reflections and fix T86448 refraction issue.
We now have a new buffer to output reflection depth. This buffer is
only usefull for non planar SSR but we use it to tag the planar rays.
This also touch the raytrace algo for planars to avoid degenerate
lines on vert sharp reflections.
This changes the sampling routine to use the method described in
"A Simpler and Exact Sampling Routine for the GGXDistribution of Visible Normals"
by Eric Heitz.
http://jcgt.org/published/0007/04/01/slides.pdf
This avoids generating bad rays and thus improve noise level in screen-
space reflections / refraction.