Age | Commit message (Collapse) | Author |
|
Keep it in DNA for backward compatibility
|
|
|
|
This is needed in some corner case (shadow acne due to aliasing and depth
disparity). This is a simple bias added to default bias. It should not be
needed most of the time but we leave it at 1 by default.
|
|
Spot light can be non-uniform and scale in one direction. This fix makes
sure both directions are taken into account before skipping cubemap faces.
|
|
If soft shadows is enabled, we randomize the shadowmap sample position
to reduce aliasing artifacts (jagged edge shadows).
|
|
Also have some const correctness fix and some header cleanup.
|
|
- Replace EEVEE_lightbits by BLI_bitmap
- Replace EEVEE_BoundSphere by BoundSphere
- Support for dupli light shadows
- Detect unecessary update of soft shadows (i.e: moving the view)
- Remove Object references
|
|
Dupli objects can now cast shadows.
This also replace the custom lightbits by BLI_bitmap.
|
|
Unfortunately, this seems to be imprecise on lower cube resolution. But
the result is still most of the time more pleasant than no border filtering.
|
|
This reduce the number of face to render to 5 in the case of area lights
and 5 or 1 for spotlights.
Spotlights that have a spot size less than 90 degrees only need 1 face and
are the fastest.
|
|
This is in preparation of an optimization
|
|
This is needed for hairs.
|
|
Contact shadows now follow the shadowmap direction. This means it matches
the shadowmap blur that is proportional to the light radius.
Moreover this adds a more efficient bias for most contact shadows.
|
|
|
|
In an attempt to simplify the shadowing in eevee, we remove the bias and
filtering option.
Now the shadowmap always get the minimum constant and slope bias and we
only do a bilinear shadow filtering. This means the shadow is as sharper
and exact as the shadow map format allows (bitdepth and size).
Only the lamp size can change the shadow softness.
|
|
This simplify sun lights setup and matches more cycles behavior.
|
|
|
|
This bias replace the previous bias method. The bias is now scalled to
have the correct depth of the triangle at the sample location. This is done
by computing the actual depth that would be recorded in the shadowmap
at the texels locations, if the triangle was extrapolated.
This leads to less shadow acne and it ensure the bias is always the minimum
amount that ensure correct shadowing.
However this technique is not failure free and if the receiver is nearly
parallel to the light, the bias is nearly infinite and light leaking occurs.
For this reason I decided to cap the bias by the bias parameter to tweak
between shadow acne and light leaking.
|
|
PCF shadowmaps are less prone to light leaking and are faster to
render.
This remove a substantial part of the shadowing code.
|
|
This state add shadowmap bias to avoid most of self shadowing.
|
|
This separate the translucency evaluation to be outside of surface eval.
This as the benefit to reduce code complexity and remove the need for
shadow map (non-test) sampler in the shading pass.
One big change is that bsdf intensity is multiplied and stored with the
albedo color instead of the sss irradiance. This is in order to apply it
to both the translucency and the sss diffusion. This change the look of
mixed SSS shaders which is now closer to cycles.
Performance cost is negligeable.
# Conflicts:
# source/blender/gpu/shaders/gpu_shader_material.glsl
|
|
This refactor reduce the Memory overhead of SSS and enables us to always
use separate albedo. Previously we used 128bits/px for SSS data and
32bits/px for albedo. Now we use 112bits/px for SSS data & separate albedo
altogether.
This refactor is needed for PCF shadow maps.
# Conflicts:
# source/blender/gpu/shaders/gpu_shader_material.glsl
|
|
|
|
While the vast majority of labels would never get a button context menu
(as opposed to the regular context menu of this region), draggable
labels would still reach code for such context menu creation. From what
I can tell only file browser icons/thumbnails and the properties editor
data path would be affected. The button context menu doesn't make sense
for them, so let the region context menu show up instead.
If at some point we want button context menus for specific labels, we
can make checks more granular.
|
|
This new option applies the opacity using the strength of the stroke instead to use the alpha channel of the material.
Tested in greasepencil-object branch
{F7712796}
The vertex group filter has been removed because this filter is not logic in Material mode and must be valid only in Strength mode.
{F7713147}
Reviewers: pepeland, mendio
Reviewed By: mendio
Differential Revision: https://developer.blender.org/D5650
|
|
Now the material is set as fill if the curve is 2D and is filled with a material. This is done in the Convert operator only, because the SVG add-on works totally different due the SVG has more parameters to determine the type of filling.
|
|
Buttons marked as the default action are shown in full selected color. Simplification of all the related active_default code.
Differential Revision: https://developer.blender.org/D5574
Reviewed by Campbell Barton
|
|
|
|
For reasons similar to drivers, it should be possible to set an
explicit Euler rotation order in constraints that use Euler angles.
The Transform constraint in a way approaches drivers in its use,
in that it effectively alters channels using values of other
channels after applying a fixed form mathematical expression.
For this reason, instead of just specifying the euler order for
its inputs, it uses the same enum as driver variables. However
Quaternion components are converted to a weighted pseudo-angle
representation as the rest of the constraint UI expects angles.
|
|
This bug was introduced when adding the support for default materials.
|
|
After adding the Euler order option, it's an easy addition to
the enum. The list of channels had of course to be expanded too.
|
|
Also remove unused arguments.
|
|
This commit adds support to convert curves to Grease Pencil strokes and create the materials too.
Also, there is a new python API. This API is required by the modified SVG import addon to create strokes( see T67065).
All curves selected in one operation are converted in the same Grease Pencil object.
|
|
The meaning of the euler angles completely depends on the rotation
order. Currently the rotation order is taken from the target of the
driver variable, which somewhat makes sense if it uses euler, but if
it's quaternion, then the order is always set to XYZ.
Add a new option for the rotation channels of the Transform Channel
driver variables that defaults to the old behavior, but allows setting
an explicit rotation order.
|
|
|
|
Depending on the outliner display mode and the outliner dirty state,
a sync may not be needed on each draw. This commit adds a check
before syncing to prevent syncing when not needed.
|
|
This changes from-outliner selection syncing to always sync the
selection state of objects. This allows selecting objects while in
edit mode for parenting or adding hooks. This also fixes a few issues
where the sync algorithm would fail when no active object existed.
|
|
|
|
Spotted by @deadpin on chat
|
|
Better be specific with the data that needs updating.
|
|
|
|
|
|
Older cmake did not find the BlendThumb sub project.
|
|
|
|
Not sure since when that one has been enabled, but there is no reasons
to print all that for regular users...
|
|
|
|
Was doing int comparision against size_t, so added casts.
|
|
This patch continue the efforts to split the `gpu_shader_material` file
started in D5569.
Dependency resolution is now recursive. Each shading node gets its own
file. Additionally, some utility files are added to be shared between
files, like `math_util`, `color_util`, and `hash`. Some files are always
included because they may be used in the execution function, like
`world_normals`.
Some glsl functions appeared to be unused, so they were removed, like
`output_node`, `bits_to_01`, and `exp_blender`. Other functions have
been renamed to be more general and get used as utils, like `texco_norm`
which became `vector_normalize`.
A lot of the opengl tests fails, but those same tests also fail in
master, so this is probably unrelated to this patch.
Reviewers: brecht
Differential Revision: https://developer.blender.org/D5616
|
|
|
|
Collection contents alphabetical sort now uses a Natural Sort that takes number magnitude into account.
Differential Revision: https://developer.blender.org/D5636
Reviewed by Brecht Van Lommel
|