Age | Commit message (Collapse) | Author |
|
This is a continuation of D13462 to clean up source typos.
Differential Revision: https://developer.blender.org/D13471
|
|
|
|
|
|
Contributed by luzpaz.
Differential Revision: https://developer.blender.org/D13264
|
|
Up lower clamp on spec_angle to prevent NaN from being generated on intel GPUs at low roughness.
Fixes T88754
Reviewed By: fclem
Maniphest Tasks: T88754
Differential Revision: https://developer.blender.org/D12508
|
|
The issue was caused by `textureSize()` returning the size of the level 0
even when the min texture level is higher than 0.
Using a uniform to pass the correct size fixes the issue.
This issue also affected the downsampling of radiance for reflections and
refractions.
This does not affect anything other than the recusive downsampling shaders.
|
|
|
|
Also use doxy style function reference `#` prefix chars when
referencing identifiers.
|
|
|
|
|
|
This was caused by unsafe sqrt calls.
Fixes T86578 white artifacts in EEVEE
Reviewed By: brecht, dfelinto
Differential Revision: https://developer.blender.org/D11428
|
|
Both before and after can have artifacts with some normal maps, but this seems to give
worse artifacts on average which are not worth the minor performance increase.
This reverts commit 5c4d24e1fd752a8a89d44d05e8e3f9b31f2d7db0.
Ref T88368, D10084
|
|
This was caused by the slight focus gather not being wide enough
for small radii. Now the cast to int will properly round the radius to
the nearest integer.
This is related to T86244 Black Artefacts in EEVEE on Transparent BSDF
|
|
This was caused by the bokeh LUT being sampled outside the valid range.
But `texelFetch` is only valid if the sample actually exists. This lead to
undefined behavior.
The fix is to increase `DOF_MAX_SLIGHT_FOCUS_RADIUS` (which just offsets the
LUT along the X=Y axis) to avoid any sample outside the defined range.
|
|
This was caused by the drivers not optimizing the shader enough to remove
the samplers and data used by closure eval. Removing the lighting loops
from the depth shader fixes the perf regression.
|
|
This artifact was already present in previous version but was hidden
by the faulty SSS scale.
The issue comes from the translucence using the geometric normal
(computed using fragment shader derivative) leading to poor precision at
depth discontinuity.
Replacing using the same geometric normal reconstruction as the ambient
occlusion pass removes most of the issue.
|
|
This was caused by some sort of degenerated normals.
|
|
It seems the pow result is unstable on some implementations.
Also avoid undefined behavior by clamping aoFactor to strict positive values.
|
|
Use same implementation as Cycles. Is also a bit faster.
Should also fix T86578 at the same time.
|
|
Minor manual tweak to prevent wrapping an array into columns.
|
|
Define visibility error to be 1 by default to avoid undefined behaviour.
|
|
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.
|
|
This makes volume lights more efficient if they have lower power.
|
|
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.
|
|
Caused by recent change for contact shadow raytracing. rB4e236326c137
|
|
This is because the refractive materials were using the deferred AO
computation instead of tracing their own.
|
|
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.
|
|
|
|
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.
|
|
It is more straightforward to understand and is define in common file.
|
|
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 shader is of no use now that we the fullres hizbuffer.
|
|
Use the maxzbuffer to get the correct depth information.
|
|
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.
|
|
This fixes NaNs / blown up values when using alpha-hashed transparency
or alpha clip with SSS.
|
|
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 avoids going through geometry when ray have certain angle.
|
|
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.
|
|
|
|
This was cause by a division by 0 if the ray direction had no
depth difference. Adding a small epsilon fix the 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.
|