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
2020-07-30EEVEE: GLSL refactor/cleanupClément Foucault
- add the use of DRWShaderLibrary to EEVEE's glsl codebase to reduce code complexity and duplication. - split bsdf_common_lib.glsl into multiple sub library which are now shared with other engines. - the surface shader code is now more organised and have its own files. - change default world to use a material nodetree and make lookdev shader more clear. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D8306
2020-06-02EEVEE: Refactor of eevee_material.cClément Foucault
These are the modifications: -With DRW modification we reduce the number of passes we need to populate. -Rename passes for consistent naming. -Reduce complexity in code compilation -Cleanup how renderpass accumulation passes are setup, using pass instances. -Make sculpt mode compatible with shadows -Make hair passes compatible with SSS -Error shader and lookdev materials now use standalone materials. -Support default shader (world and material) using a default nodetree internally. -Change BLEND_CLIP to be emulated by gpu nodetree. Making less shader variations. -Use BLI_memblock for cache memory allocation. -Renderpasses are handled by switching a UBO ref bind. One major hack in this patch is the use of modified pointer as ghash keys. This rely on the assumption that the keys will never overlap because the number of options per key will never be bigger than the pointed struct. The use of one single nodetree to support default material is also a bit hacky since it won't support concurent usage of this nodetree. (see EEVEE_shader_default_surface_nodetree) Another change is that objects with shader errors now appear solid magenta instead of shaded magenta. This is only because of code reuse purpose but could be changed if really needed. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D7642
2020-01-20Fix T59747 EEVEE: Bug on EnvironmentTextureClément Foucault
2019-11-24Cleanup: doxygen commentsCampbell Barton
Also correct some outdated symbol references, add missing 'name' commands.
2019-09-07Cleanup: use post increment/decrementCampbell Barton
When the result isn't used, prefer post increment/decrement (already used nearly everywhere in Blender).
2019-09-06EEVEE: Fix Ambient Occlusion on backfacesClément Foucault
N is already the Facing normal! Dummy!
2019-09-05Eevee: Shadow map refactorClément Foucault
Reviewed By: brecht Differential Revision: http://developer.blender.org/D5659
2019-07-09Fix T65761 Eevee: SSRefraction not working on first sampleClément Foucault
There is no reason to disable the refraction on the first sample like SSR does. This was caussing issues when rendering.
2019-07-08Fix T61129 Eevee: alpha texture shadow bugClément Foucault
Seems like the AMD pro driver does not consider dead code the same as other glsl compiler.
2019-06-18Fix T65631 Eevee: Translucent shader broken in Eevee when AO is enabledClément Foucault
2019-06-05Fix T65298 Eevee: Principled BSDF doesn't use specular with metalsClément Foucault
This does add some more register pressure as it passes a new vec3 down the shading function. But for now we care more about accuracy than efficiency.
2019-05-04Cleanup: Eevee: Remove Flat normal shader variationClément Foucault
Was use by sculpt mode but that's not used anymore.
2019-05-01Cleanup: comments (long lines) in drawCampbell Barton
2019-04-30Fix T63393 Eevee: Specular Shader's Clear Coat does not functionClément Foucault
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-03-29Fix T61129 Eevee: alpha texture shadow bugClément Foucault
This was due to some shading resources not being bound for the shadow shader. This commit completely remove the shading part when in a shadow shader. Thus making it a bit more lightweight and removing the needed sources.
2019-03-11Eevee: Update LTC codeClément Foucault
Main change are: - the fresnel LUT is separated from the main GGX LUT. - LUTs use sqrt(1.0 - NV) as roughness remapping. Improving precision and removes needs for acos(). - LTC LUT is normalized by matrix middle component. Improving precision.
2019-02-27Cleanup: rename lamp -> lightCampbell Barton
2019-01-24Cleanup: add missing braces to draw managerCampbell Barton
2018-11-15Eevee: Optimisation: Bypass light power calculation when not neededClément Foucault
This makes quite a big improvement in my case 1.8ms vs 2.3ms for a single area light. This will make even more difference with light attenuation.
2018-11-08Eevee: Fix refraction materialsClément Foucault
Fix refraction depth not working without ScreenSpace Refraction. Fix ScreenSpace Refraction masking reflections.
2018-10-20Fix Eevee Reflection CubeMap and Irradiance Volume on some Intel gpusmano-wii
When you pass a struct as a parameter to a function, the qualifier "layout(column_major)" is lost.
2018-09-19Merge branch 'master' into blender2.8Brecht Van Lommel
2018-08-08Eevee: Fix Clearcoat intensityClément Foucault
2018-08-08Eevee: Use "constant folding" for the principle shaderClément Foucault
This is more like a static optimisation when some parameters are set to 1.0 or 0.0. In theses case we use a more optimized version of the node. This also revisit the transmission parameter behaviour to make it closer to cycles.
2018-07-10Eevee: LightCache: Initial ImplementationClément Foucault
This separate probe rendering from viewport rendering, making possible to run the baking in another thread (non blocking and faster). The baked lighting is saved in the blend file. Nothing needs to be recomputed on load. There is a few missing bits / bugs: - Cache cannot be saved to disk as a separate file, it is saved in the DNA for now making file larger and memory usage higher. - Auto update only cubemaps does update the grids (bug). - Probes cannot be updated individually (considered as dynamic). - Light Cache cannot be (re)generated during render.
2018-06-17Cleanup: codestyleCampbell Barton
2018-06-16Merge branch 'master' into blender2.8Brecht Van Lommel
The Eevee AO node supports the new Normal socket, but ignores Distance, Samples, Inside and Only Local settings.
2018-06-09Eevee: Improve compilation time (reduce branching).Clément Foucault
This patch reduce the branching in the lamp loop, improving compilation time noticeably (2372ms to 1785ms for the default shader). This should not change the appearance of the shader. Performance impact is negligeable.
2018-06-02Eevee: Hair: Make SSR works with hairs.Clément Foucault
2018-06-02Eevee: Add support for hair random property.Clément Foucault
Do note that it does not match cycles implementation. Also we could precompute the hash per strand before rendering but that would suggest it's not per engine specific. If we make the random value internal to blender then it won't be a matter because other renderers will have access to the same value.
2018-06-02Eevee: CodeStyle: Fix naming and confusion about the hairs vectors.Clément Foucault
2018-05-30Eevee: Add support for new Hair geometry system.Clément Foucault
This now can shade actual poly strips that mimics cylinders. This makes hair coverage exact compared to the line method and result in smoother fading hair. This does make the sampling a bit more exact but needs more samples to converge properly.
2018-05-14Eevee: Hair: Disable SSR for hairs.Clément Foucault
SSR does not work with hair strands. Basically, the rays are too much random to ever converge properly and just result in a soup of self inter reflections. So forcing it to not produce any SSR. Could potentially save some bandwidth by not rendering hair to the SSR buffers.
2018-05-14Eevee: Hair: Fix normal distribution of previous commit.Clément Foucault
Now it starts to look correct!
2018-05-13Eevee: Hair: Remove old hack and replace by new hack.Clément Foucault
This is a hack to properly shade wire hairs. Use stochastic sampling and let TAA solve the noise. At least it's way more correct than the previous hack.
2018-05-02Eevee: Add Lamp Specular multiplier.Clément Foucault
It's usefull in some scenario to tweak the specular intensity of a light without modifying the diffuse contribution. Cycles allows it via lamps material which we currently not support in Eevee. This is a good workaround for now.
2018-01-22Eevee: Put all constant uniforms in a global UBO.Clément Foucault
This is an optimization / cleanup commit. The use of a global ubo remove lots of uniform lookups and only transfert data when needed. Lots of renaming for more consistent codestyle.
2018-01-16Eevee: AO: Removes samples and denoise options.Clément Foucault
This comes with a lot of code simplification that leads to a small performance improvement.
2018-01-16Eevee: Add macro to sample noise in utilTex.Clément Foucault
Avoid future coding error.
2018-01-16Eevee: Fix SSRefraction noise.Clément Foucault
2018-01-16Eevee: SSR: Remove ray count and use integer texture for hit coord.Clément Foucault
Using GL_RG16I texture for the hit coordinates increase tremendously the precision of the hit. The sign of the integer is used to 2 flags (has_hit and is_planar). We do not store the depth and retrieve it from the depth buffer (increasing bandwith by +8bit/px). The PDF is stored into another GL_R16F texture. We remove the raycount for simplicity and to reduce compilation time (less branching in refraction shader).
2018-01-16Eevee: Fix noise correlation in the blue noise update.Clément Foucault
2018-01-04Eevee: Fix AO applied twice on glossy shader when using OGL renderClément Foucault
Seems to be a compiler bug. This is really strange. I just rephrased the whole thing and it appears to work.
2017-11-24Eevee: Refactor of lit_surface_frag.glslClément Foucault
This cleanup removes the need of gigantic code duplication for each closure. This also make some preformance improvement since it removes some branches and duplicated loops. It also fix some mismatch (between cycles and eevee) with the principled shader.
2017-11-22Eevee : SSS : Add Translucency support.Clément Foucault
This adds the possibility to simulate things like red ears with strong backlight or material with high scattering distances. To enable it you need to turn on the "Subsurface Translucency" option in the "Options" tab of the Material Panel (and of course to have "regular" SSS enabled in both render settings and material options). Since the effect is adding another overhead I prefer to make it optional. But this is open to discussion. Be aware that the effect only works for direct lights (so no indirect/world lighting) that have shadowmaps, and is affected by the "softness" of the shadowmap and resolution. Technical notes: This is inspired by http://www.iryoku.com/translucency/ but goes a bit beyond that. We do not use a sum of gaussian to apply in regards to the object thickness but we precompute a 1D kernel texture. This texture stores the light transmited to a point at the back of an infinite slab of material of variying thickness. We make the assumption that the slab is perpendicular to the light so that no fresnel or diffusion term is taken into account. The light is considered constant. If the setup is similar to the one assume during the profile baking, the realtime render matches cycles reference. Due to these assumptions the computed transmitted light is in most cases too bright for curvy objects. Finally we jitter the shadow map sample per pixel so we can simulate dispersion inside the medium. Radius of the dispersion is in world space and derived by from the "soft" shadowmap parameter. Idea for this come from this presentation http://www.iryoku.com/stare-into-the-future (slide 164).
2017-10-07Eevee: Shadows: Add Contact ShadowsClément Foucault
This add the possibility to add screen space raytraced shadows to fix light leaking cause by shadows maps. Theses inherit of the same artifacts as other screenspace methods.
2017-10-07Eevee: Modify the raycast function to be more flexible.Clément Foucault
Make quality a parameter, and modify the ray end to be premultiplied so that the raytrace is done on a range. This is in order to add contact shadows.
2017-10-02Eevee : SSR : Make sure to not apply Specular Occlusion to SSR.Clément Foucault
This makes the metals shine more. Previous behaviour was not correct.
2017-08-18Eevee: Fix some problem with Glass & Diffuse BSDF with SSRClément Foucault
Diffuse was not outputing the right normal. (this is not a problem with SSR actually) Glass did not have proper ssr_id and was receiving environment lighting twice. Also it did not have proper fresnel on lamps.