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
2022-03-30Metal: GLSL Shader compatibility 5Jason Fielder
MSL does not have an implicit global scope, this is emulated via macro's adding an indirection for uniforms, attributes, shader stage inputs and outputs such as: #define roughness shaderinst->roughness. Variables in GLSL which exist within uniform blocks can be directly referenced via the global scope, unlike standard C++. This means that variable name pollution occurs if subsequent local variables in the code use the same name, resulting in compilation errors. A number of these conflicting names have been renamed to ensure unique naming and no further scope pollution. Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14452
2022-03-30Metal: GLSL Compatibility - explicit mat4_to_mat3 conversionJason Fielder
Explicit constructor for mat3 from a mat4 is not valid and cannot be overloaded. Adding explicit texture resource type flags for depth textures. This is an explicit requirement for Metal Shading language. This is a temporary compatibility, as this path is already supported in GPU_SHADER_CREATE_INFO under ImageType::DEPTH_2D, though required in shader source for MSL shaders which do not have create info. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14418
2022-03-22Metal: Make GLSL shader source MSL compliant alsoJason Fielder
Metal shading language follows the C++ 14 standard and in some cases requires a greater level of explicitness than GLSL. There are also some small language differences: - Explicit type-casts (C++ requirements) - Explicit constant values (C++ requirements, e.g. floating point values using 0.0 instead of 0). - Metal/OpenGL compatibility paths - GLSL Function prototypes - Explicit accessors for vector types when sampling textures. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14378
2022-03-21Fix T96655: Bloom crashes EeveeHallam Roberts
This patch fixes T96655, bloom crashing Eevee. The error occurs because rB472fc0c55848b2e2d428cfb4f7debb80a4e12081 added `vec3 safe_color(vec3 c)` to `common_math_lib.glsl`. However, `vec3 safe_color(vec3 c)` already exists in `effect_bloom_frag.glsl`. This means `vec3 safe_color(vec3 c)` is duplicated within `common_math_lib.glsl` and `effect_bloom_frag.glsl`. {F12938060 size=full} The duplicate code in `effect_bloom_frag.glsl` can be removed since it's no longer needed. (I checked the remaining methods, there shouldn't be any additional duplicate code) Reviewed By: fclem Maniphest Tasks: T96655 Differential Revision: https://developer.blender.org/D14396
2022-03-11Cleanup: use M_PI_2 and M_PI_4 where possibleHallam Roberts
The constant M_PI_4 is added to GLSL to ensure it works there too. Differential Revision: https://developer.blender.org/D14288
2022-03-11Cleanup: fix source typos homogenous->homogeneousBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D14306
2022-03-11Cleanup: fix source comment typosBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D14307
2022-01-31Cleanup: use our own conventions for tags in commentsCampbell Barton
2022-01-25Cycles: add Point Info nodeBrecht Van Lommel
With (center) position, radius and random value outputs. Eevee does not yet support rendering point clouds, but an untested implementation of this node was added for when it does. Ref T92573
2021-12-07Cleanup: Fix various source typosluzpaz
This is a continuation of D13462 to clean up source typos. Differential Revision: https://developer.blender.org/D13471
2021-11-30Cleanup: clang-format, trailing spaceCampbell Barton
2021-11-30Cleanup: capitalize NOTE tagCampbell Barton
2021-11-19Cleanup: fix typos in comments and docsBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D13264
2021-09-22EEVEE fix gloss low roughness errorJake
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
2021-09-21Fix T87801: Eevee ambient occlusion is incorrect on M1 macMiniClément Foucault
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.
2021-07-07Cleanup: spelling in commentsCampbell Barton
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-26Cleanup: full sentences in comments, improve comment formattingCampbell Barton
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-05-28EEVEE: Fix NaN caused by ensure_valid_reflection()Clément Foucault
This was caused by unsafe sqrt calls. Fixes T86578 white artifacts in EEVEE Reviewed By: brecht, dfelinto Differential Revision: https://developer.blender.org/D11428
2021-05-27Revert "EEVEE: Ensure Reflection: Use new implementation"Clément Foucault
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
2021-05-15EEVEE: Depth of Field: Fix tile artifacts in mixed focus regionsClément Foucault
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
2021-05-15Fix T85845 EEVEE: Depth Of Field: Artifacts with slight out of focusClément Foucault
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.
2021-05-12Fix T87851 EEVEE: Performance regression with baked lighting & transparencyClément Foucault
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.
2021-05-05Fix T87068 EEVEE: Moire effect with particle hair and subsurfaceClément Foucault
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.
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-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-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-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.