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-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
2018-03-10Eevee: Planar Reflections: Fix corrupted results in downsampling step.Clément Foucault
It only seems to happen in some drivers/gpu, the vertices gets culled if 4th component is 0.0. So lesson learned: always use 1.0 if constant.
2018-03-10Eevee: Add new clipping UBO.Clément Foucault
This fixes problems with the planar reflections.
2018-03-10Eevee: Make use of the new view matrix UBO.Clément Foucault
2018-03-06Eevee: Optimize shadows drawingGermano
In the gpus like `AMD Radeon HD 7570M` and `Intel(R) HD Graphics 4000` this solution improves performance a hundreds or even thousands of times depending on the resolution. Reviewed By: @brecht and @fclem Differential Revision: https://developer.blender.org/D3095
2018-03-02DRW: Refactor simple instancing.Clément Foucault
Instead of creating a new instancing shading group without attrib, we now have instancing calls. The benefits is that they can be culled. They can be used in conjuction with the standard and generate calls but shader must support it (which is generally not the case). We store a pointer to the actual count so that the number can be tweaked between redraw. This will makes multi layer rendering more efficient.
2018-02-14Eevee: Fix broken AO and Contact shadows on certain platform.Clément Foucault
This was caused by ce0f70fbd62fc812a2508c27a2f392cde0acbdfa
2018-02-07Eevee: Fix SSR & AO on Vega + Mesa.Clément Foucault
Really strange bug. Maybe gl_FragDepth is broken on this implementation.
2018-02-05Eevee: Render: Fix Ao pass background contamination.Clément Foucault
It was poluted by the additive blend mode.
2018-02-05Eevee: Render Fix black normals on blended material in the normal pass.Clément Foucault
2018-02-05Eevee: Codestyle: Indent #ifdefsClément Foucault
2018-02-01Eevee: Add mist pass support.Clément Foucault
Eevee: Render: Fix crash when not enabling mist pass.
2018-02-01Eevee: Simplify/Fix view_vecs calculation.Clément Foucault
Now view_vecs[0][2] ALWAYS contains Near clip plane and view_vecs[1][2] = far - near.
2018-02-01Eevee: Render: Add Subsurface Pass support.Clément Foucault
2018-01-31Eevee: Fix indentation and fix output normal of emission shader.Clément Foucault
2018-01-22Eevee: Probes: Add support for intensity tweak.Clément Foucault
This works for grid and cubemaps. The intensity is baked into the map itself. Thus you need to refresh/rebake the probe to see the changes.
2018-01-22Eevee: SSR: Optimize the AO out when not enabled.Clément Foucault
2018-01-22Eevee: Put all constant uniforms in a global UBO.Clément Foucault
This is an optimization / cleanup commit. The use of a global ubo remove lots of uniform lookups and only transfert data when needed. Lots of renaming for more consistent codestyle.
2018-01-19Eevee: Fix translucency light powers.Clément Foucault