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-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-04-22Cleanup: trailing spacesCampbell Barton
Applied to newly added files in 2.8
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: Optimize rectangle area light.Clément Foucault
Use the latest LTC optimisation techniques. That said, the final output is a bit more biased (and a bit further away from cycles).
2018-01-18Eevee: Implement new LTC algorithm for Sphere Lights.Clément Foucault
This is an improvement on the old spining quad method that was giving artifacts when the reflection ray was nearly aligned with the sphere center. This might be a bit heavier but it's worth it.
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-08-11Eevee: Fix NaNClément Foucault
This was surely cause by float overflow. Limit roughness in this case to limit the brdf intensity. Also compute VH faster. Add a sanitizer to the SSR pass for investigating where NANs come from. Play with the roughness until you see where the black pixel is / comes from.
2017-08-10Eevee: Small code codestyle and fixes.Clément Foucault
Rename get_specular_dominant_dir to get_specular_reflection_dominant_dir. Add Zero length N check everywhere.
2017-06-29Eevee: Remove ShadingData struct.Clément Foucault
That was a bad idea after all.
2017-06-28Eevee: Refactor of shading code to be more modular.Clément Foucault
This will enable creating shading models more easily.
2017-06-04Eevee: Material code refactor.Clément Foucault
Separate material handling inside another file. Make use of enums to identify shader variations. Group all 64*64 LUTs into one array texture. Only update world probe if world changes.
2017-05-30Eevee: Fix ggx sun light.Clément Foucault
2017-05-29Eevee: Remove non-ltc area light code + optimisation.Clément Foucault
Reduce size ShadingData struct leads to some improvement even with more computation.
2017-05-18Eevee: Fix fresnel factor to match Unreal Engine specular input.Clément Foucault
2017-05-15Eevee: fix some glsl for low quality lamps.Clément Foucault
2017-04-26Eevee: World default shader.Clément Foucault
- Use uniform color world for the world probe. - Refactored the Fresnel expression to be better with Area Lights. - Squared the roughness for default materials.
2017-04-18Eevee: Introduction of world preconvolved envmap.Clément Foucault
For now only compute GGX convolution. The GGX LUT used for the split sum approximation (UE4) is merged with the LTX mag LUT that uses the same parameters (theta and roughness)
2017-04-03Eevee: LTC area lightsClément Foucault
Using Linear Transform Cosines to compute area lighting. This is far more accurate than other techniques but also slower. We use rotating quad to mimic sphere area light. For a better approximation, we use a rotating octogon.
2017-03-31Eevee: Codestyle, optimisation and a few fixesClément Foucault
Something is very wrong with the energy factor. For now I tweaked them by hand to fit cycles.
2017-03-30Eevee: Diffuse Light (2/2) and GGX low quality lightsClément Foucault
GGX is missing sun lamps area.
2017-03-28Eevee: Diffuse Lights (1 / 2)Clément Foucault
I added srgb tonemapping for previewing purpose. Also since the color buffer is still not HDR, there is ugly artifacts (fixed in part2)