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-10-21EEVEE: Fix ill defined blend in cubemap array workaroundClément Foucault
This fixes some firefly issues on corners of the cubemaps where the blending factors would go above 1 or below 0.
2022-10-19EEVEE: Depth Of Field: Replace ambiguous select with manual checkClément Foucault
This is an attempt to remove a driver bug.
2022-10-19Fix T101896 Eevee: Custom object properties don't work in shader for Curves ↵Clément Foucault
objects Move the material resources binding inside the `DRW_shgroup_curves_create_sub` so that `DRW_shgroup_call_no_cull` extracts the attributes.
2022-10-16Fix T99450: Animated Holdout not updating on frame changeLukas Stockner
Problem here was that layer_collection_objects_sync wasn't called when the holdout property is updated due to frame change, so the changed visibility flag was never applied to ob->base_flag. Turns out there's no real reason to handle the per-object holdout property through the layer system. So, instead of merging both the layer holdout and object holdout into base_flag and checking that from the render engines, only handle the layer holdout (which can't be animated, so no issue here) through base_flag and explicitly also check the object holdout in the render engines.
2022-10-11Sculpt: Fix mask from cavity not redrawing viewport with modifiersJoseph Eagar
2022-10-07Cleanup: redundant parenthesisCampbell Barton
2022-10-07DRW: Remove screen_vecsClément Foucault
These were only a normalized copy of the XY axes of the inverse viewmat. But since the viewmatrix is always normalized we can use it directly.
2022-10-07EEVEE: Move reflection clip plane to local storageClément Foucault
This avoid dependency with the draw view.
2022-10-07DRW: Move CameraTexCoFactors to engine specific storageClément Foucault
This is part of the effor to simplify the View struct in order to implement multiview rendering. The CameraTexCoFactors being only valid for a single view, and being only used in very few places, it make sense to move it to the engine side.
2022-10-06Cleanup: spelling in code commentsCampbell Barton
2022-10-05DRW: Split ViewProjectionMatrix in order to increase precisionClément Foucault
This also removes the need to compute the persmat and saves some memory from the `ViewInfos` struct. This is needed to allow multiview support. Initial testing found no major performance regression during vertex heavy workload. Test file: {F13610017} Results: | Platform | Master | Split Matrix| | Linux + Mesa + AMD W6600 | 48 fps | 47 fps | | Macbook Pro M1 | 50 fps | 51 fps | | Linux + NVidia 1080Ti | 51 fps | 52 fps | | Linux + Radeon Vega 64 | 25.6 fps | 26.7 fps | Increased precision when far from origin: {F13610024} {F13610025} Reviewed By: jbakker Differential Revision: https://developer.blender.org/D16125
2022-10-04Cleanup: Remove commented out code in ssr_lib.glsl.Jeroen Bakker
2022-10-04Fix T101438: Wrong LOD selection after clamping the mip value (Nvidia)Miguel Pozo
Fix for T101438 Clamping the mip seems to always set it to 9.0. I couldn't find an alternative way to avoid triggering the error (ie. min(mip, 9.0)). In any case, the results with this patch applied look the same to the (correct) ones on AMD. And, since clamping the max mip to a hardcoded value could result in resolution-depended behavior, I guess disabling the clamp should be ok anyway. Reviewed By: fclem Maniphest Tasks: T101438 Differential Revision: https://developer.blender.org/D16129
2022-10-03Cleanup: spelling in commentsCampbell Barton
Also replace "dm" for evaluated mesh in some comments.
2022-09-29Sculpt: Rewrite PBVH drawJoseph Eagar
Rewrite PBVH draw to allocate attributes into individual VBOs. The old system tried to create a single VBO that could feed every open viewport. This required uploading every color and UV attribute to the viewport whether needed or not, often exceeding the VBO limit. This new system creates one VBO per attribute. Each attribute layout is given its own GPU batch which is cached inside the owning PBVH node. Notes: * This is a full C++ rewrite. The old code is still there; ripping it out can happen later. * PBVH nodes now have a collection of batches, PBVHBatches, that keeps track of all the batches inside the node. * Batches are built exclusively from a list of attributes. * Each attribute has its own VBO. * Overlays, workbench and EEVEE can all have different attribute layouts, each of which will get its own batch. Reviewed by: Clement Foucault Differential Revision: https://developer.blender.org/D15428 Ref D15428
2022-09-23Cleanup: fix compiler errorsJacques Lucke
2022-09-23Depsgraph: generalize passing parameters to depsgraph object iteratorJacques Lucke
This makes it easier to pass more parameters to the iterator in the future. Differential Revision: https://developer.blender.org/D16047
2022-09-22GPU: Ensure rendering operations occur within GPU render boundaries.Jason Fielder
This is required by the Metal backend to perform flushing of temporary objective-C resources. This is implemented as a global autoreleasepool, and is to ensure consistency such that all rendering operations, whether called via events, or via main loop will be within an autoreleasepool. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Differential Revision: https://developer.blender.org/D15900
2022-09-22Metal: MTLContext implementation and immediate mode rendering support.Thomas Dinges
MTLContext provides functionality for command encoding, binding management and graphics device management. MTLImmediate provides simple draw enablement with dynamically encoded data. These draws utilise temporary scratch buffer memory to provide minimal bandwidth overhead during workload submission. This patch also contains empty placeholders for MTLBatch and MTLDrawList to enable testing of first pixels on-screen without failure. The Metal API also requires access to the GHOST_Context to ensure the same pre-initialized Metal GPU device is used by the viewport. Given the explicit nature of Metal, explicit control is also needed over presentation, to ensure correct work scheduling and rendering pipeline state. Authored by Apple: Michael Parkin-White Ref T96261 (The diff is based on 043f59cb3b5835ba1a0bbf6f1cbad080b527f7f6) Reviewed By: fclem Differential Revision: https://developer.blender.org/D15953
2022-09-21Fix EEVEE: Screen Space Refraction Artefacts caused by viewport aspect ratioClément Foucault
This was caused by the vertical/horizontal clasification being done in NDC space which wasn't respecting the Aspect ratio. Multiplying the test vector by the target size fixes the issue.
2022-09-16Revert "EEVEE: Fix volumetric resolve in large scenes."Jeroen Bakker
This reverts commit 34051fcc12f388375697dcfc6da53e9909058fe1. Although for normal use this doesn't make a difference. But when working with huge scenes and volumetrics + NVIDIA it made a work-around not possible anymore. For the heist production we added a fix on the render-farm (enable GPU workarounds). {rB34051fcc12f388375697dcfc6da53e9909058fe1} made another work-around not accessible anymore and it and was requested to revert this change.
2022-09-16Cleanup: spelling in commentsCampbell Barton
2022-09-13EEVEE: Fix volumetric resolve in large scenes.Jeroen Bakker
On NVIDIA volumetric resolve failed for large production scenes. The result would remove most color from the final render. The cause seems to be a faulty driver. This change ported the fragment shader to a compute shader which would select a different compiler branch and didn't show the error.
2022-09-09Cleanup: spelling in commentsCampbell Barton
2022-09-06Cleanup: spelling in comments, formatting, move comments into headersCampbell Barton
2022-09-05IDMAnagement: Add owner ID pointer to embedded ones.Bastien Montagne
Add a dedicated `owner_id` pointer to ID types that can be embedded (Collections and NodeTrees), and modify slightly come code to make handling those more safe and consistent. This implements first part of T69169. Reviewed By: brecht Differential Revision: https://developer.blender.org/D15838
2022-09-05EEVEE: Fix attributes node on Alpha Clip/Hashed materialsClément Foucault
This was cause by a missing implementation of some post processing attribute functions. Leading to unresolved reference.
2022-09-05Merge branch 'blender-v3.3-release'Clément Foucault
2022-09-05Fix T100775: Regression: EEVEE world environment is stretched when using ↵Clément Foucault
orthographic view It was using normalized vector instead of `viewCameraVec` which account for orthographic views. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D15861
2022-09-05Fix T100788 Regression: EEVEE wrong normal map on backfacesClément Foucault
This was caused by rB07cf3ce92fa2. It was missing a sign flip.
2022-09-02EEVEE: Fix Symbol error in SH_L2 CaculationRaphaelBelmont
The caculation of 7th SH coefficient need a negative sign Reviewed By: fclem Differential Revision: https://developer.blender.org/D15635
2022-09-02DRW-Next: Add uniform attributes (object attributes) supportClément Foucault
This replaces the direct shader uniform layout declaration by a linear search through a global buffer. Each instance has an attribute offset inside the global buffer and an attribute count. This removes any padding and tighly pack all uniform attributes inside a single buffer. This would also remove the limit of 8 attribute but it is kept because of compatibility with the old system that is still used by the old draw manager.
2022-09-02Merge branch 'blender-v3.3-release'Clément Foucault
# Conflicts: # release/scripts/addons
2022-09-02Fix T100377: EEVEE: Regression 3.2 normalmap node brokenClément Foucault
This was caused by un-wanted normalization. This is a requirement of the MikkTspace. The issue is that g_data.N is expected to be normalized by many other functions and overriden by bump displacement. Adding a new global variable containing the interpolated normal fixes the issue AND make it match cycles behavior better (mix between bump and interpolated normal).
2022-09-01Metal: Minimum per-vertex stride, 3D texture size + Transform feedback ↵Jason Fielder
GPUCapabilities expansion. - Adding in compatibility paths to support minimum per-vertex strides for vertex formats. OpenGL supports a minimum stride of 1 byte, in Metal, this minimum stride is 4 bytes. Meaing a vertex format must be atleast 4-bytes in size. - Replacing transform feedback compile-time check to conditional look-up, given TF is supported on macOS with Metal. - 3D texture size safety check added as a general capability, rather than being in the gl backend only. Also required for Metal. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14510
2022-09-01Tweak cryptomatte channels naming to improve interoperabilitySergey Sharybin
Use lowercase rgba channel names which still by-passes lossy nature of DWA compression and which also keeps external compositing tools happy. Thanks Steffen Dünner for testing this patch! Differential Revision: https://developer.blender.org/D15834
2022-09-01Fix cryptomatte passes saved lossy into multilayer EXRSergey Sharybin
The DWA compression code in OpenEXR has hardcoded rules which decides which channels are lossy or lossless. There is no control over these rules via API. This change makes it so channel names of xyzw is used for cryptomatte passes in Cycles. This works around the hardcoded rules in the DWA code making it so lossless compression is used. It is important to use lower case y channel name as the upper case Y uses lossy compression. The change in the channel naming also makes it so the write code uses 32bit for the cryptomatte even when saving half-float EXR. Fixes T96933: Cryptomatte layers saved incorrectly with EXR DWA compression Fixes T88049: Cryptomatte EXR Output Bit Depth should always be 32bit Differential Revision: https://developer.blender.org/D15823
2022-08-31Fix T100700: Compositor crashes when disabled then enabledOmar Emara
The viewport compositor crashes when it is disabled then enabled after the compositor node tree is edited. This happens because the compositor engine uses the view_update callback of the draw engine type to detect changes in the node tree and reset its state for future evaluation. However, the draw manager only calls the view_update callback for enabled engines, so the compositor never receives the needed updates to properly reset its state and then crashes at draw time. This patch call the view_update callback for all registered engines regardless if they are enabled or not, that way, they always receive the potentially important updated needed to maintain a correct state. Aside from the compositor engine, this change affects the EEVEE and Workbench engines because they are the only engines that utilizes this callback. However, both of them only reset a flag that is checked at draw time. So the change should have no side effects. For the EEVEE engine, we just add a null check in case it was not instanced, while Workbench already have the appropriate null check. Differential Revision: https://developer.blender.org/D15821 Reviewed By: Clement Foucault
2022-08-26Merge branch 'blender-v3.3-release'Philipp Oeser
2022-08-26Fix T100602: Incoming Vector in world shader for Eevee is invertedPhilipp Oeser
Regression from {rBf4d7ea2cf61} where the direction was flipped. Maniphest Tasks: T100602 Differential Revision: https://developer.blender.org/D15779
2022-08-17Cleanup: Remove redundant use of evaluated non-mesh objectsHans Goudey
Metaball, curve, text, and surface objects use the geometry component system to add evaluated mesh object instances to the dependency graph "for render engine" iterator. Therefore it is unnecessary to process those object types in these loops-- it would either be redundant work or a no-op.
2022-08-17Metaball: Evaluate metaball objects as mesh componentsHans Goudey
With the ultimate goal of simplifying drawing and evaluation, this patch makes the following changes and removes code: - Use `Mesh` instead of `DispList` for evaluated basis metaballs. - Remove all `DispList` drawing code, which is now unused. - Simplify code that converts evaluated metaballs to meshes. - Store the evaluated mesh in the evaluated geometry set. This has the following indirect benefits: - Evaluated meshes from metaball objects can be used in geometry nodes. - Renderers can ignore evaluated metaball objects completely - Cycles rendering no longer has to convert to mesh from `DispList`. - We get closer to removing `DispList` completely. - Optimizations to mesh rendering will also apply to metaball objects. The vertex normals on the evaluated mesh are technically invalid; the regular calculation wouldn't reproduce them. Metaball objects don't support modifiers though, so it shouldn't be a problem. Eventually we can support per-vertex custom normals (T93551). Differential Revision: https://developer.blender.org/D14593
2022-08-17Cleanup: strip blank lines around comment blocksCampbell Barton
2022-08-15Cleanup: fix typosBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D15680
2022-08-09DRW: DebugDraw: Port module to C++ and add GPU capabilitiesClément Foucault
This is a complete rewrite of the draw debug drawing module in C++. It uses `GPUStorageBuf` to store the data to be drawn and use indirect drawing. This makes it easier to do a mirror API for GPU shaders. The C++ API class is exposed through `draw_debug.hh` and should be used when possible in new code. However, the debug drawing will not work for platform not yet supporting `GPUStorageBuf`. Also keep in mind that this module must only be used in debug build for performance and compatibility reasons.
2022-08-02EEVEE: Depth of field: Fix incorrect variance occlusionClément Foucault
The change is likely not noticeable.
2022-08-01Eevee: Add support of rendering curves with cryptomatte.Jeroen Bakker
There were 2 errors. 1. hair code was used to draw curves 2. vertex shader wasn't aware of curves and failed to compile.
2022-07-15Fix: Move DRW_shgroup_add_material_resources(grp, mat) to after the ↵Martijn Versteegh
null-check for grp. Reviewed By: fclem Maniphest Tasks: T99646 Differential Revision: https://developer.blender.org/D15436
2022-07-15Fix T99606: Regression: TexCoordinate losing precision far away from originClément Foucault
Same root cause as T99128. The fix also needed to be done in another place.
2022-07-11Cleanup: spelling in commentsCampbell Barton