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-09-05BLI: Math: Add equals_v3v3_intClément Foucault
2020-09-04Cleanup: fix compiler warnings for MSVCBrecht Van Lommel
2020-09-02Make rigidbody simulation handle animated objects gracefullySebastian Parborg
The animated objects was not updated for each internal substep for the rigidbody sim. This would lead to unstable simulations or very annoying clipping artifacts. Updated the code to use explicit substeps and tie it to the scene frame rate. Fix T47402: Properly updating the animated objects fixes the reported issue. Reviewed By: Brecht, Jacques Differential Revision: http://developer.blender.org/D8762
2020-08-30BLI_math_vector: Add equals_v4v4_intClément Foucault
2020-08-28Merge newboolean branch into master.Howard Trickey
This is for design task T67744, Boolean Redesign. It adds a choice of solver to the Boolean modifier and the Intersect (Boolean) and Intersect (Knife) tools. The 'Fast' choice is the current Bmesh boolean. The new 'Exact' choice is a more advanced algorithm that supports overlapping geometry and uses more robust calculations, but is slower than the Fast choice. The default with this commit is set to 'Exact'. We can decide before the 2.91 release whether or not this is the right choice, but this choice now will get us more testing and feedback on the new code.
2020-07-28Fix precision issues in 'interp_weights_poly_v2'Germano Cavalcante
These precision issues were evident in corrected uvs when the option `"Correct Face Attributes"` is enabled.
2020-05-01Cleanup: improve readability for color assignmentCampbell Barton
2020-03-04BLI_math: inline clamp functionsCampbell Barton
These are used in some per-pixel operations such as image sampling and color conversion, where replacing existing macro use could add overhead.
2020-02-11Sculpt: Split normal radius and area radiusPablo Dobarro
This enables an extra layer of control in the sculpt brushes. For now it is enabled only in Scrape, but it should work in all brushes (like normal radius). In the future it may also be enabled in other brushes. You can tweak in this property in the scrape brush to achieve a much better behavior when working on curve surfaces and control how much volume you want to trim. In most cases, it also fixes the bug where the brush keeps trimming in the same area without disabling accumulate. It should be possible to fix some other artifacts in other brushes by tweaking this default property. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D5993
2020-01-16Fix T73133: UDIM texture count in Eevee is limited by OpenGLLukas Stockner
Based on @fclem's suggestion in D6421, this commit implements support for storing all tiles of a UDIM texture in a single 2D array texture on the GPU. Previously, Eevee was binding one OpenGL texture per tile, quickly running into hardware limits with nontrivial UDIM texture sets. Workbench meanwhile had no UDIM support at all, as reusing the per-tile approach would require splitting the mesh by tile as well as texture. With this commit, both Workbench as well as Eevee now support huge numbers of tiles, with the eventual limits being GPU memory and ultimately GL_MAX_ARRAY_TEXTURE_LAYERS, which tends to be in the 1000s on modern GPUs. Initially my plan was to have one array texture per unique size, but managing the different textures and keeping everything consistent ended up being way too complex. Therefore, we now use a simpler version that allocates a texture that is large enough to fit the largest tile and then packs all tiles into as many layers as necessary. As a result, each UDIM texture only binds two textures (one for the actual images, one for metadata) regardless of how many tiles are used. Note that this rolls back per-tile GPUTextures, meaning that we again have per-Image GPUTextures like we did before the original UDIM commit, but now with four instead of two types. Reviewed By: fclem Differential Revision: https://developer.blender.org/D6456
2019-12-12Add support for tiled images and the UDIM naming schemeLukas Stockner
This patch contains the work that I did during my week at the Code Quest - adding support for tiled images to Blender. With this patch, images now contain a list of tiles. By default, this just contains one tile, but if the source type is set to Tiled, the user can add additional tiles. When acquiring an ImBuf, the tile to be loaded is specified in the ImageUser. Therefore, code that is not yet aware of tiles will just access the default tile as usual. The filenames of the additional tiles are derived from the original filename according to the UDIM naming scheme - the filename contains an index that is calculated as (1001 + 10*<y coordinate of the tile> + <x coordinate of the tile>), where the x coordinate never goes above 9. Internally, the various tiles are stored in a cache just like sequences. When acquired for the first time, the code will try to load the corresponding file from disk. Alternatively, a new operator can be used to initialize the tile similar to the New Image operator. The following features are supported so far: - Automatic detection and loading of all tiles when opening the first tile (1001) - Saving all tiles - Adding and removing tiles - Filling tiles with generated images - Drawing all tiles in the Image Editor - Viewing a tiled grid even if no image is selected - Rendering tiled images in Eevee - Rendering tiled images in Cycles (in SVM mode) - Automatically skipping loading of unused tiles in Cycles - 2D texture painting (also across tiles) - 3D texture painting (also across tiles, only limitation: individual faces can not cross tile borders) - Assigning custom labels to individual tiles (drawn in the Image Editor instead of the ID) - Different resolutions between tiles There still are some missing features that will be added later (see T72390): - Workbench engine support - Packing/Unpacking support - Baking support - Cycles OSL support - many other Blender features that rely on images Thanks to Brecht for the review and to all who tested the intermediate versions! Differential Revision: https://developer.blender.org/D3509
2019-08-29Move math and vector double routines into blenlib from delaunay codeHoward Trickey
2019-08-20BLI: double version of some math functions.YimingWu
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-18Cleanup: remove compare_len_squared utilityCampbell Barton
There isn't any advantage to this over comparing the squared length.
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-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-20Cleanup: remove all BLI_utiledefines' ugly vectorial macros.Bastien Montagne
Not only were those often making doublons with already existing BLI_math's stuff, but they were also used to hide implicit type conversions... As usual this adds some more exotic inlined vector functions (one of the rare cases where I really miss C++ and its templates... ;) ).
2019-01-18Math: Make it possible to use vector for both input and outputSergey Sharybin
Avoids nasty code all over where such math is required, and compilers can easily deal with such situation. Don't prefer questionable micro-optimization which comes with a cost of nasty actual logic code.
2018-11-17BLI: Math: Add normal_float_to_short_v4Clément Foucault
2018-11-04Merge branch 'master' into blender2.8Campbell Barton
2018-11-01Fix T57529: 2D image paint fill tool not taking into account alpha.Brecht Van Lommel
2018-10-01BLI: Add mul_v2_v2v2 functionClément Foucault
2018-09-27UI: draw mono icons with button type text color, instead of area text color.Brecht Van Lommel
2018-07-31New Grease Pencil object for 2D animationAntonioya
This commit merge the full development done in greasepencil-object branch and include mainly the following features. - New grease pencil object. - New drawing engine. - New grease pencil modes Draw/Sculpt/Edit and Weight Paint. - New brushes for grease pencil. - New modifiers for grease pencil. - New shaders FX. - New material system (replace old palettes and colors). - Split of annotations (old grease pencil) and new grease pencil object. - UI adapted to blender 2.8. You can get more info here: https://code.blender.org/2017/12/drawing-2d-animation-in-blender-2-8/ https://code.blender.org/2018/07/grease-pencil-status-update/ This is the result of nearly two years of development and I want thanks firstly the other members of the grease pencil team: Daniel M. Lara, Matias Mendiola and Joshua Leung for their support, ideas and to keep working in the project all the time, without them this project had been impossible. Also, I want thanks other Blender developers for their help, advices and to be there always to help me, and specially to Clément Foucault, Dalai Felinto, Pablo Vázquez and Campbell Barton.
2018-07-20Merge branch 'master' into blender2.8Bastien Montagne
2018-07-19Resolve the opposite vector ambiguity in Damped Track constraint.Alexander Gavrilov
Damped Track by specification attempts to arrive at the desired direction via the shortest rotation. However with opposite vectors there are infinitely many valid 180 degree rotations. Currently it gives up and does nothing. I think that it would be more reasonable to resolve the ambiguity arbitrarily, so that Damped Track won't have a weird dead zone. To make it more predictable I use a local axis. In addition, the singularity area vicinity has some floating point precision problems that result in significant jitter. This applies workarounds for two causes of instability. Differential Revision: https://developer.blender.org/D3530
2018-05-15Cleanup: compiler warnings, use constCampbell Barton
2017-11-14BLI: sync changes from 2.8Campbell Barton
2017-05-15Mesh Batch Cache: get rid of the ORCO VBO data, and reconstruct it in shader.Clément Foucault
With only one MADD instruction we recover the orco data and reduce both the storage and the fetching cost of an attrib layer.
2017-05-15Mesh Batch Cache: Define Compressed format for shading data.Clément Foucault
Deactivated by default. All shading attribs can be packed to take less VRAM at the cost of precision (not noticable in this case). UVs can be packed into I16 but that limits their positions into the [-1, +1] range. This could be a setting option in the future.
2017-01-20Fix compilation error with strict flags and gcc-6Sergey Sharybin
2016-12-28Comments: mul_project_m4_v3_zfacCampbell Barton
2016-07-08BLI_math: add normalize functions which fit to a lengthCampbell Barton
Convenient since its common to normalize then scale, since these are inlined, use for regular normalize w/ 1.0 length.
2016-06-16BLI_math: Add double versions of functionsCampbell Barton
- mul_v3_m3v3_db - mul_m3_v3_db - negate_v3_db
2016-05-18Fix GCC/Linux build error after finite/isfinite changes.Brecht Van Lommel
2016-05-17C99/C++11: replace deprecated finite() by isfinite().Brecht Van Lommel
2016-01-04Fix T47038: Particles in Particle Edit Mode get added in completely wrong ↵Bastien Montagne
location. It also fixes another issue (crash) related to symmetric editing. Quite involved, we (try to!) fix complete broken logic of parts of particle code, which would use poly index as tessface one (or vice-versa). Issue most probably goes back to BMesh integration time... This patch mostly fixes particle editing mode: - Adding/removing particles when using generative modifiers (like subsurf) should now work. - Adding/removing particles with a non-tessellated mesh (i.e. one having ngons) should also mostly work. - X-axis-mirror-editing particles over ngons does not really work, not sure why currently. - All this in both 'modes' (with or without using modifier stack for particles). Tech side: - Store a deformed-only DM in particle modifier data. - Rename existing DM to make it clear it's a final one. - Use deformed-only DM's tessface2poly mapping to 'solve' poly/tessface mismatches. - Make (part of) mirror-editing code able to use a DM instead of raw mesh, so that we can mirror based on final DM when editing particles using modifier stack (mandatory, since there is no way currently to find orig tessface from an final DM tessface index). Note that this patch is not really nice and clean (current particles are beyond hope on this side anyway), it's more like some urgency bandage. Whole crap needs complete rewrite anyway, BMesh's polygons make it really hard to work with current system (and looptri would not help much here). Also, did not test everything possibly affected by those changes, so it needs some users' testing & validation too. Reviewers: psy-fi Subscribers: dfelinto, eyecandy Maniphest Tasks: T47038 Differential Revision: https://developer.blender.org/D1685
2015-10-11Fix warnings and remove casts by adding copy_vx_vx_uchar() functions.Brecht Van Lommel
2015-07-10BLI_math 'compare' cleanup & enhancements.Bastien Montagne
This commit: * Adds a 'compare_ff' function for absolute 'almost equal' comparison of floats. * Makes 'compare_vxvx' functions use that new 'compare_ff' one. * Adds a 'compare_ff_relative' function for secured ulp-based relative comparison of floats. * Adds matching 'compare_vxvx_relative' functions. * Adds some basic tests for compare_ff_relative. See https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ Note that we could replace our python/mathutils' EXPP_FloatsAreEqual() by BLI's compare_ff_relative (using a very small absolute max_diff), but these do not have exact same behavior... Left a comment there for now, we can do it later if/when we are sure it won't break anything!
2015-05-21Math Lib: double versions of vector funcsCampbell Barton
- add_vn_vn_d - add_vn_vnvn_d - mul_vn_db
2015-03-18Use fabsf for floatsCampbell Barton
2015-03-17BLI math vec: add 'abs' functions to get absolute values of a vector.Bastien Montagne
Unseful when handling e.g. scale, sometimes.
2015-01-09BLI_math: add vector's dot_v3v3v3() func, for when you have three points ↵Bastien Montagne
instead of two vectors.
2014-09-28Comments: clarify math libCampbell Barton
2014-08-17Knife tool: simplify hit-depth calculationCampbell Barton
2014-07-30Cleanup: general cleanup in BLI_math code (mostly, use 'const' where ↵Bastien Montagne
possible, true/false for booleans, format for float litterals).
2014-07-14Math Lib: add compare_len_squared_v3v3 from paint branchCampbell Barton
2014-07-14Math Lib: accept a limit of 0.0 when comparing vectorsCampbell Barton