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
2019-08-14Mesh Batch Cache: Refactor + MultithreadClément Foucault
For clarity sake, the batch cache now uses exclusively per Loop attributes. While this is a bit of a waste of VRAM (for the few case where per vert attribs are enough) it reduces the complexity and amount of overall VBO to update in general situations. This patch also makes the VertexBuffers filling multithreaded. This make the update of dense meshes a bit faster. The main bottleneck is the IndexBuffers update which cannot be multithreaded efficiently (have to increment a counter and/or do a final sorting pass). We introduce the concept of "extract" functions/step. All extract functions are executed in one thread each and if possible, using multiple thread for looping over all elements. Reviewed By: brecht Differential Revision: http://developer.blender.org/D5424
2019-08-14Cleanup: clang-format, sort structs & cmake filesCampbell Barton
2019-08-12Cleanup: DRW manager: Move `select_buffer.c` utilities out of the selection ↵mano-wii
engine internals
2019-08-07Edit Mesh Selection: Move ED_view3d_select_ functions to bf_drawmano-wii
It is easier to deal with private values of the DRW_select engine and gives room for improvement. Reviewers: campbellbarton, fclem Differential Revision: https://developer.blender.org/D5415
2019-08-04Cleanup: Fix eeve_lut arrays being duplicated in blender binary.Lazydodo
Both eevee_materials.c and workbench_deferred.c include eeve_lut.h which has its arrays marked as static leading to the blue_noise array being embedded into our binary twice. This change takes the arrays out of the header and properly marks them as const since they are lookup tables and should not be written to. Reviewers: fclem, brecht Differential Revision: https://developer.blender.org/D5346
2019-07-31Cleanup: Rearrange Select Engine into multiple filesmano-wii
2019-07-303D View: Move selection API to a Selection engine.mano-wii
This commit moves the API of selecting faces, vertices and edges to a DRW manager engine. Reviewers: campbellbarton, fclem Subscribers: jbakker, brecht Differential Revision: https://developer.blender.org/D5090
2019-06-21Fix T62876: Camera Background ImagesJeroen Bakker
Migrate old legacy code to the draw mamager/object mode. The old legacy version did not work with wireframe. By migrating the code to modern draw manager code we have mode control on the drawing process. Still background images do not work with OIT, the cause seems to be that the transparent pixels are treated as background pixels. Also There are some artifacts when working with Holdouts and DoF, this is because the draw engines do not pass the correct alpha values. Reviewers: fclem, brecht Differential Revision: https://developer.blender.org/D4638
2019-06-21Fix T65745: Bone Selection X-Ray Drawing.Jeroen Bakker
The Pose Bone Selection used normal matric multiplication, but that mismatched the Depth buffer from all draw engines. They used the optimized matrices from common_view_lib. This change will use the optimized version, so the depth buffer matches and the render artifacts would be correct. Please note that bone selection is not using shcfg and therefore render clipping is still off. Reviewed By: fclem Differential Revision: https://developer.blender.org/D5100
2019-06-05TexturePaint: Missing Texture Depth TestJeroen Bakker
Depth testing was off as it used the precomputed ModelView matrix. As draw engines currently use a different approach the depth was sometimes a bit off making the color disappear. This change will use a different vertex shader that will write the correct depth. I expected the same change to be needed in the bone selection overlay but was not able to reproduce it. Reviewed By: fclem Maniphest Tasks: T64615 Differential Revision: https://developer.blender.org/D5006
2019-06-04Eevee: Merge shadow map processing into one drawcall per lightClément Foucault
This removes a lot of framebuffer configuration and binding.
2019-05-08DRW: Move all batch request functions to own headerClément Foucault
This is in order to using BLI_INLINE for thoses functions and keep headers cleany separated.
2019-04-25Overlay: Mesh AnalysisJeroen Bakker
Enabling the drawing of the mesh analysis overlay. Currently the settings are part of the scene toolsettings. What makes sense, for 3d printing, but does not fit well with the per viewport blender 2.80 overlays. Reviewers: brecht, fclem Differential Revision: https://developer.blender.org/D4707
2019-04-24Cleanup: sort CMake include pathsCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-16CMake: add libs needed for gtestsCampbell Barton
2019-04-16CMake: add library deps to CMakeLists.txtCampbell Barton
Tested to work on Linux and macOS. This will be enabled once all platforms are verified. See D4684
2019-04-14CMake: prepare for BLENDER_SORTED_LIBS removalCampbell Barton
No functional change, this adds LIB definition and args to cmake files. Without this it's difficult to migrate away from 'BLENDER_SORTED_LIBS' since there are many platforms/configurations that could break when changing linking order. Manually add and enable WITHOUT_SORTED_LIBS to try building without sorted libs (currently fails since all variables are empty). This check will eventually be removed. See T46725.
2019-04-06DRW: Opti: Fix hotspot in DRW_mesh_batch_cache_get_surface_shadedClément Foucault
The hotspot was generated by mesh_cd_layers_type_overlap who was testing way more data than it should have. Here we reduce the whole CD layer mask to a 32bit bitflag that is easily or'ed and tested. Bonus point: We use atomic operation to merge the mask in order to allow future multi-threading. (this was a TODO) In the scene attached to T58188 this removes 5% of CPU time.
2019-02-27Cleanup: file rename lamp -> lightCampbell Barton
2019-02-14DRW: de-duplicate vertex & weight paint enginesCampbell Barton
These were almost exact duplicates, use one engine for drawing both kinds of vertex color.
2019-02-06GPU: refactor clipped drawing from DRW into GPUCampbell Barton
Needed to fix T61196, supporting clipped back-buffer in the 3D view which is done outside the draw module. It was also inconvenient having DRW_shader_* versions of GPU_shader_* API calls. - Clipping distances are now supported as a shader configuration for builtin shaders. - Add shader config argument when accessing builtin shaders. - Move GPU_shader_create_from_arrays() from DRW to GPU.
2019-02-05Edit Mesh: Add workaround for system that does not support wide linesClément Foucault
This adds a new geometry shader (specific to edit mesh for now) that reproduces the effect of glLineWidth > 1.0, since this is not supported on all platform. This fix could be generalized to other shaders later.
2019-02-05Edit Mesh: Remove old unused code and filesClément Foucault
Cleanup after recent refactor.
2019-02-05Cleanup: remove contributors for CMake filesCampbell Barton
Following removal from C source code. See: 8c68ed6df16d8893
2019-01-25Workbench: Depth Of Field: Initial CommitClément Foucault
The algorithm used is borrowed from : http://tuxedolabs.blogspot.com/2018/05/bokeh-depth-of-field-in-single-pass.html This makes it possible to have a decent blur for foreground over defocused background in one pass only. The algorithm is using a gather approach that is much faster than the scatter approach used in Eevee. This makes it possible to have custom bokeh shapes (not implemented yet) which would be impossible with a separable gaussian technique. The blur is done in 2 steps. The first one define the shape of the bokeh and the second that fill the undersampling. A downsample max-CoC tile texture speed up the gathering process.
2019-01-25Cleanup: sort cmake file listsCampbell Barton
2019-01-25Cleanup: remove duplicated shaders that only added clipping checksCampbell Barton
Originally I wanted to avoid adding draw manager specific ifdef's all over generic shaders however this isn't needed in so many places. Also there are shaders that are only used by the draw manager so duplicating them only to have the original unused doesn't make sense.
2019-01-24DRW: API for own versions of builtin GPU shadersCampbell Barton
DRW_shader_get_builtin_shader can replace GPU_shader_get_builtin_shader when we need to support clipping. Use this for loose point & wire drawing in object mode, clips edges in lattice edit mode.
2019-01-21Fix clipping shaders with some AMD/Intel driversCampbell Barton
Caused: error: unsized array index must be constant Use hard coded number of clipping planes, copying the 4th to 5 & 6 when only 4 are used.
2018-12-17Mesh Batch Cache: Port Texture paint wires to new batch requestClément Foucault
2018-12-14Curve Batch Cache: Rework Implementation to use new batch requestClément Foucault
Shaded triangles are not yet implemented (request from gpumaterials). This also changes the mechanism to draw curve normals to make it not dependant on normal size display. This way different viewport can reuse the same batch.
2018-12-11Object Mode: Make point clouds a bit less like uniform blobsClément Foucault
Also this display is optimized. It does not use blending and pixel discard. Working with scanned data should be more pleasant with this. A better option would be to use gl_FragDepth to have a better sense of volume but this discards early depth test.
2018-12-07GPU: Remove EXT and add assertClément Foucault
Some drivers accept shaders with only vertex stage, but some just silently fails.
2018-12-03Workbench: Make object ID pass optionnalClément Foucault
We separate the background and foreground shading passes to be able to make the object id pass optionnal if we don't need it. This saves a bit more memory. Also not clearing all rendertargets saves some GPU time too.
2018-11-26GP: New Blend Layers functionalityAntonioya
Now it's possible define the blend mode between layers including the option to clamp the layer using underlying layers. Also a new Simplify option has been added to disable blend layers.
2018-11-26Workbench: Add Curvature overlay for better visibility of surface detail for ↵Lukas Stockner
e.g. sculpting The approach is fairly simple, just apply an edge detection filter to the view normal and scale the brightness based on that. The overlay is disabled at object boundaries to avoid dark lines around objects. Generally, this implementation follows the proposal of @monio at https://blender.community/c/rightclickselect/J9bbbc. The changes are: - Dynamic filter radius (on high-DPI displays, a radius of two is used) - Options to reduce the strength of both ridges and valleys - Tweaked function for the strength reduction (the original method actually had a local maximum, resulting in a brighter line inside valleys) - Multiplication for blending instead of overlay, which doesn't work reliably with scene-referred intensities - Renamed to point out the distinction between it and the SSAO-based cavity overlay Reviewers: jbakker Reviewed By: jbakker Subscribers: billreynish, manitwo, linko, monio Differential Revision: https://developer.blender.org/D3617
2018-11-16Fix crash when rendering a scene first and then goes to eevee preview modes ↵mano-wii
and cleanup The crash only occurs with Intel 3rd generation GPUs. It occurs because the program needs to be used at least once in the opengl context in which it is created.
2018-10-12Edit Mesh: Refactor edit mesh drawingClément Foucault
This decouple the vertex display from the face+edges. This is to reduce the number of triangles required to fix the edges artifacts (aliasing) and increase viewport reactivity when not actively navigating (ie. mouse scroll). Also it makes all vertices visible (not cut-off) even when navigating. However it makes the navigation drawing a bit slower because it has to render twice. Also add a depth bias to the wires to avoid depth fighting when previewing final mesh (modifiers applied).
2018-10-11GP: New Glow Shader FX (wip)Antonioya
New shader to simulate a glow of the color. The glow can be generated by luminance threshold or using a selection color.
2018-10-03Pose Mode: Add back IK Degrees of freedom displayClément Foucault
2018-09-30GP: implement Shadow FX (wip)Antonioya
Initial implementation of effect to create a drop shadow of the strokes
2018-09-27Implement a new dedicated weight painting shader.Jeroen Bakker
Move the weight paint drawing to the fragment shader. The shader uses a texture that uses the U.coba_weight custom color band, or an internal color band. In addition to actual weights, the shader has to display two alert colors: missing vertex group, and zero weight. The zero weight alert has to be blended with regular weight colors, so that a single alert vertex surrounded by weighted ones is still visible. Reviewers: campbellbarton, fclem Differential Revision: https://developer.blender.org/D3675
2018-09-26Cleanup: Edit Surface & Curve engines unused codeClément Foucault
2018-09-26Curve Edit: Cleanup/Improve/Fix handles drawingClément Foucault
Now handles are drawn using index buffer instead of duplicating memory requirement. Also make use of shader tricks to draw handles antialiased, and respond to UI scalling. Make vertex point match edit mesh vertex size.
2018-09-06CMake: add missing headersCampbell Barton
2018-09-05Fix T56692: The edges are not highlighted in Mark Freestyle EdgeClément Foucault
This was not ported yet.
2018-08-24Sculpt: Optimize Mask Overlay drawingClément Foucault
* Remove support for diffuse color in the pbvh buffers. * Upload raw data to GPU. * Only draw nodes that have mask data when drawing the overlay. This should fix T56466
2018-08-17Object Mode: Use same empty (arrow) drawing as the bone axes displayClément Foucault
2018-08-17Overlays: Support for wireframes and edit mode overlay on xray objectsClément Foucault