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
2020-09-03Fix T79803: Wrong Distance To Edge 1D VoronoiOmarSquircleArt
The current 1D Voronoi implementation for the Distance to Edge option computes the distance to the cells instead. This patch fixes that and compute the distance to the edge. Reviewed By: JacquesLucke, brecht Differential Revision: https://developer.blender.org/D8634
2020-09-01UI: Widget: Add conservative raster to avoid cut widget bordersClément Foucault
This avoids incorrect AA when the widget is not perfectly alligned with the pixel grid.
2020-09-01Cleanup: Use GPUBatch for icon and area drawingClément Foucault
This is in order to remove GPU_draw_primitive to streamline the drawing abstraction.
2020-08-18Fix T79568 EEVEE: Film transparent not workingClément Foucault
Since world shader use the same standard output and are considered opaque, we need to set alpha as holdout.
2020-07-30EEVEE: GLSL refactor/cleanupClément Foucault
- add the use of DRWShaderLibrary to EEVEE's glsl codebase to reduce code complexity and duplication. - split bsdf_common_lib.glsl into multiple sub library which are now shared with other engines. - the surface shader code is now more organised and have its own files. - change default world to use a material nodetree and make lookdev shader more clear. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D8306
2020-07-20Fix T78977 GPU: blf fonts are not gamma correctedClément Foucault
2020-07-18Cleanup: GPUShader: Remove unused builtin shaderClément Foucault
2020-07-15EEVEE: Fix undefined behavior in world outputClément Foucault
2020-07-13EEVEE: Fix sky zenith bugSzymon Ulatowski
Careless use of acos() in spherical coordinates transformation was deteriorating the precision near zenith (and nadir) and producing glitchy pixels (best seen in longer focal lengths). Reviewed By: fclem Differential Revision: https://developer.blender.org/D8266
2020-07-09EEVEE: Implement the missing Sky textureSzymon Ulatowski
I'm not sure if the Sky was deliberately left out or was just waiting for a better moment, but so many I was disappointed that Sky in EEVEE is completely white. There are already 2 implementations (osl and gpu) so this is the third one. Looking at other cases it seems that we are not supposed to share sources between cycles and the rest? So the new util_sky_model files are just copies of what is already in cycles, except that the data file uses the RGB variant of the Hosek/Wilkie model, because we output RGB anyway (but can be easily changed to XYZ if desired - the results are nearly identical). I am not sure if it is okay to pass 3*9 float values as 3 mat4 uniforms (I wanted to use mat3 but it does not work). Also, should I cache the sky model data between renders if the parameters do not change? Reviewed By: fclem, brecht Differential Revision: https://developer.blender.org/D7108
2020-07-07Fix T78307 UI: Drawing artifacts in the Blender UI on macOSClément Foucault
This was due to a bad driver which was not respecting this bit of the specification: `If the current primitive does not originate from an instanced draw command, the value of gl_InstanceID is zero.`
2020-07-04UI: Attempt to fix OSX widget shader issueClément Foucault
Some OSX GL driver implementation needs a dummy vbo read. This fixed issues with the Hair shaders in the past. Related to T78307
2020-07-02Fix T77686: EEVEE environment pass with film transparencyJeroen Bakker
When the film is set to transparent the environment pass should still be rendered solid. otherwise it renders black. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D8046
2020-06-30EEVEE: Fix undefined behavior when using BSDF nodes inside volume shadersClément Foucault
This should fix T76171 Eevee bsdf shaders glitches
2020-06-26Fix T78237 UI: NLA colors black and brokenClément Foucault
This was caused by missing GL blend. This patch also fix the broken strip appearance under timeline zoom.
2020-06-22UI: Widget: Replace geometry by fragment shader drawingClément Foucault
This means all the antiailasing is done inside the fragment shader. We use a Signed Distance Field to draw the 2D rounded boxes. This ensure the best quality for AA. This reduce the averge Batch for widget to 16 verts instead of ~600 and reduce overshading a lot. Theme Emboss alpha and tria alpha needs to be changed after this refactor. The shadow drawing is left unchanged and still use geometry. Reviewed By: Severin Differential Revision: https://developer.blender.org/D7833
2020-06-22UV Editor: Fix Vertex Overlay color not being color managedClément Foucault
Could be backported to 2.83 LTS
2020-06-22Fix T62917 UV editor: Edge overlay not shown when edge overlay type is DashClément Foucault
Fix by changing the shader to always compute dash for uv and just change dash size to something really big for other overlay types.
2020-06-03Cleanup: GPUMaterilal: Texture Node: Remove unused functionsClément Foucault
2020-06-03GPUMaterial: Rework/simplify image texture filteringClément Foucault
This use the latest GPUTexture change to use the sampler state to avoid the pole issues instead of using GLSL hacks. This should fix T73942: Eevee mipmaps not respecting border mode. Note that this also fix some discrepencies between cycles and eevee (like boxmapping + clip).
2020-06-03GPUMaterial: Rework/simplify environment texture filteringClément Foucault
This use the latest GPUTexture change to use the sampler state to avoid the pole issues instead of using GLSL hacks.
2020-06-02EEVEE: Refactor of eevee_material.cClément Foucault
These are the modifications: -With DRW modification we reduce the number of passes we need to populate. -Rename passes for consistent naming. -Reduce complexity in code compilation -Cleanup how renderpass accumulation passes are setup, using pass instances. -Make sculpt mode compatible with shadows -Make hair passes compatible with SSS -Error shader and lookdev materials now use standalone materials. -Support default shader (world and material) using a default nodetree internally. -Change BLEND_CLIP to be emulated by gpu nodetree. Making less shader variations. -Use BLI_memblock for cache memory allocation. -Renderpasses are handled by switching a UBO ref bind. One major hack in this patch is the use of modified pointer as ghash keys. This rely on the assumption that the keys will never overlap because the number of options per key will never be bigger than the pointed struct. The use of one single nodetree to support default material is also a bit hacky since it won't support concurent usage of this nodetree. (see EEVEE_shader_default_surface_nodetree) Another change is that objects with shader errors now appear solid magenta instead of shaded magenta. This is only because of code reuse purpose but could be changed if really needed. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D7642
2020-05-18UI: Widget: Make emboss offset dependent of line widthClément Foucault
2020-05-18UI: Widgets: Reduce constants count in shaderClément Foucault
2020-05-14UI: Fix Unreported missing background for azone arrowClément Foucault
This was caused by the sRGB viewport changes. The fix is to modify the alpha values manually. The shader was also missing a srgb fix.
2020-04-24GPU: Add Polyline shader (wide line emulation)Clément Foucault
This new shader is able to emulate smooth wide lines drawing using a geometry shader. This shader needs viewportSize and lineWidth uniforms to be set. There is multiple variants to replace the usage of wide lines for most shaders. This patch only fix the gizmo_types files and the navigation gizmo. Other areas could be fixed afterward, I just limited the patch size. Fix T57570. Reviewed By: billreynish Differential Revision: https://developer.blender.org/D7487
2020-04-14GPUShader: Implement workaround for gizmo drawing on sRGB framebufferClément Foucault
This solution involves adding a uniform to each fragment shader that is used by gizmo drawing and use the framebuffer state to set this uniform accordingly. This solution can also be carried to external shaders (addons). A single line of code would then be enough to fix the issue. The only trickery here is the dummy define: `#define srgb_to_framebuffer_space(a)` This is in order to avoid breaking other DRW shaders that use the same fragment shader code but do not need the tranformation. Related to T74139 Reviewed By: brecht, campbellbarton Differential Revision: https://developer.blender.org/D7261
2020-04-09Shading: add Roughness input to Noise and Wave texture nodesBartosz Moniewski
Currently in fractal_noise functions, each subsequent octave doubles the frequency and reduces the amplitude by half. This patch introduces Roughness input to Noise and Wave nodes. This multiplier determines how quickly the amplitudes of the subsequent octaves decrease. Value of 0.5 will be the default, generating identical noise we had before. Values above 0.5 will increase influence of each octave resulting in more "rough" noise, most interesting pattern changes happen there. Values below 0.5 will result in more "smooth" noise. Differential Revision: https://developer.blender.org/D7065
2020-03-27Cleanup: GPUShader: Remove unused shadersClément Foucault
2020-03-19Fix T73931: Stereo Viewport Color ManagementJeroen Bakker
Stereoscopic viewport didn't support Color Manangement due recent changes in the color management pipeline. In order to solve the issue we will migrate the strereo rendering into the GPUViewport. This will share some textures and reduce required GPU memory. Reviewed By: fclem, dfelinto Differential Revision: https://developer.blender.org/D6922
2020-03-18Objects: Eevee and workbench rendering of new Volume, Hair, PointCloudBrecht Van Lommel
Only the volume drawing part is really finished and exposed to the user. Hair plugs into the existing hair rendering code and is fairly straightforward. The pointcloud drawing is a hack using overlays rather than Eevee and workbench. The most tricky part for volume rendering is the case where each volume grid has a different transform, which requires an additional matrix in the shader and non-trivial logic in Eevee volume drawing. In the common case were all the transforms match we don't use the additional per-grid matrix in the shader. Ref T73201, T68981 Differential Revision: https://developer.blender.org/D6955
2020-03-11Workbench Simplification RefactorClément Foucault
This patch is (almost) a complete rewrite of workbench engine. The features remain unchanged but the code quality is greatly improved. Hair shading is brighter but also more correct. This also introduce the concept of `DRWShaderLibrary` to make a simple include system inside the GLSL files. Differential Revision: https://developer.blender.org/D7060
2020-03-11Eevee: internal support for arbitrary number of volume gridsBrecht Van Lommel
This has no user visible impact yet since smoke volumes only support a fixed set of attributes, but will become important with the new volume object. For GPU shader compilation, volume grids are now handled separately from image textures. They are somewhere between a vertex attribute and an image texture, basically an attribute that is stored as a texture. Differential Revision: https://developer.blender.org/D6952
2020-03-11Smoke: put density/color in separate textures, fixes for workbench shaderBrecht Van Lommel
This is more in line with standard grids and means we don't have to make many special exceptions in the upcoming change for arbitrary number of volume grids support in Eevee. The workbench shader was also changed to fix bugs where squared density was used, and the smoke color would affect the density so that black smoke would be invisible. This can change the look of smoke in workbench significantly. When using the color grid when smoke has a constant color, the color grid will no longer be premultiplied by the density. If the color is constant we want to be able not to store a grid at all. This breaks one test for Cycles and Eevee, but the setup in that test using a color without density does not make sense. It suffers from artifacts since the unpremultiplied color grid by itself will not have smooth boundaries. Differential Revision: https://developer.blender.org/D6951
2020-03-08Fix T74395: Box interpolation does not support repeat extrapolationJacques Lucke
Reviewers: fclem Differential Revision: https://developer.blender.org/D7009
2020-03-02Shading: Add invert option to Vector Rotate NodeCharlie Jolly
Checkbox to invert rotation angle, suggested by @simonthommes Differential Revision: https://developer.blender.org/D6932
2020-02-25Cleanup: clang-formatBrecht Van Lommel
2020-02-25Overlay: Fix overlays being washed out by render colorsClément Foucault
Clamping here might be a bit too much if output is expected to be HDR. But we don't support HDR atm so clamping is fine.
2020-02-24Fix T74169: Vector Rotate Node - Euler modes not working as intendedCharlie Jolly
Remove additional Euler modes for the time being, not working as intended, will add back if there is a need.
2020-02-24BLF: Optimize text rendering and cachingGermano Cavalcante
The current code allocates and transfers a lot of memory to the GPU, but only a small portion of this memory is actually used. In addition, the code calls many costly gl operations during the caching process. This commit significantly reduce the amount of memory by allocating and transferring a flat array without pads to the GPU. It also calls as little as possible the gl operations during the cache. This code also simulate a billinear filter `GL_LINEAR` using a 1D texture. **Average drawing time:** |before:|0.00003184 sec |now:|0.00001943 sec |fac:|1.6385156675048407 **5 worst times:** |before:|[0.001075, 0.001433, 0.002143, 0.002915, 0.003242] |now:|[0.00094, 0.000993, 0.001502, 0.002284, 0.002328] Differential Revision: https://developer.blender.org/D6886
2020-02-21EEVEE: Render PassesJeroen Bakker
This patch adds new render passes to EEVEE. These passes include: * Emission * Diffuse Light * Diffuse Color * Glossy Light * Glossy Color * Environment * Volume Scattering * Volume Transmission * Bloom * Shadow With these passes it will be possible to use EEVEE effectively for compositing. During development we kept a close eye on how to get similar results compared to cycles render passes there are some differences that are related to how EEVEE works. For EEVEE we combined the passes to `Diffuse` and `Specular`. There are no transmittance or sss passes anymore. Cycles will be changed accordingly. Cycles volume transmittance is added to multiple surface col passes. For EEVEE we left the volume transmittance as a separate pass. Known Limitations * All materials that use alpha blending will not be rendered in the render passes. Other transparency modes are supported. * More GPU memory is required to store the render passes. When rendering a HD image with all render passes enabled at max extra 570MB GPU memory is required. Implementation Details An overview of render passes have been described in https://wiki.blender.org/wiki/Source/Render/EEVEE/RenderPasses Future Developments * In this implementation the materials are re-rendered for Diffuse/Glossy and Emission passes. We could use multi target rendering to improve the render speed. * Other passes can be added later * Don't render material based passes when only requesting AO or Shadow. * Add more passes to the system. These could include Cryptomatte, AOV's, Vector, ObjectID, MaterialID, UV. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D6331
2020-02-19EEVEE: Color Ramp Ease OptimisationCharlie Jolly
This patch provides an optimisation for Ease (Smoothstep) setting in the color ramp node. This optimisation exists already for Constant and Linear modes. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6880
2020-02-17Cycles: Vector Rotate Node using Axis and Angle methodCharlie Jolly
This node provides the ability to rotate a vector around a `center` point using either `Axis Angle` , `Single Axis` or `Euler` methods. Reviewed By: #cycles, brecht Differential Revision: https://developer.blender.org/D3789
2020-02-17Shading: add direction modes and phase offset to wave texture nodeBartosz Moniewski
* Direction mode X, Y and Z to align with axes rather than diagonal or spherical as previously. X is the new default, existing files will use diagonal or spherical for compatibility. * Phase offset to offset the wave along its direction, for purposes like animation and distortion. https://developer.blender.org/D6382
2020-02-15Fix Eevee shader node error when using both RGB and vector curve nodesBrecht Van Lommel
2020-02-15Shading: Extend Vector Math Node with Sin, Cos, Tan and Wrap functionsCharlie Jolly
This adds some extra functions recently added to the float Maths Node. Not all functions have been ported over in this patch. Also: + Tidy up menu + Change node color to match other vector nodes, this helps distinguish vector and float nodes in the tree + Move shared OSL functions to new header node_math.h Reviewed By: brecht Differential Revision: https://developer.blender.org/D6713
2020-02-11DRW: Color Management improvementClément Foucault
Reviewed By: brecht sergey jbakker Differential Revision: http://developer.blender.org/D6729
2020-02-06Merge branch 'blender-v2.82-release'mano-wii
2020-02-06Fix T69776: Error with complex Eevee noise texture in some driversPatrick Bender
Apparently the compiled shader bump into some register limit and the compiler instead of giving an error, does something incorrectly. Differential Revision: https://developer.blender.org/D6759
2020-01-29Fix T73469: OSL: Vector Math Node modulo uses wrong functionCharlie Jolly
This also fixes glsl version of fmod when both inputs are negative. Differential Revision: https://developer.blender.org/D6704