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-29Cleanup: replace attrib w/ attrCampbell Barton
Also rename GPUVertexAttribs to GPUVertAttrLayers, avoids confusion with GPUVertAttr which isn't closely related.
2019-01-24Cleanup: add missing braces to draw managerCampbell Barton
2019-01-17Physically based defaults for Eevee Bloom and ShutterClément Foucault
Some of Eevee's Bloom defaults are not very good for physically based rendering. This patches addresses this issue. This picture shows one of the problems with current default. Bloom looks very foggy: {F6280495} Even worse, light emitters much dimmer than the Sun can make everything equally hazy if Clamp is set to 1.0 and intensity to 0.8 (current default). Artists often forget to adjust Clamp value and do not know what value to use for realistic intensity. Also, currently both Clamp and Intensity do not have good UI ranges. This is why often Eevee renders end up very hazy and bloom often does not look right. Bloom effect plays important role to help to distinguish between bright and relatively dim light sources. With current defaults this is broken because Clamp set to 1.0. Also, it cannot be disabled if set to 0 like expected. This patch fixes this and sets it to 0 by default. If users need to clamp, they can do so easily with UI range up to 1000. This range is good enough for most cases and provides enough precision to control lower values, and the highest value helps to limit bloom from the Sun if necessary and will leave untouched most other light emitters. If needed, much higher values for Clamp can be entered manually up to 100000. 10000 is still affects the Sun, but up to 100000 highest limit allows to clamp anything that is much brighter than the Sun if user needs to limit bloom in such cases (for example, bright explosion in the sky or anything else very bright). I propose new default for bloom Intensity - 0.05 and UI range to suggests realistic values. Bloom Intensity > 0.1 is not realistic for clean lens but the user can enter manually much larger values if needed. For comparison, here is a my own photo with and without bloom caused by the Sun (on second photo the Sun was occluded with an object). {F6280500} {F6280492} In real life bloom is much more subtle and does not look hazy. If Clamp is disabled, then out of 0.1, 0.05 and 0.025 values I have tried, 0.05 looks most similar to the photo. Here is test render with and without bloom with the Sun in similar position like on the photo: {F6280496} {F6280494} Using color probe 27x27 I compared lightness below the horizon under the Sun. In rendered by Eevee images lightness difference was 17. In case of the photos lightness difference in similar place was 11. I then compared leftmost spot (also below the horizon) and lightness difference was approximately 2 between two photos and 1 between rendered images. In other words, with these settings bloom effect is not too strong and is not too weak. Visually it may seem like decreasing bloom intensity may increase photorealism, but then bloom effect would be too localized even for the Sun. Besides this single test, I tested in many other scenes as well, with and without the Sun, with different HDRIs, and as far as I can tell 0.05 intensity turned out to be good default - it produces bloom strong enough to be noticeable and not too hazy. In Cycles shutter default value is 0.50, so for consistency set to 0.5 by default in Eevee too. Besides, 0.5 is typical standard for real cameras, and values higher than 0.5 usually are needed only if very strong motion blur is desired. Here is summary of all changes: Bloom Intensity: 0.8 > 0.05 Bloom Intensity UI range: 0-10 > 0-0.1 Bloom Clamp: 1.0 > 0.0 (disabled by default) Bloom Clamp manual range: 0-1000 > 0-100000 Bloom Clamp UI range: 0-10 > 0-1000 Shutter: 1.0 > 0.5 This patch is related to the discussion in this thread, there are more examples of what bloom will look like with 0.05 intensity by me and others: https://devtalk.blender.org/t/eevee-needs-to-have-physically-based-defaults/4700 Reviewers: fclem Reviewed By: fclem Subscribers: pablovazquez, billreynish, rboxman Tags: #eevee Differential Revision: https://developer.blender.org/D4212
2019-01-03Cleanup: preprocessor indentationCampbell Barton
2018-12-17Eevee: Change Bent normal calculationClément Foucault
This changes the bent normal effect to be a bit more subtle. I also tuned down the bent normal blending factor so mesh faceted look may appear more in occluded regions. this is to increase the fidelity of the indirect lighting. This blending might be a parameter in the future. Based the calculation on "Bent Normals and Cones in Screen-space" by O. Klehm, T. Ritschel, E. Eisemann, H.-P. Seidel
2018-11-20Fix T57891: Radius of strip hair doesn't scale with object scaleClément Foucault
Note that this only works fine with uniformly scaled objects. Otherwise, the hair thickness will vary in a weird way depending on viewing angles.
2018-11-19EEVEE: Cleanup: default_world_frag.glslmano-wii
2018-11-16Eevee: SSR: Only fade based on reflected pixel positionClément Foucault
Not on reflector pixel position. This improve the feel of SSRs and the final render quality.
2018-11-16Cleanup: removes unused varyingsmano-wii
2018-11-16Minor edits in `effect_ssr_frag.glsl`mano-wii
2018-11-16Cleanup: remove unused variablemano-wii
2018-11-15Eevee: Add Glossy Reflection clampingClément Foucault
This enables reducing the noise comming from very bright light sources (like a sun) that can be found in distant HDRIs. The lost energy may be replaced manually by a sunlight that compensate the this loss. This clamping only concerns Reflection Cubmaps and is done on all on all of them. Setting to 0.0 disables it (default).
2018-11-15Eevee: Add irradiance smoothingClément Foucault
This is a parameter that will make the interpolation between irradiance cells of a same Irradiance Volume smoother, reducing the weight of the light leaking correction factors. It is usefull in some cases to avoid harsh lighting transition that can happen when a sample point it near a surface.
2018-11-15Eevee: Irradiance Grid: Make the influence shape corners roundClément Foucault
This makes it easier to add corrective light grids without having ugly blending corners revealing the shape of the grid bounds.
2018-11-15Eevee: Cleanup & small optimizationClément Foucault
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: Optimisation: Bypass light power calculation when not neededClément Foucault
This makes quite a big improvement in my case 1.8ms vs 2.3ms for a single area light. This will make even more difference with light attenuation.
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-15Cleanup: Double semicolon at the end of lineSergey Sharybin
2018-11-13Fix T57708: Crash on Eevee rendering with SSR enabled.mano-wii
Intel does not like dead code. The driver for `Intel HD Graphics 4000` crashes in these cases.
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-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-11-08Eevee: Fix refraction materialsClément Foucault
Fix refraction depth not working without ScreenSpace Refraction. Fix ScreenSpace Refraction masking reflections.
2018-11-07Eevee: Improve Hashed Alpha transparency by reducing noise sizeClément Foucault
This only affect renders and static viewport accumulation. It reduces helps reduce noise when lots of half transparent surfaces overlaps.
2018-11-07Eevee: Support monochromatic Transparent BSDF correctlyClément Foucault
This fits Cycles better even if it is only for grey scale values. This only work if the blend mode is Alpha Blend or Alpha Hashed.
2018-11-01Eevee: Opti: Irradiance: Remove sqrt and max on backface testClément Foucault
Did not have any impact in my tests and it saves some instructions.
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-28Eevee: Fix contact shadow creating to overshadowingClément Foucault
This was because the shadow rays could be generated below the geometric normal.
2018-10-20Fix Eevee Reflection CubeMap and Irradiance Volume on some Intel gpusmano-wii
When you pass a struct as a parameter to a function, the qualifier "layout(column_major)" is lost.
2018-10-19Fix shadows of sun type lights on some Intel gpusmano-wii
When you pass a struct as a parameter to a function, the qualifier "layout(column_major)" is lost.
2018-10-17Eevee: Fix error when using texture coordinate on world shadersClément Foucault
Compilation errors were happening on OSX with errors of the type: ```ERROR: Input of fragment shader 'viewNormal' not written by vertex shader```
2018-10-15Eevee: Fix Missing alpha when rendering with DOFClément Foucault
NOTE: There is a float imprecision near the focus plane due to the current technique used for DOF. This makes the alpha channel transparent on nearly in focus objects even when they should not. This artifact should be fixed when the DOF will use scatter as gather for low brightness areas. Fix T57042 : Eevee does not render alpha when DOF is turned on
2018-10-09Eevee: Volume: Fix incorrect Light intensity compared to cyclesClément Foucault
2018-09-20Eevee: Implement Wireframe NodeClément Foucault
This implementation is a bit hacky but match cycles pretty close. If pixel size is not enabled, it will use the geom shader to compute distances between vertices. This will have a cost. Implementation is a bit hacky in gpu_codegen to make the geom shader works in an optional manner.
2018-09-19Merge branch 'master' into blender2.8Brecht Van Lommel
2018-09-17Eevee: Fix shader linking error with volumetric shadersClément Foucault
2018-09-11Eevee: Prepare for fullres tracingClément Foucault
2018-09-11Eevee: Fix downsampling shader with textureGatherClément Foucault
This was leading to issues with all raytracing and AO algorithm. Fix T55619
2018-09-10Eevee: Cleanup DoF implementationClément Foucault
2018-09-10Eevee: Depth of Feild: Fix ringing issue of background objectsClément Foucault
There was an issue caused by Antialiasing being done after DoF. Move TAA after DOF and Motion Blur. Also certain pixel with lower CoC would be spread all over the background because the neighbooring pixel have higher CoC. So we need to apply some bilateral filtering when downsampling. Currently we limit the influence of neighbor pixels with a CoC inside the range [MaxCoC-2, MaxCoC].
2018-09-03Eevee: Fix missing meshes on Win + Intel HD 530/540Clément Foucault
This is only a workaround. The real issue should be adressed by the driver team upstream.
2018-08-14GPUShader: Fix previous "old Nvidia" fix commitClément Foucault
Note to myself, next time, better check the fix before pushing it. GL_ARB_texture_gather is defined if there is support for the extension not only when the extension is enabled. Do this check ourself with GPU_ARB_texture_gather define. Original fix 822de6e9e1b8
2018-08-14Fix T55802 shader compile bug with texture gather on old Nvidia cardClément Foucault
The extension GL_ARB_texture_gather is reported to be supported and does not trigger an error when enabled but the textureGater functions are not defined. Workaround is to disable the use of this extension on such systems.
2018-08-08Eevee: Fix Clearcoat intensityClément Foucault
2018-08-08Eevee: Use "constant folding" for the principle shaderClément Foucault
This is more like a static optimisation when some parameters are set to 1.0 or 0.0. In theses case we use a more optimized version of the node. This also revisit the transmission parameter behaviour to make it closer to cycles.
2018-08-03Eevee: Fix assert with hair drawingClément Foucault
This remove unused clip_block when not needed and the useless ubo bind that were put there for the sake of not crashing.
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-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