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
2018-08-02Eevee: Fix missing UBO binds.Clément Foucault
Some of them are unecessary and should be removed from the shader instead. But for now we need a quick fix for the crashes happening on some platforms. See T55475.
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-05-24Cycles/Eevee: Implement disk and ellipse shapes for area lampsLukas Stockner
The implementation is pretty straightforward. In Cycles, sampling the shapes is currently done w.r.t. area instead of solid angle. There is a paper on solid angle sampling for disks [1], but the described algorithm is based on simply sampling the enclosing square and rejecting samples outside of the disk, which is not exactly great for Cycles' RNG (we'd need to setup a LCG for the repeated sampling) and for GPU divergence. Even worse, the algorithm is only defined for disks. For ellipses, the basic idea still works, but a way to analytically calculate the solid angle is required. This is technically possible [2], but the calculation is extremely complex and still requires a lookup table for the Heuman Lambda function. Therefore, I've decided to not implement that for now, we could still look into it later on. In Eevee, the code uses the existing ltc_evaluate_disk to implement the lighting calculations. [1]: "Solid Angle Sampling of Disk and Cylinder Lights" [2]: "Analytical solution for the solid angle subtended at any point by an ellipse via a point source radiation vector potential" Reviewers: sergey, brecht, fclem Differential Revision: https://developer.blender.org/D3171
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-04Eevee: Shadows: Separate Cube and Cascade shadow maps into 2 texture array.Clément Foucault
This mean we can now have different shadow resolutions for both. However each shadow type keep the same size accross all lamps because of future "real" Cube Shadowmaps limitation and to save texture sampler slots. That said the cascade shadow resolution could (in the future) still be changed to be adjustable per sun lamp.
2018-05-04Eevee: Simplify shadow test code with macros.Clément Foucault
2018-05-01Eevee: Contact Shadows: Add slope based bias & fix brightening.Clément Foucault
2018-04-24EEVEE: Fix contact shadows on flat objects/backfaces.Clément Foucault
2018-04-20Eevee: Contact Shadows: Fix blue noise correlation.Clément Foucault
2018-01-19Eevee: Fix translucency light powers.Clément Foucault
2018-01-18Eevee: Implement Sun area lighting and few fixes/opti.Clément Foucault
Sun is treated as a unit distant disk like in cycles. Opti: Since computing the diffuse contribution via LTC is the same as not using the Linear Transformation, we can bypass most of the LTC code. This replaces the sphere analytical diffuse computation as it gives a more pleasing result very close to cycles' AND cheaper. Lights power have been retweaked to be coherent with cycles (except sun lamp with large radius where cycles has a non-uniform light distribution).
2018-01-18Eevee: Use inversesqrt() when possible.Clément Foucault
2018-01-16Eevee: Add macro to sample noise in utilTex.Clément Foucault
Avoid future coding error.
2018-01-16Eevee: Fix noise correlation in the blue noise update.Clément Foucault
2018-01-15Fix unreported: Eevee Principled Shader: Crash because Intel does not like ↵Germano
dead code The reason for the crash is still a bit confusing, but on Windows with Intel HD Graphics 4000 it always happens when you enable `Use Nodes` or when you try to connect the Pricipled Shader node to the output without the `Subsurface Scattering` and `Subsurface Translucency` options enabled.
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 : Fix error with volumetrics.Clément Foucault
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-27Eevee: Overhaul the volumetric system.Clément Foucault
The system now uses several 3D textures in order to decouple every steps of the volumetric rendering. See https://www.ea.com/frostbite/news/physically-based-unified-volumetric-rendering-in-frostbite for more details. On the technical side, instead of using a compute shader to populate the 3D textures we use layered rendering with a geometry shader to render 1 fullscreen triangle per 3D texture slice.
2017-10-12Eevee: Contact Shadows: Fix remaining artifacts.Clément Foucault
There was noise correlation between the rotation random number and the radius random number used in the contact shadow algo. Hacking a new distribution from the old distribution (may not be ideal because it's discrepency may be high) Also distribute samples evenly on the shadow disc. (add sqrt) Fix the "bias floating shadows", was cause by the discarding of backfacing geom which makes no sense in this case.
2017-10-08Eevee: Fix bad defines for volumetric shadowingClément Foucault
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-09-12Eevee / DRW : CodestyleClément Foucault
2017-09-11Eevee: Fix performance issue on intel.Clément Foucault
I did not checked if it makes a diff on other GPU. This might be change to be intel only.
2017-09-11Eevee: Fix shadow bleeding after farclip for cubemaps.Clément Foucault
NOTE: We should not check for radial distance. But this is faster.
2017-09-10Eevee: Shadow: Fix Incorrect shadowing after sun lamp far clip plane.Clément Foucault
Reject cascade sample if not in shadowmap volume.
2017-09-10Eevee: Add Cascaded Shadow Map options.Clément Foucault
2017-09-10Eevee: Add Cascaded Shadow Map support with filtering.Clément Foucault
This brings some data structure changes. Shared shadow data are stored in ShadowData (in glsl) (aka EEVEE_Shadow in C). This structure contains the array indices of the first shadow element of this shadow "object". It also contains how many shadow to evaluate (to be used for Multiple shadow maps). The filtering is noisy and needs improvement.
2017-09-10Eevee: Add Variance Shadow MappingClément Foucault
This is an alternative to ESM. It does not suffer the same bleeding artifacts.
2017-09-10Eevee: Refactor Shadow SystemClément Foucault
- Use only one 2d texture array to store all shadowmaps. - Allow to change shadow maps resolution. - Do not output radial distance when rendering shadowmaps. This will allow fast rendering of shadowmaps when we will drop the use of geometry shaders.
2017-07-24Eevee: SSR: Encode Normal in buffer and add cubemap fallback.Clément Foucault
Normals can point away from the camera so we cannot just put XY in the buffer and reconstruct Z later as we would not know the sign of Z.
2017-07-05Eevee: Volumetrics: Add settings.Clément Foucault
2017-07-05Eevee: Volumetrics: Add support for Position Coordinates.Clément Foucault
This enables texturing of the noise via procedural or baked textures. Note that it gets quickly really heavy.
2017-06-29Fix hair shading after Eevee shader refactorLuca Rood
2017-06-29Eevee: Remove ShadingData struct.Clément Foucault
That was a bad idea after all.
2017-06-28Eevee: Fix Shadow Map bug: fix T51924Clément Foucault
2017-06-28Eevee: Refactor of shading code to be more modular.Clément Foucault
This will enable creating shading models more easily.