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-09-04Fix T63755: Area Stretching OverlayJeroen Bakker
Support for UV Stretching overlay during multi object editing. The VBO now holds the ratios per fase. In the shader these ratios will be compared against the global ratios. The global rations are created from all selected objects. The current implementation does not fit well with the draw module. The plan is to move the drawing of other spaces towards the draw manager what leads to a better fit. Currently the details on this solution is unclear but this requirement will become an attentionpoint in the future design. Reviewed By: fclem Differential Revision: https://developer.blender.org/D5665
2019-08-25Cleanup: redundant struct declarationsCampbell Barton
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-05-08DRW: Make batch validation run first during iterationClément Foucault
This reduces the cost of querying the batches to the batch cache.
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-05-04Cleanup: Remove unused code in sculpt_mode, workbench and draw managerClément Foucault
2019-04-30DRW: Add debug utility for batch cache requestsClément Foucault
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-19DRW: Add batch garbage collectionClément Foucault
This is only working for shading batches for the moment and only if some Custom data layer are not needed anymore. The collection rate is hardcoded at 60 sec but could be exposed to the user. This system can be extended and discard most unused batches in the future. This commit is in prevision of removing BKE_MESH_BATCH_DIRTY_SHADING when changing shader parameters.
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-03-28DrawManager: Add Edge Detection To DisplayListsJeroen Bakker
Objects that internally uses DispList do not cast shadow in the workbench. Their outline is also not visible in object mode. The reason for this is that edge detection was not implemented for Display Lists. This patch will implement the edge detection. Reviewed By: fclem Maniphest Tasks: T62479 Differential Revision: https://developer.blender.org/D4605
2019-03-01Fix crash with wireframe on highpoly curves on some AMD gpus.mano-wii
Differential Revision: https://developer.blender.org/D4433
2019-02-25Fix T61801: Wireframes on curves not workingClément Foucault
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-05Edit Mesh: Fix some problem with new implementationClément Foucault
- Add manual depth offset to vertices and edges. - Revert to plain edge decoration. - Fix active edge coloring. - Remove active face display if not in face selection mode. - Add wide line support.
2019-02-05Edit Mesh: Refactor Edit cage drawing to use old style drawingClément Foucault
This is work in progress. Look is not final. This align data VBO data structure used for edti cage drawing to the one use for normal drawing. We no longer use barycentric coords to draw the lines an just rasterize line primitives for edge drawing. This is a bit slower than using the previous fast method but faster than the "correct" (edge artifact free) method. This also make the code way simpler. This also makes it possible to reuse possible and normal vbos used for shading if the edit cage matches the This also touches the UV batch code to share as much render data as possible. The code also prepare for edit cage "modified" drawing cage (with modifier applied) but is not enabled since selection and operators does not work with modified cage yet.
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-28Cleanup: sort forward declarations of enum & structCampbell Barton
Done using: source/tools/utils_maintenance/c_sort_blocks.py
2019-01-23Cleanup: add BEGIN/END to GPL headersCampbell Barton
2019-01-11UVEdit: Port texpaint_loop_wire to batch requestClément Foucault
This removes code duplication and put an end to the old "create at request" batch creation. Also it uses the same vbo as the uv layer used for shading. Reducing VRAM usage. Also fixes the modified uv display in uv edit mode.
2019-01-11UVEdit: Port batches to batch requestClément Foucault
This is in order to allow more spaces to have their batches created at the same time and sharing the batches. This is part of the effort fo making the drawing code more optimized. This commit however should not introduce any difference. This commit bypass the aspect ratio correction for angle stretch display but this should be fixed in the next commit.
2019-01-11Mesh Selection: Port to batch cache requestClément Foucault
This makes it more future proof and remove baked id offset inside the vbos. Instead we add the offset as a uniform. This makes it possible to reuse the vbos instead of discarding them all the time. Also using batch request may reduce batches creation time.
2019-01-11Mesh Batch Cache: Put context evaluation out of batch cacheClément Foucault
This is in order to be able to call DRW_mesh_batch_cache_create_requested outside of the draw manager
2018-12-21Cleanup: macro hygiene, line lengthCampbell Barton
2018-12-18DRW: Cleanup / Renaming of mesh batch cache functionsClément Foucault
THis is in order to avoid the jungle of names being different at each step of the API. Also removes some unused functions.
2018-12-18Mesh Batch Cache: Port vertex paint surface to batch requestClément Foucault
2018-12-18Mesh Batch Cache: Port weight paint surface to batch requestClément Foucault
2018-12-18Weight Paint Overlay: Refactor wire drawingClément Foucault
This reduce the number of batch/data needed. Stores a select/visiblee flag inside the vert/loop normals.
2018-12-17Mesh Batch Cache: Port Texture paint wires to new batch requestClément Foucault
2018-12-17Mesh Batch Cache: Optimization & Refactor shaded surface supportClément Foucault
This now only upload data per loops to the GPU, making use of index buffer to draw polygon. This make use of the vertex cache, speed up renders and saves a lot of vram. Update performance is also slightly faster and can even be improved further by updating only uvs or vcol independently. This commits breaks texture paint batches. It will be added back in another commit.
2018-12-14Curve Batch Cache: Add support for loose edges and curve/surf modifierClément Foucault
Fixes T58298 Nurbs circle and curve dont draw in objectmode Fixes T58107 Modified curves/surfaces/fonts do not show their eval mesh
2018-12-14Curve Batch Cache: Add back support for shaded geometryClément Foucault
This changes a bit the batches data structure. Instead of using one vbo per material we use one for all material and use index buffers for selecting the correct triangles. This is less optimized than before but has potential to become more optimized by merging the wireframe data vbo into the shading one. Also the index buffers are not strictly necessary and could be just ranges inside the buffer. But this needs more adding things inside GPUIndexBuf.
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-10DRW: Batch Cache: Mesh: Port edit mesh batches to batch request methodClément Foucault
This also do some renaming/cleanups.
2018-12-10DRW: Batch Cache: Add batch request systemClément Foucault
This makes it possible for engines to ask for batches and only fill their data after all engine populate functions have run. This means that, when creating the batches data we already know all the batches that are needed for this redraw and the needed data. This allows for less redundant data preparation and better attrib masking. Ideally, we should run all viewports populate function before executing the batch construction but this is not the scope of this patch. Conversion from the old request method will be progressive and both can coexist (see uses of mesh_create_pos_and_nor()).
2018-12-07DRW: Remove the use of GPUTexture buffers for edit wire renderingClément Foucault
See previous commit for detail as why.
2018-12-07DRW: Rework wireframe overlay implementationClément Foucault
The shader is way simpler and run way faster on lower end hardware (2x faster on intel HD5000) but did not notice any improvement on AMD Vega. This also adds a few changes to the way the wireframes are drawn: - the slider is more linearly progressive. - optimize display shows all wires and progressively decrease "inner" wires intensity. This is subject to change in the future. - text/surface/metaballs support is pretty rough. More work needs to be done. This remove the optimization introduced in f1975a46390a5bf85bb7012375f9bc1e761fc516. This also removes the GPU side "sharpness" calculation which means that animated meshes with wireframe display will update slower. The CPU sharpness calculation has still room for optimization. Also it is not excluded that GPU calculation can be added back as a separate preprocessing pass (saving the computation result [compute or feedback]). The goal here was to have more speed for static objects and remove the dependency of having buffer textures with triangle count. This is preparation work for multithreading the whole DRW manager.
2018-12-04Wireframe: Optimization: Only draw triangles that have edgesClément Foucault
This only happens after a certain threshold. We sort triangles into 2 bins (start and end of the buffer) based on a threshold and just draw the start bin if the wireframe slider is low enough. This optimization is disabled for deformed meshes. This should help resolve (to some extent) T58188.
2018-11-27DRW: Implement Hair Weight drawingClément Foucault
Fixes T57931 Particle weight edit mode is not supported. There is a bug that prevent refresh of the toolsettings on which is based the weight / non-weight display selection (see T58086).
2018-11-26Viewport: implement hiding faces in paint modes.Alexander Gavrilov
In 2.79 hiding works in paint modes with selection enabled, so it is a missing feature. This implements it in texture paint overlays and in workbench base shading. Reviewers: fclem Differential Revision: https://developer.blender.org/D3989
2018-11-23DRW: Support Wireframe for metaball objectsClément Foucault
2018-11-23DRW: Support Wireframe for cruve/surface/text objectsClément Foucault
2018-10-15Edit Mesh: Fix missing loop normal displayClément Foucault
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-11DRW: add ability to skip drawing verticesCampbell Barton
2018-10-01Edit UVs: Refactor drawing Shadow UV in Image EditorClément Foucault
Currently it's not showing the subdivided mesh (if there is a subdiv mod) and there is some sync issue if there is multiple uv image space opened. But thoses will be tackled later on. The purpose of this commit is to fix the overflow issue of IMM and speed issue.
2018-10-01Edit UVs: Refactor drawing Edit UV in Image EditorClément Foucault
NOTE: This commit only concern edit UVs and not the "shadow" mesh displayed when texture painting. This will be address in a future commit. We now cache the uv mesh in the mesh batch cache and only reupload data on changes. Update could be more granular (and a bit faster) but it's not our main concern ATM. This should fix problem caused by the IMM api used to draw large meshes. This makes performance skyrocket compared to previous implementation. There is still a big CPU bottleneck when not in sync selection mode but it is not related to the drawing function directly.
2018-09-26Fix misleading field naming.Alexander Gavrilov
This is not any kind of length, it is the number of true values.
2018-09-26Cleanup: naming of DRW mesh weight APICampbell Barton