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-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-07-05Cleanup: flag checksCampbell Barton
2018-07-04Eevee: Fix incorrect padding in octahedral mappingClément Foucault
This fixes T54439
2018-06-29Merge branch 'master' into blender2.8Campbell Barton
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-13Merge branch 'master' into blender2.8Brecht Van Lommel
This includes making Eevee match Cycles behavior of inserting an emission node when linking colors to closures.
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-05Eevee: Improve load time.Clément Foucault
Only generate shadow store shaders on demand and create a simpler shader for small blur radius.
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: Hair: Fix hair strip view Position.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-30GPUMaterial: Add support for hair vertex color, uvs and orco.Clément Foucault
2018-05-29EEVEE: LookDev blurred backgroundJeroen Bakker
2018-05-29EEVEE: LookDev reversed the background fadeoutJeroen Bakker
2018-05-29EEVEE: LookDev fadeout to the world horizon colorJeroen Bakker
2018-05-29EEVEE: LookDev fade out background optionJeroen Bakker
2018-05-28EEvEE: LookDevJeroen Bakker
2018-05-26Cleanup: whitespace, long lines, duplicate includeCampbell Barton
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-16Shader Node Editor: Add Closure to RGB convertion node.Clément Foucault
Patch D3205 by Kanzaki Wataru Only implemented in Eevee for now. Collapse a closure to RGBA so we can do NPR stuff on the resulting color. Use an emission shader to convert the color back to a closure. Doing this will break PBR and will kill any SSR and SSS effects the shader the shader rely on. That said screen space refraction and ambient occlusion are supported due to the way they are implemented.
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-13Eevee: Fix Dof shader compilation.Clément Foucault
2018-05-13Eevee: Depht Of Field: Merge Scatter passes together.Clément Foucault
This means only one texture to draw to and only one sprite per pixel. The texture is twice as large and near and far planes are side by side. The sprite choose the biggest coc to expand to and is redirected to the area (layer) it belongs to. The fragment shader discard every pixel that does not belong to the correct layer.
2018-05-13Eevee: Depth of field: Code style fixes.Clément Foucault
2018-05-13Eevee: Depth of field: Smooth out bokeh shape.Clément Foucault
Due to the scatter operation being done at half resolution, undersampling is visible at bokeh shape edges (because of the hard cut). This commit adds a smoothing function to minimize the problem. Also optimize the bokeh shape parametrization by precomputing a lot of constants.
2018-05-13Eevee: Depth of field: Change final blending.Clément Foucault
This new blending allows background to fill the gaps left by forground objects. However this has a drawback, background objects that should be partially occluded in this case can be seen through the blurred objects. This does not fix the problem of blurred foreground over sharp background. Also cleanup code to be simpler and remove unused geometry shader.
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-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-05-01Eevee: Contact Shadows: Add slope based bias & fix brightening.Clément Foucault
2018-05-01Eevee: Fix raytracing.Clément Foucault
- Fix the confusing naming in raycast() - Fix raytrace acne caused by the rays not being correctly centered on the texel.
2018-04-30Eevee: Use GPU_RG16 for velocity pass instead of GPU_RG32F.Clément Foucault
2018-04-30Eevee: TAA: Use safe color when outputing the final color.Clément Foucault
This prevent any NANs pixel to spear accross the history. This does not mean we should allow NANs at all!
2018-04-24EEVEE: Fix TAA spreading black disease.Clément Foucault
The SSR has a bug that creates NAN pixels values. Reported here T54795.
2018-04-24EEVEE: Fix contact shadows on flat objects/backfaces.Clément Foucault
2018-04-22Cleanup: trailing spacesCampbell Barton
Applied to newly added files in 2.8
2018-04-20Eevee: TAA Reprojection: Initial implementationClément Foucault
This "improve" the viewport experience by reducing the noise from random sampling effects (SSAO, Contact Shadows, SSR) when moving the viewport or during playback. This does not do Anti Aliasing because this would conflict with the outline pass. We could enable AA jittering in "only render" mode though. There are many things to improve but this is a solid basis to build upon.
2018-04-20Eevee: Add Velocity pass.Clément Foucault
This pass create a velocity buffer which is basically a 2D motion vector texture. This is not yet used for rendering but will be usefull for motion blur and temporal reprojection.
2018-04-20Eevee: Contact Shadows: Fix blue noise correlation.Clément Foucault
2018-04-17Eevee: Use textureGather for minmaxZbuffer downsampling.Clément Foucault
I haven't noticed any performance improvement but it could be more important for other hardware. At least it's not slower!
2018-04-15Eevee: Cleanup remaining shadow geometry references.Clément Foucault
2018-04-15Eevee: Shadows: Transition to individual face rendering.Clément Foucault
This gets rid of the need of a geom shader and instancing. Both are pretty slow compared to the new method. The only moment the old method could be better is when scene is filled with lots of objects and most of the objects in the shadow map appear on every layer. But even then, we could optimize the culling and minimize the overhead.
2018-03-27Eevee Shaders: Fix "No matching overloaded function"Germano
invert -> inverse
2018-03-25GPUFramebuffer: Refactor (Part 2)Clément Foucault
This refactor modernise the use of framebuffers. It also touches a lot of files so breaking down changes we have: - GPUTexture: Allow textures to be attached to more than one GPUFrameBuffer. This allows to create and configure more FBO without the need to attach and detach texture at drawing time. - GPUFrameBuffer: The wrapper starts to mimic opengl a bit closer. This allows to configure the framebuffer inside a context other than the one that will be rendering the framebuffer. We do the actual configuration when binding the FBO. We also Keep track of config validity and save drawbuffers state in the FBO. We remove the different bind/unbind functions. These make little sense now that we have separate contexts. - DRWFrameBuffer: We replace DRW_framebuffer functions by GPU_framebuffer ones to avoid another layer of abstraction. We move the DRW convenience functions to GPUFramebuffer instead and even add new ones. The MACRO GPU_framebuffer_ensure_config is pretty much all you need to create and config a GPUFramebuffer. - DRWTexture: Due to the removal of DRWFrameBuffer, we needed to create functions to create textures for thoses framebuffers. Pool textures are now using default texture parameters for the texture type asked. - DRWManager: Make sure no framebuffer object is bound when doing cache filling. - GPUViewport: Add new color_only_fb and depth_only_fb along with FB API usage update. This let draw engines render to color/depth only target and without the need to attach/detach textures. - WM_window: Assert when a framebuffer is bound when changing context. This balance the fact we are not track ogl context inside GPUFramebuffer. - Eevee, Clay, Mode engines: Update to new API. This comes with a lot of code simplification. This also come with some cleanups in some engine codes.
2018-03-12Eevee: SSS: Fix compilation error.Clément Foucault