Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-05-05Fix T86823 Eevee: refraction depth shared between different materialsClément Foucault
This was caused by the material grouping system which was missing a per material uniform update in the opaque case.
2021-05-05Fix T86037 EEVEE: SSR option changes render passes resultClément Foucault
This was caused by the SSR option resetting the accumulation. But the render passes were only cleared in the init phase. This means that when SSR was resetting the taa_render_sample the actual renderpasses would still contains 1 sample. This means the renderpasses were always divided by the wrong number of samples. The fix is to clear just before accumulation if the sample is 1. The fact that it works for motion blur is kind of a blessing. This is because we check stl->effects->ssr_was_valid_double_buffer before resetting the sampling. So this only happens on the first motion step and does not affect the rest of the rendering. Reviewed by: jbakker Differential Revision: https://developer.blender.org/D11033
2021-04-28Fix T87464 EEVEE: Crash with deformation Motion BlurClément Foucault
This was caused by the new depsgraph persistence. The GPUbatches we got from the cache being the same for each frame means that we need to be more careful about cleanning the additional VBOs references. Moving the `EEVEE_motion_blur_swap_data` function call at the end of the loop makes sure the references are cleaned.
2021-04-23Fix T78845: Eevee wrong material selection.Jeroen Bakker
In cases where the same node tree is used in different materials with small changes, the wrong material could be selected. Cause: Hair shaders GPU resources weren't updated and used the previous bound data. Reviewed By: fclem Differential Revision: https://developer.blender.org/D11036
2021-04-20Fix T87440 EEVEE: Specular Light Viewport Render Pass wrong behaviorClément Foucault
This was caused by the closure refactor. The radiance being masked for SSR, we need to not enable SSR when trying to render the specular color pass. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11028
2021-04-20EEVEE: Fix unreported memory leak when toggling AO on/offClément Foucault
The `filtered_radiance` is not a texture form the texture pool. It needs manual freeing if not used.
2021-04-20Fix T87369 EEVEE: Ambient Oclussion: Firefly caused by degenerated normalClément Foucault
This was caused by some sort of degenerated normals.
2021-04-20Fix T87541 EEVEE: AO causes black outline around objects and NaN pixelsClément Foucault
It seems the pow result is unstable on some implementations. Also avoid undefined behavior by clamping aoFactor to strict positive values.
2021-04-11Cleanup: clang-formatCampbell Barton
2021-04-08Cleanup: Use const arguments for volume codeHans Goudey
The problem was that you could getting write access to a grid from a `const Volume *` without breaking const correctness. I encountered this when working on support for volumes in the bounding box node. For geometry nodes there is an important distinction between getting data "for read" and "for write", with the former returning a `const` version of the data. Also, for volumes it was necessary to cast away const, since all of the relevant functions in `volume.cc` didn't have const versions. This patch adds `const` in these places, distinguising between "for read" and "for write" versions of functions where necessary. The downside is that loading and unloading in the global volume cache needs const write-access to some member variables. I see that as an inherent problem that comes up with caching that never has a beautiful solution anyway. Some of the const-ness could probably be propogated futher in EEVEE code, but I'll leave that out, since there is another level of caching. Differential Revision: https://developer.blender.org/D10916
2021-04-08EEVEE: Ensure Reflection: Use new implementationClément Foucault
Use same implementation as Cycles. Is also a bit faster. Should also fix T86578 at the same time.
2021-03-22Cleanup: clang-format, trailing spaceCampbell Barton
Minor manual tweak to prevent wrapping an array into columns.
2021-03-21Cleanup: spelling, doxygen comment formattingCampbell Barton
2021-03-21Fix T86660 EEVEE: Undefined behaviour in specular_occlusionClément Foucault
Define visibility error to be 1 by default to avoid undefined behaviour.
2021-03-19EEVEE: Volumetrics: Add back support for light clampClément Foucault
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.
2021-03-19EEVEE: Volumetrics: Add support for soft volumetric shadowsClément Foucault
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.
2021-03-19EEVEE: Volumetrics: Add Area light shape supportClément Foucault
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.
2021-03-19EEVEE: Volumetrics: Add special attenuation volume for lightsClément Foucault
This makes volume lights more efficient if they have lower power.
2021-03-19EEVEE: Volumetrics: Fix sun volumetric shadowClément Foucault
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.
2021-03-19EEVEE: Lights: Add Volume and diffuse light power sliderClément Foucault
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.
2021-03-18Fix T86448 EEVEE: SSRefraction Depth regressionClément Foucault
Caused by recent change for contact shadow raytracing. rB4e236326c137
2021-03-16Fix T86612 EEVEE: Wrong AmbientOcclusion on refractive materialsClément Foucault
This is because the refractive materials were using the deferred AO computation instead of tracing their own.
2021-03-15EEVEE: Contact Shadow: Fix self intersection issuesClément Foucault
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.
2021-03-15Cleanup: EEVEE: Remove unused variableClément Foucault
2021-03-14EEVEE: Specular Occlusion: Avoid overdarkening on smooth surfacesClément Foucault
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.
2021-03-14Cleanup: EEVEE: Replace `brightness()` by `max_v3()`Clément Foucault
It is more straightforward to understand and is define in common file.
2021-03-14Cleanup: EEVEE: Remove unused mipmapping on main color bufferClément Foucault
2021-03-14Cleanup: EEVEE: Silence warningClément Foucault
2021-03-14EEVEE: RenderPass: Fix Ambient Occlusion passClément Foucault
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.
2021-03-14Cleanup: EEVEE: Remove the horizon search layered shaderClément Foucault
This shader is of no use now that we the fullres hizbuffer.
2021-03-14EEVEE: Planar reflections: Fix ambient occlusion broken in reflectionsClément Foucault
Use the maxzbuffer to get the correct depth information.
2021-03-13EEVEE: ScreenSpaceReflections: Avoid outputing NaNsClément Foucault
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.
2021-03-13Fix T86476 EEVEE: SSS material with variable radius can produce NaNsClément Foucault
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.
2021-03-13EEVEE: Fix wrong sss component being affected by alphaClément Foucault
This fixes NaNs / blown up values when using alpha-hashed transparency or alpha clip with SSS.
2021-03-13EEVEE: ScreenSpaceReflections: Add back multi ray-hitpoint reuseClément Foucault
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.
2021-03-13EEVEE: ScreenSpaceReflections: Increase depth thresholdClément Foucault
This avoids going through geometry when ray have certain angle.
2021-03-13EEVEE: ScreenSpaceReflections: Jitter starting texelClément Foucault
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.
2021-03-13EEVEE: Fix split commitClément Foucault
2021-03-13Cleanup: EEVEE: Remove SSR shader variationsClément Foucault
2021-03-13Cleanup: EEVEE: Split effect_ssr.glslClément Foucault
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.
2021-03-13Cleanup: EEVEE: Remove hammersley texture and split hammersley codeClément Foucault
2021-03-13Cleanup: EEVEE: Make bsdf_sampling_lib.glsl more tidyClément Foucault
2021-03-11Cleanup: spellingCampbell Barton
2021-03-10EEVEE: ScreenSpaceReflections: Improve minimal hit thresholdClément Foucault
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.
2021-03-10Cleanup: EEVEE: Remove unused function and fix commentClément Foucault
2021-03-10Fix T86429 EEVEE: Ambient occlusion broken on some platformClément Foucault
This was cause by a division by 0 if the ray direction had no depth difference. Adding a small epsilon fix the issue.
2021-03-10EEVEE: ScreenSpaceReflections: Add back support for planar reflectionsClément Foucault
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.
2021-03-10Cleanup: EEVEE: Use correct prefix for view space vectorsClément Foucault
2021-03-10EEVEE: GGX: Use distribution of visible normal for samplingClément Foucault
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.
2021-03-10EEVEE: ScreenSpaceReflections: Improve hit qualityClément Foucault
This changes the hitBuffer to store `ReflectionDir * HitTime, invPdf` just as the reference presentation. This avoids issues when the hit refinement produce a coordinate that does not land on the correct surface. We now store the pdf in the same texture and store it inversed so we can remove some ALU from the resolve shader. This also rewrite the resolve shader to not be vectorized to improve readability and scalability.