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
2022-03-24Fix T96243: Workbench Curvature not rendering in background.Jeroen Bakker
When rendering using the command line the curvature wasn't rendered. The reason was that the ui_scale wasn't initialized and therefore the same pixels where sampled to detect the curvature. This is fixed by setting the ui_scale to 1 for any image render.
2022-01-11Fix T94262: Grease Pencil Blur Effect DoF mode wrongPhilipp Oeser
This was visible outside of camera view and was not respecting the "Depth of Field" checkbox on the Camera properties. Now return early if DoF should not be visible. Maniphest Tasks: T94262 Differential Revision: https://developer.blender.org/D13631
2021-11-02Fix T92608: Image Editor does not display stereo imagesPhilipp Oeser
Caused by own {rB5aa3167e48b2}. Related commit: {rBebaa3fcedd23}. For stereo renders, `BKE_image_is_multilayer` is true, however we seem to get to down to `space_image_gpu_texture_get` [where this is called] from `IMAGE_cache_init` with a NULL Image->RenderResult. So what then happens is that `BKE_image_multilayer_index` is called and even though it has an appropriate codepath for stereo, it earlies out and does not set multi_index correctly. Still a bit puzzled why RenderResult is NULL for a render, but since other places also check for a valid RenderResult before going down the _multilayer_ route (and doing _multiview_ instead), now do the same thing, BKE_image_multiview_index is now called in these cases (and seems to behave correctly, checked with layers and passes and all seems to display correctly, either in stereo or choosing individual eyes). thx @jbakker & @brecht for double-checking. Maniphest Tasks: T92608 Differential Revision: https://developer.blender.org/D13063
2021-11-02Fix T89777 EEVEE: Contact Shadows causes wrong shading in Reflection PlaneClément Foucault
The planar reflections being rendered at the same resolution as the HiZ max buffer, do not need any uv correction during raytracing. However, the GTAO horizon buffer being at output resolution do need the uv factors in order to match the pixels visible on screen. To avoid many complication, we increase the size of the GTAO texture up to the hiz buffer size. This way, if planar reflections need GTAO the texture is big enough. We change the viewport of the GTAO framebuffer for the main view in order to not have to modify Uvs in many places.
2021-11-02Fix T91398 Overlay: Camera BG jitter offset (regression)Clément Foucault
This was caused by camera background being rendered in world space, causing floating point imprecision issues when camera was far from origin. Adding a uniform to change vertex shader to process everything in viewspace to fix the problem.
2021-09-22EEVEE fix gloss low roughness errorJake
Up lower clamp on spec_angle to prevent NaN from being generated on intel GPUs at low roughness. Fixes T88754 Reviewed By: fclem Maniphest Tasks: T88754 Differential Revision: https://developer.blender.org/D12508
2021-09-22Fix T87801: Eevee ambient occlusion is incorrect on M1 macMiniClément Foucault
The issue was caused by `textureSize()` returning the size of the level 0 even when the min texture level is higher than 0. Using a uniform to pass the correct size fixes the issue. This issue also affected the downsampling of radiance for reflections and refractions. This does not affect anything other than the recusive downsampling shaders.
2021-09-22Fix T91448: GPencil Fill simplify not working in renderAntonio Vazquez
The simplify was hardcode to be disabled in render.
2021-09-06Fix T90772: Image Editor not sampling color from the the currentlyPhilipp Oeser
selected pass Caused by {rBebaa3fcedd23}. Seems this above commit assumed an ImageUser's multi_index is only used for Multiview/Stereo? This is not the case, multi_index also stores the index for layer/pass combination. If we call both BKE_image_multilayer_index and BKE_image_multiview_index (even though this is not appropriate/needed for multilayer images?), we might end up overwriting multi_index again. note: looking at this I was also wondering why we update the ImageUser in image-buffer-aquiring funnctions [and not from the UI, e.g. template_image_layers, but that is a whole different story I guess, see comment in T90772 as well] note2: this could also use a utility function (this is not the only place where this is done), this is fo a cleanup commit. Maniphest Tasks: T90772 Differential Revision: https://developer.blender.org/D12267
2021-09-06Fix T90651: camera reconstruction crash without scene cameraPhilipp Oeser
This was working differently in 2.79, tried tracking this down and it seems this was wrong since the 2.8 beginning in {rB7907dfc40018}. This would not only crash without an active scene camera, but would also result in different tracks from different camera's constraints could not be selected. So select id depends on corresponding camera, remove the dependency on scene camera completely. Maniphest Tasks: T90651 Differential Revision: https://developer.blender.org/D12230
2021-08-23Fix FTBFS on mips64el architectureMatteo F. Vescovi
While trying to get Blender 2.93.x LTS to build fine on all release architectures in Debian, I noticed that the misleading use of "mips" as integer variable caused problems when compiling on mips64el. The patch should fix the issue. Reviewed By: fclem Differential Revision: https://developer.blender.org/D12194
2021-07-26Fix channel packed images display in the Image/Node editorPhilipp Oeser
Channel packed images should not have their RGB affected by alpha. rendering in Cycles and Eevee was fine already, but displaying these was not right in the Image and Node editors. Not 100% sure what to do for the "Color and Alpha" mode, but I guess this should stay like it was before (applying the alpha). "Color", "R", "G", and "B" modes were changed to not have color be affected by alpha though. ref. T89034 Maniphest Tasks: T89034 Differential Revision: https://developer.blender.org/D11871
2021-06-16Fix T86956: VSE shading mode ignores Grease Pencil Vertex colors.Jeroen Bakker
Issue is that due to the strange definition of render in grease pencil (meaning should be rendered similar to rendering). This included normal viewport rendering in OB_RENDER and OpenGL render in OB_RENDER. For other rendering modes the overlay vertex opacity would be used. This patch sets this value to 1 when rendering via a scene strip override. NOTE: that this isn't a good solution as I expect that users want to use the opacity of the Grease pencil object. Perhaps the GPencil team has a better solution for it.
2021-06-09EEVEE: AOVs not same as cycles.Jeroen Bakker
EEVEE uses hashing to sync aov names and types with the gpu. For the type a hashed value was overridden making `decalA` and `decalB` choose the same hash. This patches fixes this by removing the most significant bit.
2021-05-29GPencil: Fix unreported random rotation for single point with textureAntonio Vazquez
When using ``Path`` alignment, if the stroke has one point the texture rotates randomly when move the viewport. This was because with one point is impossible to calculate a path. Now, if the stroke has only one point, the texture for this stroke is aligned to Object.
2021-05-28EEVEE: Fix NaN caused by ensure_valid_reflection()Clément Foucault
This was caused by unsafe sqrt calls. Fixes T86578 white artifacts in EEVEE Reviewed By: brecht, dfelinto Differential Revision: https://developer.blender.org/D11428
2021-05-27Revert "EEVEE: Ensure Reflection: Use new implementation"Clément Foucault
Both before and after can have artifacts with some normal maps, but this seems to give worse artifacts on average which are not worth the minor performance increase. This reverts commit 5c4d24e1fd752a8a89d44d05e8e3f9b31f2d7db0. Ref T88368, D10084
2021-05-18Fix T88370: GPencil render crash when use viewlayer and maskingAntonio Vazquez
When filtering the render using view layer, could be possible the mask is NULL and just need to be ignored.
2021-05-18Cleanup: clang-formatCampbell Barton
2021-05-15Fix T88204 EEVEE: Animated world light doesnt work during renderClément Foucault
This was a bug uncovered by rB50782df42586. Previously, the lightcache was always discarded between redraw and forced to be updated again. Now we check for update inside the render loop making it compatible with accumulation motion blur and long exposure.
2021-05-15EEVEE: Depth of Field: Fix tile artifacts in mixed focus regionsClément Foucault
This was caused by the slight focus gather not being wide enough for small radii. Now the cast to int will properly round the radius to the nearest integer. This is related to T86244 Black Artefacts in EEVEE on Transparent BSDF
2021-05-15Fix T85845 EEVEE: Depth Of Field: Artifacts with slight out of focusClément Foucault
This was caused by the bokeh LUT being sampled outside the valid range. But `texelFetch` is only valid if the sample actually exists. This lead to undefined behavior. The fix is to increase `DOF_MAX_SLIGHT_FOCUS_RADIUS` (which just offsets the LUT along the X=Y axis) to avoid any sample outside the defined range.
2021-05-12Fix T87851 EEVEE: Performance regression with baked lighting & transparencyClément Foucault
This was caused by the drivers not optimizing the shader enough to remove the samplers and data used by closure eval. Removing the lighting loops from the depth shader fixes the perf regression.
2021-05-11Fix T82155: Fade inactive geometry overlay not working with instanced geometryPablo Dobarro
This enables the overlay for instanced geometry. After this change, objects that are an instance of the current active object (which are also being modified in the current active mode) won't fade, which is different from the previous behavior. Reviewed By: fclem Maniphest Tasks: T82155 Differential Revision: https://developer.blender.org/D9362
2021-05-10Fix T87764: Mem-leak during viewport rendering.Jeroen Bakker
When a scene uses cryptomatte the viewport rendering would lead to a memory leak. The reason was that all image renders (viewport+final) activated cryptomatte. But is only used for final rendering. This patch only activates cryptomatte when doing final rendering.
2021-05-07Cleanup: make format (clang-format)Dalai Felinto
2021-05-05Fix T87068 EEVEE: Moire effect with particle hair and subsurfaceClément Foucault
This artifact was already present in previous version but was hidden by the faulty SSS scale. The issue comes from the translucence using the geometric normal (computed using fragment shader derivative) leading to poor precision at depth discontinuity. Replacing using the same geometric normal reconstruction as the ambient occlusion pass removes most of the issue.
2021-05-05Fix T86823 Eevee: refraction depth shared between different materialsClément Foucault
This was caused by the material grouping system which was missing a per material uniform update in the opaque case.
2021-05-05Fix T86037 EEVEE: SSR option changes render passes resultClément Foucault
This was caused by the SSR option resetting the accumulation. But the render passes were only cleared in the init phase. This means that when SSR was resetting the taa_render_sample the actual renderpasses would still contains 1 sample. This means the renderpasses were always divided by the wrong number of samples. The fix is to clear just before accumulation if the sample is 1. The fact that it works for motion blur is kind of a blessing. This is because we check stl->effects->ssr_was_valid_double_buffer before resetting the sampling. So this only happens on the first motion step and does not affect the rest of the rendering. Reviewed by: jbakker Differential Revision: https://developer.blender.org/D11033
2021-05-04DRW: Fix issue with batch reusing freed VBO indices.Clément Foucault
Some discard of vertbuf were not correctly followed by discards of the GPUBatches that were using them. This lead to a use-after-free situation where GPUBatches would reuse old VBO information. This did not crash immediatly because the VBO indices were cached by our VAO caching system. It kept working on some implementation because VBO reference in the VAO (probably) preventing the VBO from being freed by reference counting. This fixes T85977 NVidia: Random crashes in 'DrvPresentBuffers'
2021-04-30Fix potential buffer overrun in drw_shader_dependencies_getCampbell Barton
Logical error let this function to write one past the buffer bounds.
2021-04-28Fix T87464 EEVEE: Crash with deformation Motion BlurClément Foucault
This was caused by the new depsgraph persistence. The GPUbatches we got from the cache being the same for each frame means that we need to be more careful about cleanning the additional VBOs references. Moving the `EEVEE_motion_blur_swap_data` function call at the end of the loop makes sure the references are cleaned.
2021-04-23Fix T78845: Eevee wrong material selection.Jeroen Bakker
In cases where the same node tree is used in different materials with small changes, the wrong material could be selected. Cause: Hair shaders GPU resources weren't updated and used the previous bound data. Reviewed By: fclem Differential Revision: https://developer.blender.org/D11036
2021-04-20Fix T87440 EEVEE: Specular Light Viewport Render Pass wrong behaviorClément Foucault
This was caused by the closure refactor. The radiance being masked for SSR, we need to not enable SSR when trying to render the specular color pass. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11028
2021-04-20EEVEE: Fix unreported memory leak when toggling AO on/offClément Foucault
The `filtered_radiance` is not a texture form the texture pool. It needs manual freeing if not used.
2021-04-20Fix T87369 EEVEE: Ambient Oclussion: Firefly caused by degenerated normalClément Foucault
This was caused by some sort of degenerated normals.
2021-04-20Fix T87541 EEVEE: AO causes black outline around objects and NaN pixelsClément Foucault
It seems the pow result is unstable on some implementations. Also avoid undefined behavior by clamping aoFactor to strict positive values.
2021-04-14GPencil: Invert color offsetting for Single and Object modeAntonio Vazquez
Now, instead to offset the stroke color to make it visible over fill, the stroke keeps the original color and the fill is offset. Related to the issue in T87406.
2021-04-14Fix T87406: Stroke color when using object color modeFalk David
The color of the strokes was shifted when using `Single Color` or `Object Color`in Solid Display Mode. This was originally done so that it was still possible to differentiate strokes and fills. The fix allows for a completly flat shading by checking if the Lighting Mode is set to `Flat`. If it is, then the colors are not shifted for the strokes and everything will use the same color. Reviewed By: antoniov, fclem Maniphest Tasks: T87406 Differential Revision: https://developer.blender.org/D10957
2021-04-11Cleanup: clang-formatCampbell Barton
2021-04-09Fix T87150: bad points appearance in orthographic viewPhilipp Oeser
Points are drawn as half octahedron (aligned to the camera). Getting the appropriate matrix for facing the camera would fail in in orthographic view, points were not facing the camera (revealing their missing other half octahedron) Maniphest Tasks: T87150 Differential Revision: https://developer.blender.org/D10923
2021-04-08Cleanup: Use const arguments for volume codeHans Goudey
The problem was that you could getting write access to a grid from a `const Volume *` without breaking const correctness. I encountered this when working on support for volumes in the bounding box node. For geometry nodes there is an important distinction between getting data "for read" and "for write", with the former returning a `const` version of the data. Also, for volumes it was necessary to cast away const, since all of the relevant functions in `volume.cc` didn't have const versions. This patch adds `const` in these places, distinguising between "for read" and "for write" versions of functions where necessary. The downside is that loading and unloading in the global volume cache needs const write-access to some member variables. I see that as an inherent problem that comes up with caching that never has a beautiful solution anyway. Some of the const-ness could probably be propogated futher in EEVEE code, but I'll leave that out, since there is another level of caching. Differential Revision: https://developer.blender.org/D10916
2021-04-08Cleanup:Germano Cavalcante
2021-04-08Fix previous commit: wrong `is_mesh_verts_only` checkGermano Cavalcante
2021-04-08Fix T86762: Inconsistent show of result of modifier Screw in edit modeGermano Cavalcante
To check if an "is_mesh_verts_only" mesh, the overlay engine checks if the mesh has no "totedge" and has "totvert". However, sometimes this engine can check the wrong mesh since editmesh works on `embm->mesh_eval_final`. Reviewed By: fclem Differential Revision: https://developer.blender.org/D10917
2021-04-08EEVEE: Ensure Reflection: Use new implementationClément Foucault
Use same implementation as Cycles. Is also a bit faster. Should also fix T86578 at the same time.
2021-04-08Fix T81707: Spline IK Joints "Floating" above curveSebastian Parborg
The issue was that where_on_path uses a resampled curve to get the data from the curve. This leads to disconnects between the curve the user sees and the evaluated location data. To fix this we simply use the actual curve data the user can see. The older code needed a cleanup either way as there were hacks in other parts of the code trying to work around some brokenness. This is now fixed and we no longer need to clamp the evaluation range to 0-1 or make helper functions to make it do what we actually want. Reviewed By: Campbell, Sybren Differential Revision: http://developer.blender.org/D10898
2021-04-02Fix T84520: Make the different weight paint code paths exclusive to each otherSebastian Parborg
Before this change, you could have the new sculpt symmetry code and the older weight paint symmetry code active at the same time. This would lead to users easily trashing their weigh paint data if they were not careful when switching between modes. Now the specific weight paint symmetry code is an exclusive toggle so the user can't accidentally mirror strokes and vertex groups at the same time. This also paves the way of supporting Y and Z symmetry in the future for weight groups mirroring if we decide to add it in the future. Reviewed By: Sybren Differential Revision: http://developer.blender.org/D10426
2021-03-30Cleanup/Refactor: Unify functions that redraw the depth bufferGermano Cavalcante
Now `ED_view3d_backbuf_depth_validate`, `ED_view3d_draw_depth` and `ED_view3d_draw_depth_gpencil` are unified in `ED_view3d_depth_override`. This new function replaces `ED_view3d_autodist_init`. Also, since `ED_view3d_depth_update` depends on the render context, and changing the context is a slow operation, that function also was removed, and the depth buffer cached is now updated inside the new unified drawing function when the "bool update_cache" parameter is true. Finally `V3D_INVALID_BACKBUF` flag has been renamed and moved to `runtime.flag`. Differential revision: https://developer.blender.org/D10678
2021-03-30Armature: Add Display Axis OffsetScott Wilson
Display the bone axes at the head (root) of the bone by default, instead of the tail (tip), and add a slider so that it's possible to adjust this position. Versioning code is in place to ensure existing files behave the same (axes shown at tail), whereas new Armatures will be using the new default (axes shown at head). Reviewed By: #animation_rigging, #user_interface, Severin, Sybren Differential Revision: https://developer.blender.org/D7685