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-03-22Fix T96294: Crash and error with shape key normal calculationHans Goudey
A mistake in the mesh normal refactor caused the wrong mesh to be used when calculating normals with a shape key's deformation. This commit fixes the normal calculation by using the correct mesh, with just adjusted vertex positions, and calculating the results directly into the result arrays when possible. This completely avoids the need to make a local copy of the mesh, which makes sense, since the only thing that changes is the vertex positions. Differential Revision: https://developer.blender.org/D14317
2022-03-22Fix T96308: Mesh to BMesh conversion doesn't calculate vertex normalsHans Goudey
Currently there is a "calc_face_normal" argument to mesh to bmesh conversion, but vertex normals had always implicitly inherited whatever dirty state the mesh input's vertex normals were in. Probably they were most often assumed to not be dirty, but this was never really correct in the general case. Ever since the refactor to move vertex normals out of mesh vertices, cfa53e0fbeed7178c7, the copying logic has been explicit: copy the normals when they are not dirty. But it turns out that more control is needed, and sometimes normals should be calculated for the resulting BMesh. This commit adds an option to the conversion to calculate vertex normals, true by default. In almost all places except the decimate and edge split modifiers, I just copied the value of the "calc_face_normals" argument. Differential Revision: https://developer.blender.org/D14406
2022-03-22Obj: try to fix Linux testsAras Pranckevicius
Related to previous D14368 bug fix, the sorting operator was not necessarily a stable order sort.
2022-03-22Fix build when using WITH_TBB=OFF after recent changesBrecht Van Lommel
And wrap tbb::parallel_sort in blender namespace similar to other TBB functionality.
2022-03-21Fix T96511: New OBJ exporter no longer groups faces by materialAras Pranckevicius
Old python exporter in 3.0 and earlier ordered faces by material, but the new C++ exporter in 3.1+ did not, and was just writing them in whatever is the order of the mesh data structure. This mostly does not cause problems, except in some apps e.g. Procreate -- for large enough meshes, this lack of "order by material" (which ends up having more usemtl lines) ends up creating more mesh subsets than necessary inside Procreate. The change is not computationally heavy, e.g. exporting 6-level subdivided Monkey mesh goes 1085ms -> 1105ms on my machine. Reviewed By: @howardt Differential Revision: https://developer.blender.org/D14368
2022-03-21Cleanup: add image_format.cc for functions related to ImageFormatDataBrecht Van Lommel
Also fixes missing code to read/write/free/copy color management settings in various places. This can't be set through the UI currently, but still should be handled consistently.
2022-03-20Fix T96470 new obj exporter writing material groupsAras Pranckevicius
This is patch D14349 from Aras Pranckevicius. The logic in the code was _completely different_ from the documentation and what the python exporter in 3.0 did. The new code assumed that "export material groups" meant "append material name to the object name", and was only ever kicking in when the "export object groups" option was also checked. But the proper behavior (as in 3.0 exporter & the online docs), is to emit g objectname_materialname before each usemtl line. Which is something entirely else.
2022-03-20Fix T96415: new OBJ exporter was applying scaling factor incorrectlyAras Pranckevicius
This is patch D14347 from Aras Pranckevicius. Instead of scaling "the scene" (i.e. transform vertices by object matrix, then multiply by scale factor), it was instead first applying the scale factor in local space, and then transforming by the object matrix.
2022-03-19Fix T96430: new OBJ exporter wrong normals for non-uniform scale, and wrong ↵Aras Pranckevicius
face order for negative scale This applies patch D14343 from Aras Pranckevicius, with a description: The new 3.1+ OBJ exporter did not have correct logic when faced with non-uniform & mirrored (negative on odd number of axes) object scale: - Normals were not transformed correctly (should use inverse transpose of the matrix), and were not normalized, - Face order was not "flipped" when transform has negative scale on odd number of axes (visible when using "face orientation" viewport overlay).
2022-03-18Cleanup: Compilation warningsSergey Sharybin
Mainly -Wset-but-unused-variable. Makes default compilation on macOS way less noisy. Differential Revision: https://developer.blender.org/D14357
2022-03-18Cleanup: unused class members.Kévin Dietrich
2022-03-16Cleanup: rename cnt to countCampbell Barton
Follow naming from T85728.
2022-03-13Fix T96303: C++ OBJ exporter needs presets and skip modifiers.Aras Pranckevicius
This patch, D14303, from Aras Pranckevicius adds presets to the OBJ exporter, and also adds a checkbox (default on) to apply modifiers before export.
2022-03-11Cleanup: use M_PI_2 and M_PI_4 where possibleHallam Roberts
The constant M_PI_4 is added to GLSL to ensure it works there too. Differential Revision: https://developer.blender.org/D14288
2022-03-10Cleanup: spelling in comments & some minor clarificationsCampbell Barton
2022-03-08Cleanup: spelling in commentsCampbell Barton
2022-03-02Merge branch 'blender-v3.1-release'Jacques Lucke
2022-03-02Fix T95692: incorrect interpolated children particle hairJacques Lucke
Differential Revision: https://developer.blender.org/D14227
2022-03-02Cleanup: use back-slash for doxygen commands, color after parametersCampbell Barton
2022-03-01Cleanup: ED_view3d_win_to_delta & ED_view3d_calc_zfac usageCampbell Barton
- Rename ED_view3d_win_to_delta `mval` argument to `xy_delta` as it as it was misleading since this is an screen-space offset not a region relative cursor position (typical use of the name `mval`). Also rename the variable passed to this function which also used the term `mval` in many places. - Re-order the output argument of ED_view3d_win_to_delta last. use an r_ prefix for return arguments. - Document how the `zfac` argument is intended to be used. - Split ED_view3d_calc_zfac into two functions as the `r_flip` argument was only used in some special cases.
2022-02-25Fix T94396: USD errors opening saved scenes.Michael Kowalski
Added call to ensure that the USD plugins are registered when opening a USD cache archive. This is to avoid USD load errors due to missing USD file format plugins when opening blender files that contain USD transform cache constraints and mesh sequence cache modifilers. Fixes T94396
2022-02-24Merge remote-tracking branch 'origin/blender-v3.1-release'Kévin Dietrich
2022-02-24Fix T95959: crash when exporting subdivision to AlembicKévin Dietrich
When exporting generated coordinates, the subdivision export code was using the schema for the non-subdivision case, which is invalid as non-initialized. This typo existed since the initial commit for the feature (rBf9567f6c63e75feaf701fa7b78669b9a436f13dd).
2022-02-22GPencil: Simplify sample modifier improvements.YimingWu
1. Now handles cyclic strokes correctly. 2. Added a sharp threshold value to allow preservation of sharp corners. Reviewed By: Antonio Vazquez (antoniov), Aleš Jelovčan (frogstomp) Ref D14044
2022-02-22Cleanup: clang-formatCampbell Barton
2022-02-18Cleanup: Rename original curve object type enumHans Goudey
This commit renames enums related the "Curve" object type and ID type to add `_LEGACY` to the end. The idea is to make our aspirations clearer in the code and to avoid ambiguities between `CURVE` and `CURVES`. Ref T95355 To summarize for the record, the plans are: - In the short/medium term, replace the `Curve` object data type with `Curves` - In the longer term (no immediate plans), use a proper data block for 3D text and surfaces. Differential Revision: https://developer.blender.org/D14114
2022-02-17Merge branch 'blender-v3.1-release'Sebastian Parborg
2022-02-17Cleanup: Move more cmake library variables to be advancedSebastian Parborg
I noticed that there were a few variables that should not be visible per default. It seems to me to simply be an oversight, so I went ahead and cleaned them up. Reviewed By: Sybren, Ray molenkamp Differential Revision: http://developer.blender.org/D14132
2022-02-16Cleanup: clang-format, use static sets, sort struct declarationsCampbell Barton
2022-02-15BLI: Change dependencies in vector math filesHans Goudey
This patch reverses the dependency between `BLI_math_vec_types.hh` and `BLI_math_vector.hh`. Now the higher level `blender::math` functions depend on the header that defines the types they work with, rather than the other way around. The initial goal was to allow defining an `enable_if` in the types header and using it in the math header. But I also think this operations to types dependency is more natural anyway. This required changing the includes some files used from the type header to the math implementation header. I took that change a bit further removing the C vector math header from the C++ header; I think that helps to make the transition between the two systems clearer. Differential Revision: https://developer.blender.org/D14112
2022-02-13Cleanup: Clang tidyHans Goudey
Use using instead of typedef, remove redundant string init, use "empty", address qualified auto, use nullptr.
2022-02-11File headers: add missing copyright, add MIT to SPDX licensesCampbell Barton
2022-02-11Cleanup: remove white-space before headersCampbell Barton
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-02-10Correction to previous Clang strict warning commitSergey Sharybin
Need to only pop diagnostic if it was really pushed. Pointed out by Aras Pranckevicius, thanks!
2022-02-10Fix compilation with strict Clang flagsSergey Sharybin
There is no `-Wformat-truncation` warning in Clang, so tweak checks around diagnostics pragma accordingly.
2022-02-10Cleanup: copyright in headers, spelling in commentsCampbell Barton
- Order year consistently. - Minor consistency (case, double-spacing). - Correct typos.
2022-02-06Merge branch 'blender-v3.1-release'Howard Trickey
2022-02-06Fix T95384: new obj exporter inaccurate roughness value in new exporter.Aras Pranckevicius
Fixes T95384. New exporter was missing a fix for T94516 that recently got applied to the python exporter. Also changed the obj export tests code so that when save_failing_test_output is requested and MTL result is different from the golden expectation, it is saved as well, similar to how it's done for the OBJ file result.
2022-02-06Further speedup of new obj exporter.Aras Pranckevicius
This change from Aras further parallelizes wihin large meshes (the previous one just parallelized over objects). Some stats: on A Windows machine, AMD Ryzen (32 threads): (one mesh) Monkey subdivided to level 6: 4.9s -> 1.2s (blender 3.1 was 6.3s; 3.0 was 49.4s). (one mesh) "Rungholt" minecraft level: 8.5s -> 2.9s (3.1 was 10.5s; 3.0 was 73.7s). (lots of meshes) Blender 3 splash: 6.2s -> 5.2s (3.1 was 48.9s; 3.0 was 392.3s). On a Linux machine (Threadripper, 48 threads, writing to SSD): Monkey - 5.08s -> 1.18s (4.2x speedup) Rungholt - 9.52s -> 3.22s (2.95x speedup) Blender 3 splash - 5.91s -> 4.61s (1.28x speedup) For details see patch D14028.
2022-02-06Merge branch 'blender-v3.1-release'Howard Trickey
Also fixed conflicts due to the change in file writing in the new obj exporter in master, and fixed one of the tests that was added in master but not 3.1.
2022-02-06Fix T95360, new 3.1 obj exporter losing nurbs curve "endpoint".Aras Pranckevicius
The new wavefront .obj exporter in 3.1 was producing slightly invalid parm line syntax (missing u), and was not setting first/last N params to zeroes and ones for curves with "endpoint" flag properly.
2022-02-04Cleanup: Clang tidy, use bracesHans Goudey
Braces missed in b73d3b80fdcb72446
2022-02-02Cleanup: spelling in commentsCampbell Barton
2022-01-31Cleanup: Change NULL to nullptr.Jeroen Bakker
2022-01-31Cleanup: use our own conventions for tags in commentsCampbell Barton
2022-01-30Speed up the new OBJ exporter via bigger write buffer and parallelization.Aras Pranckevicius
This is a patch from Aras Pranckevicius, D13927. See that patch for full details. On Windows, the many small fprintfs were taking up a large amount of time and significant speedup comes from using snprintf into chained buffers, and writing them all out later. On both Windows and Linux, parallelizing the processing by Object can also lead to a significant increase in speed. The 3.0 splash screen scene exports 8 times faster than the current C++ exporter on a Windows machine with 32 threads, and 5.8 times faster on a Linux machine with 48 threads. There is admittedly more memory usage for this, but it is still using 25 times less memory than the old python exporter on the 3.0 splash screen scene, so this seems an acceptable tradeoff. If use cases come up for exporting obj files that exceed the memory size of users, a flag could be added to not parallelize and write the buffers out every so often.
2022-01-30Merge branch 'blender-v3.1-release'Howard Trickey
2022-01-30Fix T95328, new obj exporter not exporting custom normals.Aras Pranckevicius
Previously, the new obj exporter was only exporting per-vertex normals for faces marked as "smooth". But a face can have custom normals, as soon as the normals data layer exists. This change makes it follow the behavior of USD & Collada exporters and the old Python one, which also export per-vertex normals as soon as the layer is there. (From Patch D13957.)
2022-01-30Cleanup: Cmake: remove unnecessary definitions for internationalizationAaron Carlisle
Previously, macros were ifdefed using the cmake option `WITH_INTERNATIONAL` However, the is unnecessary as withen the functions themselves have checks for building without internationalization. This also means that many `add_definitions(-DWITH_INTERNATIONAL)` are also unnecessary. Reviewed By: mont29, LazyDodo Differential Revision: https://developer.blender.org/D13929