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
2017-11-16Fix T51210: Draw Manager: Support for Metaball DrawingGermano
Differential Revision: D2914
2017-11-14Eevee: Initial Separable Subsurface Scattering implementation.Clément Foucault
How to use: - Enable subsurface scattering in the render options. - Add Subsurface BSDF to your shader. - Check "Screen Space Subsurface Scattering" in the material panel options. This initial implementation has a few limitations: - only supports gaussian SSS. - Does not support principled shader. - The radius parameters is baked down to a number of samples and then put into an UBO. This means the radius input socket cannot be used. You need to tweak the default vector directly. - The "texture blur" is considered as always set to 1
2017-11-01Eevee: Effects: Split each effect in it's own file.Clément Foucault
This also: - make sure to only compile the shader needed by the active effects. - same thing for the shading groups. - disable TAA if motion blur is active (avoid infinite refresh).
2017-10-30Draw Manager: re-enable edit-mesh text overlaymano-wii
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-09-30Object Mode : Add probes data outlines and selectabilityClément Foucault
This required some small changes to the data display shaders so that they match the way the object mode renders them. Strangely enough, I had to remove the normal attribute from the display code because it was being not bound as soon as I created another rendering call in object mode. The problem may be deeper but I did not have time for this so I derive the normal from the sphere pos.
2017-09-28Eevee: Probe Grid: Clear Grid buffers with world diffuse coefs.Clément Foucault
This make sure the values displayed by the "show data" sphere are initialized. Also this make the bounce lighting progress more apparent.
2017-09-25Eevee: Implement Temporal Anti Aliasing / Super SamplingClément Foucault
This adds TAA to eevee. The only thing important to note is that we need to keep the unjittered depth buffer so that the other engines are composited correctly.
2017-09-22Object Mode : Add Outline FXAAClément Foucault
Adds a FXAA for smoothing out the extracted outlines. The Post Process Anti Aliasing is only done on the Alpha channel of the outlines. Because of that we need to add bleed the outline color out of the silouhette so the AA'd alpha can blend the right color and not pick black when the alpha is smoothed out of the silhouette. Also because of the AA needs to have clear contrast to work with, I decided to ditch the "bluring" or the occluded outlines. The FXAA adds an overhead of 0.17ms but we gain back 0.22ms * 4 = 0.88ms by removing the blur. The FXAA Implementation is from Corey Richardson (cmr) (D2717). I had to modify it a bit to only filter the alpha channel.
2017-09-10Eevee: Shadows: Filtering improvement.Clément Foucault
- Replace poisson by concentric samples: Less variance. They are sorted by radius then by angle. - Separate filtering into 2 blur. First blur is 3x3 box blur. Second is user dependant. - Group fetches by group of 4.
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-08-19Eevee: Fix problem with GPU_texture_generate_mipmapClément Foucault
This function was called to recreate the lower mip level of the probe texture. But this is not it's usage and it introduced a stall. This patch add cubemap mipmap level regeneration in eevee_effects.c
2017-08-18Eevee: Rework GTAOClément Foucault
This includes big improvement: - The horizon search is decoupled from the BSDF evaluation. This means using multiple BSDF nodes have a much lower impact when enbaling AO. - The horizon search is optimized by splitting the search into 4 corners searching similar directions to help which GPU cache coherence. - The AO options are now uniforms and do not trigger shader recompilation (aka. freeze UI). - Include a quality slider similar to the SSR one. - Add a switch for disabling bounce light approximation. - Fix problem with Bent Normals when occlusion get very dark. - Add a denoise option to that takes the neighbors pixel values via glsl derivatives. This reduces noise but exhibit 2x2 blocky artifacts. The downside : Separating the horizon search uses more memory (~3MB for each samples on HD viewport). We could lower the bit depth to 4bit per horizon but it produce noticeable banding (might be fixed with some dithering).
2017-08-10Eevee: Add Screen Space Refraction.Clément Foucault
For the moment the only way to enable this is to: - enable Screen Space REFLECTIONS. - enable Screen Space Refraction in the SSR parameters. - enable Screen Space Refraction in the material tab.
2017-08-10Eevee: LUT generation.Clément Foucault
We generate a 3D lut to precompute the btdf intensity. I decided to use a 64*64*16 (N dot V, ior, roughness) because the btdf varies less with roughness than with IOR. We also remap the ior to better use the space in the LUT.
2017-07-27DRW: Revamp the performance debugging tool.Clément Foucault
Old performance debug was doing queries for every frame even if not debugging perf. Also, it did not record when a pass was draw multiple time, leading to incorect measurement. New module also allows to group the timers to limit infos displayed. Also fix the background CPU draw timer.
2017-07-24Eevee: SSR: Add mipmap filtering and bias to reduce noise.Clément Foucault
Also fix the roughness factors.
2017-07-24Eevee: SSR: Add simple raytracing.Clément Foucault
Still imprecise.
2017-07-24Eevee: SSR: Output ssr datas to buffers.Clément Foucault
Output in 2 buffers Normals, Specular Color and roughness. This way we can raytrace in a defered fashion and blend the exact contribution of the specular lobe on top of the opaque pass.
2017-07-03Eevee: Initial implementation of Volumetrics.Clément Foucault
2017-06-28Eevee: Refactor of shading code to be more modular.Clément Foucault
This will enable creating shading models more easily.
2017-06-26Eevee: Add Planar reflection blurring.Clément Foucault
This method is very cheap and inaccurate. This will fill the gap untill better model is supported.
2017-06-22Eevee: Ambient Occlusion: Initial implementation.Clément Foucault
Implement GTAO (Ground Truth Ambient Occlusion) which is a special case of Horizon Based Ambient Occlusion that is more physically accurate. Also add a bent normal option to sample indirect irradiance (diffuse lighting) with the least occluded direction.
2017-06-22Eevee: Minmax Depth Pyramid.Clément Foucault
This commit introduce the computation of a depth pyramid containing min and max depth values of the original depth buffer. This is useful for Clustered Light Culling but also for raytracing on the depth buffer (SSR). It's also usefull to have to fetch higher mips in order to improve texture cache usage. As of now, 1st mip (highest res) is half the resolution of the depth buffer, but everything is already done to be able to make a fullres copy of the depth buffer in the 1st mip instead of downsampling. Also, the texture used is RG_32F which is a too much but enough to cover the 24bits of the depth buffer. Reducing the texture size would make things quite faster.
2017-06-19Eevee: Add data display for planar reflection.Clément Foucault
Maybe not very useful but it's here for feature parity with the other probes. The fragment shader clipping is here because I'm lazy and don't want to creating a proper quad Batch.
2017-06-19Eevee: Add special shader for depth prespass.Clément Foucault
This way we can extend it to output more data (like motion vectors). Add a variation that uses clip distances.
2017-06-15Eevee: Probes: Add data display for cubemaps.Clément Foucault
2017-06-15Eevee: Group octahedron map functions into one file.Clément Foucault
2017-06-15Eevee: Add Grid debug display.Clément Foucault
2017-06-15Eevee: Add Irradiance Grid supportClément Foucault
Early implementation. Slow and still has quality 3 ways of storing irradiance: - Spherical Harmonics: Have problem with directionnal lighting. - HL2 diffuse cube: Very low resolution but smooth transitions. - Diffuse cube: High storage requirement. Also include some name change.
2017-06-13CMake: add missing includesCampbell Barton
2017-06-12Rename probe to light-probeCampbell Barton
Probe is a real general term, the new name is used often in docs online.
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-06-03Eevee: Cleanup. Group data functions into one file.Clément Foucault
2017-05-23Use custom shader for dot particlesLuca Rood
2017-05-23Rename/move particle shadersLuca Rood
2017-05-23Revert "Implement UBOs for particles"Luca Rood
This reverts commit 845732652fa7a3d3a053006d30a76ea39fdc3c47.
2017-05-23DwM: texture paint support & mask modeCampbell Barton
Uses workaround so material slots are used when neither blender-internal or cycles are enabled.
2017-05-22Implement UBOs for particlesLuca Rood
This fixes the issue where all particles were drawn with the colors and size of the last psys to be drawn.
2017-05-20Eevee: Move cube shadows to octahedron shadowmaps.Clément Foucault
We render linear distance to the light in a R32 texture and store it into an octahedron projection inside a 2D texture array. This render the sampling function much more simpler and without edge artifacts.
2017-05-20DwM: Object mode empty-image supportCampbell Barton
2017-05-19Implement particle drawing with draw managerLuca Rood
This still has a couple of issues: * Instancing is not working when multiple particle systems use the same primitive. Only the last particle system to be drawn with a particular primitive shows up. * Because of colors being passed as uniforms with static variables, the color of the collection of the last object to be evauluated is used for all particles being displayed. Also, note that while this is being drawn in the clay engine, this might be moved to the object mode later intead. Part of T51378
2017-05-12Implement hair drawing with Draw Manager in Clay engineLuca Rood
Part of T51378
2017-05-11Eevee: Add tonemapping using ocio.Clément Foucault
Actually it's done by the Draw Manager, so other engines can use it.
2017-05-10Eevee: Initial Depth Of Field commit.Clément Foucault
2017-05-07Eevee: Add Bloom post process.Clément Foucault
Based on Kino/Bloom v2 - Bloom filter for Unity MIT license.
2017-05-05Pass selection to weight paint vert overlay instead of colorsLuca Rood
2017-05-05Clean up weight/vertex painting codeLuca Rood
Now passing selection state instead of colors for the wire/face mask overlay thing. Also added masking indication on the faces in vertex paint.
2017-05-04Eevee: Draw background shader.Clément Foucault
Also fixes some remaining errors caused by some matrices not updated.
2017-05-04Eevee: Simple Camera Motion Blur.Clément Foucault
Disabled by default. Set ENABLE_EFFECT_MOTION_BLUR to 1 to enable. No fancy motion blur. Use depth and camera matrix to get the motion vectors. Then blur in this direction. Only available in camera view. Only Camera animation is supported, does not take into account the parents motion