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-06-23Fix T77803: IK Degrees of freedom drawing glitchJeroen Bakker
Forgot to update the lineOutput what resulted in that the sphere was not rendered on all platforms. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D8098
2020-06-23Fix T77893: Crash drawmanager threading custom dataJeroen Bakker
Tangent normals were temporarily saved in the original given layers but the typeinfo wasn't updated. This lead to several issues since we changed the threading of the mesh extraction. This patch stores the tangent normals in a temporary custom data on the stack this way the typemap doesn't need to be updated. Still need to run the tests for an hour to see if it is fixed Reviewed By: Clément Foucault, Philipp Oeser Differential Revision: https://developer.blender.org/D8095
2020-06-23EEVEE: Motion Blur: Add accumulation motion blur for better precisionClément Foucault
This revisit the render pipeline to support time slicing for better motion blur. We support accumulation with or without the Post-process motion blur. If using the post-process, we reuse last step next motion data to avoid another scene reevaluation. This also adds support for hair motion blur which is handled in a similar way as mesh motion blur. The total number of samples is distributed evenly accross all timesteps to avoid sampling weighting issues. For this reason, the sample count is (internally) rounded up to the next multiple of the step count. Only FX Motion BLur: {F8632258} FX Motion Blur + 4 time steps: {F8632260} FX Motion Blur + 32 time steps: {F8632261} Reviewed By: jbakker Differential Revision: https://developer.blender.org/D8079
2020-06-23Cleanup: rename 'name' to 'filepath' for DNA typesCampbell Barton
Using 'name' for the full path of a file reads badly, especially when id.name is used in related code.
2020-06-22Fix T77607: Edit-mode shading regression 2.90Campbell Barton
Regression in deaff945d0b9
2020-06-21GPencil: Fix unreported missing material onion filter Antonio Vazquez
This feature was removed by error during the refactor done in draw engine. Differential Revision: https://developer.blender.org/D8082
2020-06-19UI: Drag and Drop Constraints, Layout UpdatesHans Goudey
This patch implements the list panel system D7490 for constraints. In this case the panels are still defined in Python. The layouts are also updated to use subpanels and the a more organized single column layout. There may be more tweaks necessary for the layouts. Reviewed By: Severin, billreynish, Mets Differential Revision: https://developer.blender.org/D7499
2020-06-19EEEVEE: Object Motion Blur: Initial ImplementationClément Foucault
This adds object motion blur vectors for EEVEE as well as better noise reduction for it. For TAA reprojection we just compute the motion vector on the fly based on camera motion and depth buffer. This makes possible to store another motion vector only for the blurring which is not useful for TAA history fetching. Motion Data is saved per object & per geometry if using deformation blur. We support deformation motion blur by saving previous VBO and modifying the actual GPUBatch for the geometry to include theses VBOs. We store Previous and Next frame motion in the same motion vector buffer (RG for prev and BA for next). This makes non linear motion blur (like rotating objects) less prone to outward/inward blur. We also improve the motion blur post process to expand outside the objects border. We use a tile base approach and the max size of the blur is set via a new render setting. We use a background reconstruction method that needs another setting (Background Separation). Sampling is done using a fixed 8 dithered samples per direction. The final render samples will clear the noise like other stochastic effects. One caveat is that hair particles are not yet supported. Support will come in another patch. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D7297
2020-06-18Cleanup: redundant parenthesisCampbell Barton
2020-06-17GPencil: Fix unreported Vertex Opacity Overlay not workingAntonio Vazquez
This values was not working because was removed by error in refactor. Reviewed By: mendio, fclem Differential Revision: https://developer.blender.org/D8061
2020-06-17Fix T77914: Blender Crashes if viewport is changed manually while having ↵Germano Cavalcante
loop cut selected The selection engine requires a viewport.
2020-06-17Cleanup: Rearrange SELECTID_Context members for better alignmentGermano Cavalcante
2020-06-16Fix T77803: IK Degrees of freedom drawing glitchJeroen Bakker
IK degrees of freedom is rendered using wires and a solid sphere. The solid used the wireframe drawing what resulted into drawing glitches. This patch adds a new shader to draw the solid shape. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D8044
2020-06-15Fix T77496: Bones Custom Shapes Wires not drawnJeroen Bakker
Lines loose extraction cannot happen on the fly as the render data isn't complete. This patch will do the lines loose subbuffer extraction as a simple task and not on the fly. This patch introduces 2 sub-types of tasks that are executed single threaded. `EXTRACT_MESH_EXTRACT` would do the extraction using Mesh/BMesh geometry. `EXTRACT_LINES_LOOSE` creates the `lines_loose` subbuffer from already cached `lines` IBO. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D7964
2020-06-15Fix T77342: Fail to draw loose edgesJeroen Bakker
The underlying issue is that the loose edge extraction cannot be threaded. This patch will extract the loose edges during initialization of the render mesh data. When working on this patch the mesh_render_data_update was split into multiple functions to identify what part was failing. These functions would also help us with debugging. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D7962
2020-06-15Fix Memory Leak introduced by Draw Manager ThreadingJeroen Bakker
The memory leak is noticeable when using custom bone shapes. When using custom bone shapes objects could be extracted twice. Where the second extraction can overwrite data created by the first extraction what causes the memory leak. Options that have been checked: 1. Use two task graphs phases. One for normal extraction (DST.task_graph) and the other one will handle extractions that require blocking threads. 2. Keep a list of all objects that needs extraction and only start extraction when all objects have been populated. The second would slow performance as the extraction only happens when all objects have been populated. In the future we might want to go for the second option when we have the capability to render multiple viewports with a single populate. As this design isn't clear this patch will implement the first option. Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D7969
2020-06-15Fix curve handle color ID displayCampbell Barton
Regression in 49f59092e7c8c caused all handles to display using the 'aligned' theme color. Arrange flags to fix this, add assert to avoid this happening again. Also rename flag so it's use is clearer.
2020-06-12DRW: Avoid undefined behavior when running multiple iterationClément Foucault
This was caused by DST.dupli_origin not being reset properly. This had not effect in master but has effect in EEVEE motion blur branch.
2020-06-12Cleanup: split deform functions that take target object-dataCampbell Barton
Prefer meaningful function names over redundant NULL arguments. Also clarify variable names as it wasn't obvious the object-data is part of the object target.
2020-06-10Fix T77195: Crash with edit-mesh viewport measurements enabledCampbell Barton
Simplify looping over faces & tessellation data. Regression in 6526c3ced8b5, the index accessed wasn't valid.
2020-06-09Cleanup: Move pointcache dna to separate fileJacques Lucke
Reviewers: brecht Differential Revision: https://developer.blender.org/D7965
2020-06-09Workbench: Fix missing NULL pointer checkClément Foucault
2020-06-08Workbench: Use eGPUSamplerState to change texture sampling behaviorClément Foucault
This removes some fragment shader hacks and improve the support of different repeat & filtering modes. This fix T77453 Image texture not repeating in viewport
2020-06-05Fix T77335: Circle Select tool selects faces perpendicular to the viewGermano Cavalcante
Internally the face dots are being drawn when the Edges option of the overlay (not the selection mode) is disabled.
2020-06-05Cleanup: spellingCampbell Barton
2020-06-04DRW: Fix T77370: Redundant anti aliasing/blur effectClément Foucault
2020-06-04Cleanup: DRW: Add comment and remove bitfields.Clément Foucault
2020-06-04GPUShaderInterface: Add Builtin Uniform blocks queryClément Foucault
This makes the query of theses mandatory uniforms faster.
2020-06-04Fix T77315 Overlay: Selection Highlighting not working with complex sceneClément Foucault
Was caused by a UBO bind to the wrong slot.
2020-06-04Fix error in recent fix for T77290Campbell Barton
2020-06-03Fix T77290: Crash displaying vertex colors in edit modeCampbell Barton
Regression from deaff945d0b9, follow logic from d98ae27f02c794a.
2020-06-03DRW: Always unbind texture after drawingClément Foucault
This fix issues with the image editor
2020-06-03GPUMaterial: Add support for different sampler state per image samplerClément Foucault
This bridge between the new sampler state support from GPUTexture and draw material handling. The Sampler State is just the one from the texture for now. No change in logic.
2020-06-03GPUTexture: Add support for binding textures with custom sampler statesClément Foucault
2020-06-03Fix T77156: GPencil view layer filter by layer not workingAntonio Vazquez
This was removed by error during the refactor done in 2.83. Differential Revision: https://developer.blender.org/D7909 Reviewers: @fclem
2020-06-03Cleanup: DRW: Remove support for ModelViewProjectionMatrixClément Foucault
This has been replace by manual model+viewproj transform inside the shader.
2020-06-03Cleanup: DRW: Remove support for builtin matricesClément Foucault
2020-06-03DRW: Remove use of builtin matrices and replace by common_view_libClément Foucault
2020-06-03Cleanup: DRW: Remove builtin 3D only shader usageClément Foucault
2020-06-03Cleanup: DRW: Remove persistent uniform functionsClément Foucault
2020-06-03Fix domain voxel size indicator drawingPhilipp Oeser
Use already calculated cell_size directly. Part of T77030.
2020-06-03Cleanup: GPUTexture: Remove uneeded bindClément Foucault
2020-06-03DRW: Remove automatic bind locations and use hardcoded locations for texturesClément Foucault
This cleanup use the recent changes in shader interface to allow querying the binding location a texture should use. This should aleviate all issue we have with texture state change recompiling the shaders at drawtime. All binds are now treated like persistent binds and will stick until a new shading group bind a different shader. The only difference is that you can still change it with a new subgroup or same shader shgroup. Since unbinding can be heavy we only do it when using `--debug-gpu`.
2020-06-02Fix T76196: Curve Display hides wires as soon as any part has faces [duePhilipp Oeser
to filling/extrude/etc] Caused by rB6da097136cf4. The file in the report has some parts of the curve object generate faces [due to success in filling] and some others dont [where filling isnt possible]. rB6da097136cf4 disabled the wires/curves drawing whenever any faces would be generated (but the only way to see all wires was to set the Fill Mode to None then). So now only skip the wires/curves drawing if we are _not_ in wireframe viewport shading and the object's viewport display options is above 'WIRE'. This is an alternative fix to D7594 (and I think the better alternative, thx @stevewarner suggesting this). Maniphest Tasks: T76196 Differential Revision: https://developer.blender.org/D7874
2020-06-02Fix: Crash Edit Mode Selection RCSJeroen Bakker
2020-06-02Fix: Crash When Selecting In Edit ModeJeroen Bakker
TaskGraph wasn't initialized in `DRW_draw_select_id`
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-06-02Cleanup: GPU: Remove GPU_shaderinterface_uniform_ensureClément Foucault
2020-06-02DRW: Remove defered uniform creationClément Foucault
2020-06-02DrawManager: Graph Task SchedulingJeroen Bakker
This patch uses a graph flow scheduler for creating all mesh batches. On a Ryzen 1700 the framerate of Spring/020_02A.anim.blend went from 10 fps to 11.5 fps. For each mesh where batches needs to be updated a sub-graph will be added to the task_graph. This sub-graph starts with an extract_render_data_node. This fills/converts the required data from Mesh. Small extractions and extractions that can't be multi-threaded are grouped in a single `extract_single_threaded_task_node`. Other extractions will create a node for each loop exceeding 4096 items. these nodes are linked to the `user_data_init_task_node`. the `user_data_init_task_node` prepares the userdata needed for the extraction based on the data extracted from the mesh. Note: If the `lines` and `lines_loose` are requested, the `lines_loose` sub-buffer is created as part of the lines extraction. When the lines_loose is only requested the sub-buffer is created from the existing `lines` buffer. It is assumed that the lines buffer is always requested before or together with the lines_loose what is always the case (see `DRW_batch_requested(cache->batch.loose_edges, GPU_PRIM_LINES)` in `draw_cache_impl_mesh.c`). Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D7618