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
2019-01-26Cleanup: draw manager headersCampbell Barton
2019-01-24Cleanup: add missing braces to draw managerCampbell Barton
2019-01-23Cleanup: use eGPU prefix for GPU enum typesCampbell Barton
2019-01-23Cleanup: add BEGIN/END to GPL headersCampbell Barton
2019-01-15Cleanup: rename BASE_FROMDUPLI -> BASE_FROM_DUPLICampbell Barton
Matches `BASE_FROM_SET`.
2019-01-06Cleanup: add trailing commas to structsCampbell Barton
Needed for clang formatting to workaround bug/limit, see: T53211
2018-11-15Eevee: Add Light Threshold valueClément Foucault
This is an important change. Starting from now, all lights have a finite influence radius (similar to the old sphere option for BI). In order to avoid costly setup time, this distance is first computed automatically based on a light threshold. The distance is computed at the light origin and using the inverse square falloff. The setting can be found inside the render settings panel > shadow tab. This light threshold does not take the light shape into account an may not suit every case. That's why we provide a per lamp override where you can just set the cutt off distance (Light Properties Panel > Light > Custom Distance). The influence distance is also used as shadow far clip distance. This influence distance does not concerns sun lights that still have a far clip distance. --- This change is important because it makes it possible to cull lights an improve performance drastically in the future.
2018-11-15Eevee: Cleanup: Fix wrong sun area light power calculationClément Foucault
2018-11-15Eevee: Make sun power match cycles better.Clément Foucault
I made an empirical test with a 100% diffuse sphere and manually tweak the lighting power of a sun lamp trying to fit cycles and eevee the best I can. Then I plotted the result and found a rough fit to the equation and that seems to work pretty well.
2018-11-12Eevee: Fix ESM not working after a certain distanceClément Foucault
This was caused by overflow caused by the background and precision during filtering.
2018-11-12Eevee: Fix lamps shadows not updating correctlyClément Foucault
This was visible if the lamps was out of frustum.
2018-11-08Eevee: Add partial support for the Light Path NodeClément Foucault
This makes it possible to tweak indirect lighting in the shader. Only a subset of the outputs is supported and the ray depth has not exactly the same meaning: Is Camera : Supported. Is Shadow : Supported. Is Diffuse : Supported. Is Glossy : Supported. Is Singular : Not supported. Same as Is Glossy. Is Reflection : Not supported. Same as Is Glossy. Is Transmission : Not supported. Same as Is Glossy. Ray Length : Not supported. Defaults to 1.0. Ray Depth : Indicate the current bounce when baking the light cache. Diffuse Depth : Same as Ray Depth but only when baking diffuse light. Glossy Depth : Same as Ray Depth but only when baking specular light. Transparent Depth : Not supported. Defaults to 0. Transmission Depth : Not supported. Same as Glossy Depth. Caveat: Is Glossy does not work with Screen Space Reflections but does work with reflection planes (when used with SSR or not). We have to render the world twice for that to work.
2018-10-31Eevee: Fix compilation issue cause by cleanupClément Foucault
2018-10-31Eevee: Cleanup: Remove TODOs about MSMClément Foucault
Soft shadows are supported in another manner, Multiple Shadow Maps are not needed anymore.
2018-10-29Eevee: Fix Sun soft shadows not starting at first sampleClément Foucault
2018-10-29Cleanup: styleCampbell Barton
2018-10-28Eevee: Implement jittered soft shadowmapClément Foucault
This new option is located in the shadows options in the render settings. This approach is simple and just randomize the shadow map position (not the lamp itself) and just let the temporal supersampling do the average of all the shadowing. The downside is that is needs quite a large number of samples to give smooth results and individual sample position can remain visible. Enabling this option will make the viewport refresh all shadow maps every redraw so it has a serious performance impact. This approach is not physicaly based at all and will not match cycles. ---- The sampling for point lamps (spheres) is not
2018-10-09Eevee: Lights: Bump the minimum area light sizeClément Foucault
This is to avoid visible artifacts with default lamps intensity.
2018-09-19Merge branch 'master' into blender2.8Brecht Van Lommel
2018-09-10Eevee: Fix assert when using transparent shadowsClément Foucault
Was missing some UBO bindings.
2018-07-18GWN: Port to GPU module: Replace GWN prefix by GPUClément Foucault
2018-07-16Eevee: Add debug visual for Cascaded Shadow MapsClément Foucault
2018-07-16Eevee: Fix Cascaded Shadow Maps glitchesClément Foucault
There was an issue that caused the cascaded shadow map to appear glitchy when the lamp was not at the origin.
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-08Cleanup: rename 'ct' to 'len' for size varsCampbell Barton
2018-07-06UI/Python: rename Lamps to Lights, to follow more standard terminology.Brecht Van Lommel
Internally it's still mostly named lamps, though some modules like Cycles were already calling them lights.
2018-07-03Cleanup: typosCampbell Barton
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-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-20DRW: Rename some DRW_STATE_* for more consistency.Clément Foucault
2018-05-17Move EEVEE properties into sceneDalai Felinto
We handle doversion for the scene properties, but not for the view layer overrides. Overrides will be implemented in a different way via dynamic overrides. For now this data is completely lost.
2018-05-11Cleanup: use 'uint' in draw managerCampbell Barton
2018-05-053D Viewport: move overlay settings from collections to 3D viewport.Brecht Van Lommel
For some we may add per object overrides, but for most we plan to keep them strictly per viewport settings. Display settings from the mesh still need to be moved here, only collections were done to remove that code.
2018-05-04Eevee: Shadows: Don't allocate more CSM layer than we need.Clément Foucault
2018-05-04Eevee: Fix Cascaded shadow map calculation.Clément Foucault
The first one was done correctly but the second was wrong due to the matrix being overwritten.
2018-05-04Eevee: Shadows: Compute Octahedron size from CubeMap size.Clément Foucault
This was the otherway around before. But since we can have a different size* for cube texture now, we can compute the correct-ish texture size. This will give us on average the same texture appearance when we will add support for real cubemap shadows.
2018-05-04Eevee: Cap Shadow resolution to 4096px^2.Clément Foucault
As much as I want to give freedom to the user, 1.5G of vram for a single shadow is a big of a stability issue. So limiting to 4096 for now, we may remove this limit in the future.
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-03Eevee: Shadows: Perf: Do not update shadows that are not inside the view.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-04-30DRW: Remove DRWTextureFormat in favor or GPUTextureFormat.Clément Foucault
Because: - Less redundancy. - Better suffixes. Also a few modification to GPU_texture_create_* to simplify the API: - make the format explicit to the texture creation process. - remove the component count as it's specified in the GPUTextureFormat.
2018-04-24Fix EEVEE lamps with shadows by default but wrong UIDalai Felinto
Reported on T54788: Actually this was what BI was doing as well. But anyways fixed for good now. That includes a subversion bump.
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-04-08Eevee: Reduce loading time.Clément Foucault
Only compile the needed shadow shaders to reduce the startup time. Theses shaders is taking forever to compile on intel (~5s each).
2018-03-25DRW: Rename DRW_shgroup_uniform_buffer into DRW_shgroup_uniform_texture_refClément Foucault
This is in order to not mix it with the incomming buffer textures.
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-08Eevee: Save and reset matrixstate for probe rendering.Clément Foucault
2018-03-06Eevee: Fix Cascaded shadowmap setup.Clément Foucault
It was getting the wrong matrice because of the point light override.