Revision 7a608f8 by Hans Goudey February 14, 2021, 21:31 (GMT) |
Fix T85633: Misspelling of "neighborhood" in description |
Revision 80a8df7 by Falk David February 14, 2021, 19:52 (GMT) |
Merge branch 'blender-v2.92-release' |
Revision 2d3b29d by Falk David February 14, 2021, 19:51 (GMT) |
Fix T85488: Display units inset operator The inset operator would display the inset thickness and depth as Blender units during transform. This meant that when the scene units were set to something different than meters, the display value would give different results than entering the same number using the value input. (Similar to D10325) The fix makes sure that the numbers are always displayed in the correct scene units. Reviewed By: campbellbarton Maniphest Tasks: T85488 Differential Revision: https://developer.blender.org/D10366 |
Revision 2f6d62b by Lukas Stockner February 14, 2021, 16:07 (GMT) |
Cycles: Implement Dwivedi guiding for path-traced subsurface scattering Cycles has supported path-traced subsurface scattering for a while, but while it's more accurate than other approaches, the increase in noise makes it an expensive option. To improve this, this patch implements Dwivedi guiding, a technique that is based on zero-variance random walk theory from particle physics and helps to produce shorter random walks with more consistent throughput. The idea behind this is that in non-white materials, each scattering event inside the medium reduces the path throughput. Therefore, the darker the material is, the lower the contribution of paths that travel far from the origin is. In order to reduce variance, Dwivedi guiding uses modified direction and distance sampling functions that favor paths which go back towards the medium interface. By carefully selecting these sampling distributions, variance can be greatly reduced, and as a neat side effect shorter paths are produced, which speeds up the process. One limitation of just blindly applying this is that the guiding is derived from the assumption of a medium that covers an infinite half-space. Therefore, at corners or thin geometry where this does not hold, the algorithm might lead to fireflies. To avoid this, the implementation here uses MIS to combine the classic and guided sampling. Since each of those works on one of the three color channels, the final estimator combines six sampling techniques. This results in some unintuitive math, but I tried to structure it in a way that makes some sense. Another improvement is that in areas where the other side of the mesh is close (e.g. ears), the algorithm has a chance to switch to guiding towards the other side. This chance is based on how deep the random walk is inside the object, and once again MIS is applied to the decision, giving a total of nine techniques. Combining all this, the noise of path-traced subsurface scattering is reduced significantly. In my testing with the Rain character model and a simple lighting setup, the path-traced SSS is now actually less noisy than the Christensen-Burley approximation at same render time while of course still being significantly more realistic. Differential Revision: https://developer.blender.org/D9932 |
Revision 67c8d97 by Campbell Barton February 14, 2021, 09:58 (GMT) |
Cleanup: spelling |
Revision 07c6a57 by Campbell Barton February 14, 2021, 08:56 (GMT) |
cmake/deps: Update mesa to 20.3.4 This resolves build error with Py3.9x, use meson build system since autoconf/automake are no longer supported. This adds ninja & meson as dependencies for Linux. Reviewed By: brecht, sybren Ref D10282 |
Revision 0bc281a by Hans Goudey February 14, 2021, 03:27 (GMT) |
Cleanup: Simplify geometry nodes attribute API usage Getting an "ouput" attribute is equivalent to creating an attribute and then getting a write attribute. Replace the latter with the former for consistency with other code, and to decrease the used surface area of the attribute API to hopefully facilitate future cleanup. |
Revision 237175e by Campbell Barton February 14, 2021, 01:18 (GMT) |
Cleanup: use doxy sections |
Revision 2ff2900 by Campbell Barton February 14, 2021, 00:44 (GMT) |
Cleanup: use return argument prefix |
Revision fa093ef by Campbell Barton February 14, 2021, 00:44 (GMT) |
Cleanup: correct/update comments |
Revision c2b73df by Campbell Barton February 14, 2021, 00:27 (GMT) |
Cleanup: unused function |
Revision 90c2307 by Campbell Barton February 14, 2021, 00:20 (GMT) |
Cleanup: remove commented logic for Alt-Pad0 to use previous camera While this could be useful, it's been removed since 2.4x, keeping this here doesn't help add it back since it would need to be re-implemented. |
Revision 3c1e70d by Campbell Barton February 14, 2021, 00:19 (GMT) |
Cleanup: spelling |
February 13, 2021, 23:23 (GMT) |
Cleanup: Source Code Typos Corrects approximately 36 spelling errors in source variable names. Differential Revision: https://developer.blender.org/D10347 Reviewed by Hans Goudey |
Revision 9e81e1c by Clément Foucault February 13, 2021, 18:08 (GMT) |
EEVEE: Fix glass with sharp distribution not ignoring roughness |
Revision aaf1650 by Clément Foucault February 13, 2021, 17:55 (GMT) |
EEVEE: Change cubemap roughness fit This changes the roughness mapping to better utilize the mip chain resolution. This improves glossy reflections with small roughness. Lightcache version bumped because old data does not have the same roughness mapping and cannot be used. |
Revision e7f6168 by Clément Foucault February 13, 2021, 17:53 (GMT) |
EEVEE: Update Offline LUT This follows a change in the LUT generation code. |
Revision 83ac862 by Clément Foucault February 13, 2021, 17:52 (GMT) |
EEVEE: Update LUT GGX generation shader This modifies the principled BSDF and the Glass BSDF which now have better fit to multiscatter GGX. Code to generate the LUT have been updated and can run at runtime. The refraction LUT has been changed to have the critical angle always centered around one pixel so that interpolation can be mitigated. Offline LUT data will be updated in another commit This simplify the BTDF retreival removing the manual clean cut at low roughness. This maximize the precision of the LUT by scalling the sides by the critical angle. I also touched the ior > 1.0 approximation to be smoother. Also incluse some cleanup of bsdf_sampling.glsl |
Revision 06492fd by Clément Foucault February 13, 2021, 17:49 (GMT) |
EEVEE: Fix incorrect fresnel function. The optimized version was not correct. Also it is not showing any benefit over the non optimized version. |
Revision 7f7e683 by Clément Foucault February 13, 2021, 17:43 (GMT) |
EEVEE: Refactor closure_lit_lib.glsl This refactor was needed for some reasons: - closure_lit_lib.glsl was unreadable and could not be easily extended to use new features. - It was generating ~5K LOC for any shader. Slowing down compilation. - Some calculations were incorrect and BSDF/Closure code had lots of workaround/hacks. What this refactor does: - Add some macros to define the light object loops / eval. - Clear separation between each closures which now have separate files. Each closure implements the eval functions. - Make principled BSDF a bit more correct in some cases (specular coloring, mix between glass and opaque). - The BSDF term are applied outside of the eval function and on the whole lighting (was separated for lights before). - Make light iteration last to avoid carrying more data than needed. - Makes sure that all inputs are within correct ranges before evaluating the closures (use `safe_normalize` on normals). - Making each BSDF isolated means that we might carry duplicated data (normals for instance) but this should be optimized by compilers. - Makes Translucent BSDF its own closure type to avoid having to disable raytraced shadows using hacks. - Separate transmission roughness is now working on Principled BSDF. - Makes principled shader variations using constants. Removing a lot of duplicated code. This needed `const` keyword detection in `gpu_material_library.c`. - SSR/SSS masking and data loading is a bit more consistent and defined outside of closure eval. The loading functions will act as accumulator if the lighting is not to be separated. - SSR pass now do a full deferred lighting evaluation, including lights, in order to avoid interference with the closure eval code. However, it seems that the cost of having a global SSR toggle uniform is making the surface shader more expensive (which is already the case, by the way). - Principle fully black specular tint now returns black instead of white. - This fixed some artifact issue on my AMD computer on normal surfaces (which might have been some uninitialized variables). - This touched the Ambient Occlusion because it needs to be evaluated for each closure. But to avoid the cost of this, we use another approach to just pass the result of the occlusion on interpolated normals and modify it using the bent normal for each Closure. This tends to reduce shadowing. I'm still looking into improving this but this is out of the scope of this patch. - Performance might be a bit worse with this patch since it is more oriented towards code modularity. But not by a lot. Render tests needs to be updated after this. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D10390 # Conflicts: # source/blender/draw/engines/eevee/eevee_shaders.c # source/blender/draw/engines/eevee/shaders/common_utiltex_lib.glsl # source/blender/draw/intern/shaders/common_math_lib.glsl |
|
|
|


Master Commits
MiikaHweb | 2003-2021