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-07-01Fix T99268: LineArt better handling for dense overlappings.Yiming Wu
Two main fixes: - Split tiles only when we are more sure that it will improve distribution. - Discard edges and chains that are not gonna be used afterwards before chaining. This speeds up the whole process and also eliminates unnecessary tile splitting. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D15335
2022-06-30Cleanup: formatCampbell Barton
2022-06-30Cleanup: spelling in commentsCampbell Barton
2022-06-29LineArt: Shadow and related functionalities.Yiming Wu
This patch includes the full shadow functionality for LineArt: - Light contour and cast shadow lines. - Lit/shaded region selection. - Enclosed light/shadow shape calculation. - Silhouette/anti-silhouette selection. - Intersection priority based on shadow edge identifier. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D15109
2022-06-27Cleanup: spelling in commentsCampbell Barton
2022-06-23LineArt: Cleanup minor warnings from variable type changes.Yiming Wu
2022-06-16LineArt: Variable name cleanups.Yiming Wu
Use more descriptive names for some of the two character variables. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D15192
2022-06-13LineArt: General code cleanups.Yiming Wu
- Use uintxx_t for all 8/16/64 bit integer types. - Removed prepend_edge_direct thingy which is no longer needed in current edge iterator model. - Minor code path adjustments like only copies view vector when necessary etc. - Correctly handle ies==NULL in edge cutting function. - White spaces and comments etc. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D15181
2022-06-10LineArt: Clean up `LineartRenderBuffer`.Yiming Wu
This patch does code clean ups in `LineartRenderBuffer` because it's grown kinda big and we need better way to organize those variables inside. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D15172
2022-06-03LineArt: Include minor fixes in branch that's missing in master.Yiming Wu
2022-06-03Cleanup: spelling in commentsCampbell Barton
2022-06-02LineArt: Speedup construction of quad trees.Yiming Wu
Using multithread for `add_triangles` to speed up quad tree building. Each thread would lock its respective tile to work on triangle insertion, intersection calculation, tile splitting and triangle array extension. Reviewed By: Sebastian Parborg (zeddb), Sergey Sharybin (sergey) Ref D14953
2022-06-01LineArt: Adding a intersection timer.Yiming Wu
This is for conveinence of perfomance comparison.
2022-06-01LineArt: Temporary fix for object loading iterator.Yiming Wu
Use `DEG_OBJECT_ITER_BEGIN`for loading objects, this iterator is technially unsafe to use *during* depsgraph evaluation, see https://developer.blender.org/D14997 for detailed explainations.
2022-05-25Fix T98355: Line art crash when switch to mesh edit mode.YimingWu
This fix will ensure not to load any meshes that's being edited, thus avoiding crashes. Ref D15022
2022-05-25Fix T98359: Handle object that has no feature lines.YimingWu
In case of line art "occlusion only" or contour not enabled, it's possible for an object to not produce any feature lines. This patch checks that to prevent freeing a NULL pointer.
2022-05-23Revert "LineArt: Use CAS for add_triangles."Ray Molenkamp
This reverts commit 14a5a91e0e033d712134c112a4778b495bd73ba1. This caused build errors on x64+arm mac builds and some versions of MSVC, reverting for now till a better solution is found.
2022-05-23LineArt: Use CAS for add_triangles.YimingWu
Using the atomic "compare and swap" method in add_triangles stage dramatically speeds up the add_triangles call and significantly reduced the overall calculation time. This is currently the fastest method we have experimented with so far. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D14953
2022-05-23LineArt: Fix adjacent edge sorting.YimingWu
The sorting end element should be `start+len` not `start+len-1`.
2022-05-19Cleanup: spelling in comments & move doc-strings to headersCampbell Barton
2022-05-18LineArt: Use array instead of lists for edges pending occusion queryYimingWu
It turns out there's no practical use for separating different edge types before final occlusion stage, also using an array should be faster overall. So changed those lists into one pending array, it also made the iteration and occlusion task scheduling simpler. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D14951
2022-05-18LineArt: Remove LineartEdge::obindex.YimingWu
After changing the duplicated edge removal method in D14903, these two obindex variables are no longer needed. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D14949
2022-05-18LineArt: Use safe lineart_discard_duplicated_edgesYimingWu
The old method doesn't check e for array boundary. The new method ensures it only access valid elements. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D14903
2022-05-18LineArt: Prioritize connecting chains from the same contour loopYimingWu
This change allows the chaining function to select edges from the same contour loop first, thus reduced rouge chain connections (connected different objects instead of chaining inside the same object first) and improved chaining quality. This patch also included the default value change for chain split threshold (Now don't split by default to make initial result as smooth as possible) Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D14950
2022-05-17Cleanup: spelling in commentsCampbell Barton
2022-05-13LineArt: Better behavior of smooth tolerance.YimingWu
This fixes the smooth tolerance feature in master where sometimes you could get over simplified chains and lose the shape it's supposed to be originally. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D14929
2022-05-13Fix T96781: LineArt proper object iterator.YimingWu
This patch get rid of the _incorrectly used_ DG iterator in object loading, and uses scene objects iteration to prevent problems. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D14907
2022-05-13Cleanup: spelling in comments, capitalize tagsCampbell Barton
Also add missing task-ID reference & remove colon after \note as it doesn't render properly in doxygen.
2022-05-10LineArt: Use thread safe bound box.YimingWu
The old method is not thread safe, which will lead to minor memory leaks. This patch fixed that. Reviewed By: Sebastian Parborg (zeddb) Differential Revision: https://developer.blender.org/D14904
2022-05-05Cleanup: spelling in commentsCampbell Barton
2022-05-04LineArt: Clean up file name and license.YimingWu
lineart_cpp_bridge.cpp changed to .cc
2022-05-04LineArt: Object loading optimizationYimingWu
This patch replaces BMesh conversion into index-based triangle adjacent lookup method, and use multithread in many steps to speed up object loading for line art. Differential Revision: https://developer.blender.org/D14627 Reviewed By: Sebastian Parborg (zeddb)
2022-04-28Cleanup: spelling in commentsCampbell Barton
Also use back-slashes for doxy commands.
2022-04-20Cleanup: spelling in commentsCampbell Barton
2022-04-01Cleanup: Use const for bounding boxes where possibleHans Goudey
2022-03-31Fix T94888: LineArt use the same triangulation as viewport.YimingWu
This fixes inconsistencies between line art output and viewport triangulation result.
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-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-02-25Fix T95984: Use consistent shifting for persp and ortho cam.YimingWu
Now always properly shifting camera for ortho and perspective.
2022-02-22LineArt: Consistent backface culling behaviorYimingWu
1. Now will remove lines if both adjacent faces are back face. 2. Added a check to respect material back face culling setting. 3. Changed label in the modifier to "Force Backface Culling" (which reflect more accurately with what the checkbox does). Reviewed By: Antonio Vazquez (antoniov), Aleš Jelovčan (frogstomp) Ref D14041
2022-02-19LineArt: GPU subdiv fix.YimingWu
Use evaluated mesh instead of ob->data. Reviewed by: Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D14040
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-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-10Fix T95458: Line art ignores curve objects with no evaluated meshHans Goudey
Some curve objects don't have an evaluated mesh at all, but line art currently assumes that all curve objects have one before converting it to a mesh internally. Fix this by checking if the curve object has an evaluated mesh before skipping it. The remaining problem is that evalauted from non-mesh objects or evaluated curves from non-curve objects, etc. will be ignored if "Allow Duplicates" is off. That's a different problem though. Differential Revision: https://developer.blender.org/D14036
2022-01-24Cleanup: spelling in commentsCampbell Barton
2022-01-22LineArt: Option to keep contour when using face mark filtering.YimingWu
When enabled, it will keep contour around the object instead of hide them by rule of face mark, so the object can always have full contour while filtering out some of the feature lines inside certain regions. Reviewed By: Antonio Vazquez (antoniov), Aleš Jelovčan (frogstomp) Differential Revision: https://developer.blender.org/D13847
2022-01-22LineArt: Back face cullingYimingWu
Option to discard back faced triangles, this speeds up calculation especially for when you only want to show visible feature lines. Reviewed By: Antonio Vazquez (antoniov), Aleš Jelovčan (frogstomp) Differential Revision: https://developer.blender.org/D13848
2022-01-22LineArt: Noise tolerant chaining.YimingWu
Instead of splitting it at each occlusion change, it tolerates short segments of "zig-zag" occlusion incoherence and doesn't split the chain at these points, thus creating a much smoother result. Reviewed By: Antonio Vazquez (antoniov), Aleš Jelovčan (frogstomp) Differential Revision: https://developer.blender.org/D13851
2022-01-17LineArt: Invert collection option.YimingWu
Allows conveniently selecting an inverse of a collection. Reviewed By: Antonio Vazquez (antoniov) Differential Revision: https://developer.blender.org/D13846
2022-01-14Fix T94878: LineArt crease threshold logic error.YimingWu
A coding mistake allows default crease to override object crease, now fixed.