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-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
2021-11-23Fix T93320: Freestyle LineStyleModifier blend 'Minimum' errorPhilipp Oeser
This was just a typo in {rBb408d8af31c9} Must be 'MINIMUM' (instead of 'MININUM'). Maniphest Tasks: T93320 Differential Revision: https://developer.blender.org/D13328
2020-10-02Cleanup: pep8 (indentation, spacing, long lines)Campbell Barton
2020-10-02Cleanup: pep8, blank linesCampbell Barton
2019-12-18Fix T72289: FreeStyle python errorJeroen Bakker
Introduced by {T67981}. We changed the python API for curve evaluation. Freestyle still used the old call that failed. This patch updates FreeStyle to use the new API. I checked other areas in freestyle but it seemed to be the only `evaluate` for curves that is called directly. Reviewed By: zeddb Differential Revision: https://developer.blender.org/D6430
2019-01-24Fix T60625: freestyle colletion include / exclude not working.Brecht Van Lommel
2018-11-28Use collection and instance terminology in Python APISergey Sharybin
This follows naming convention agreed on in T56648.
2018-11-05Fix various Freestyle rendering bugs.Brecht Van Lommel
2018-04-19Remove Blender Internal and legacy viewport from Blender 2.8.Ton Roosendaal
Brecht authored this commit, but he gave me the honours to actually do it. Here it goes; Blender Internal. Bye bye, you did great! * Point density, voxel data, ocean, environment map textures were removed, as these only worked within BI rendering. Note that the ocean modifier and the Cycles point density shader node continue to work. * Dynamic paint using material shading was removed, as this only worked with BI. If we ever wanted to support this again probably it should go through the baking API. * GPU shader export through the Python API was removed. This only worked for the old BI GLSL shaders, which no longer exists. Doing something similar for Eevee would be significantly more complicated because it uses a lot of multiplass rendering and logic outside the shader, it's probably impractical. * Collada material import / export code is mostly gone, as it only worked for BI materials. We need to add Cycles / Eevee material support at some point. * The mesh noise operator was removed since it only worked with BI material texture slots. A displacement modifier can be used instead. * The delete texture paint slot operator was removed since it only worked for BI material texture slots. Could be added back with node support. * Not all legacy viewport features are supported in the new viewport, but their code was removed. If we need to bring anything back we can look at older git revisions. * There is some legacy viewport code that I could not remove yet, and some that I probably missed. * Shader node execution code was left mostly intact, even though it is not used anywhere now. We may eventually use this to replace the texture nodes with Cycles / Eevee shader nodes. * The Cycles Bake panel now includes settings for baking multires normal and displacement maps. The underlying code needs to be merged properly, and we plan to add back support for multires AO baking and add support to Cycles baking for features like vertex color, displacement, and other missing baking features. * This commit removes DNA and the Python API for BI material, lamp, world and scene settings. This breaks a lot of addons. * There is more DNA that can be removed or renamed, where Cycles or Eevee are reusing some old BI properties but the names are not really correct anymore. * Texture slots for materials, lamps and world were removed. They remain for brushes, particles and freestyle linestyles. * 'BLENDER_RENDER' remains in the COMPAT_ENGINES of UI panels. Cycles and other renderers use this to find all panels to show, minus a few panels that they have their own replacement for.
2018-04-18Workspaces: remove workspace engine, use 3D viewport draw mode instead.Brecht Van Lommel
ViewRender was removed, which means we can't get the render engine for files saved in 2.8. We assume that any files saved in 2.8 were intended to use Eevee and set the engine to that. A fix included with this is that .blend thumbails now draw with Clay mode, and never Eevee or Cycles. These were drawn with solid mode in 2.7, and should be very fast and not e.g. load heavy image textures. Differential Revision: https://developer.blender.org/D3156
2017-11-23Rename any instance of scene layer or render layer in code with view layerDalai Felinto
The RenderResult struct still has a listbase of RenderLayer, but that's ok since this is strictly for rendering. * Subversion bump (to 2.80.2) * DNA low level doversion (renames) - only for .blend created since 2.80 started Note: We can't use DNA_struct_elem_find or get file version in init_structDNA, so we are manually iterating over the array of the SDNA elements instead. Note 2: This doversion change with renames can be reverted in a few months. But so far it's required for 2.8 files created between October 2016 and now. Reviewers: campbellbarton, sergey Differential Revision: https://developer.blender.org/D2927
2017-11-22SceneRenderLayer Removal/RefactorDalai Felinto
This patch moves all the functionality previously in SceneRenderLayer to SceneLayer. If we want to rename some of these structs now would be a good time to do it, before they are in SceneLayer. Everything should be working, though I will test things further tomorrow. Once this is committed depsgraph can get rid of the workaround added in rna_Main_meshes_new_from_object and finish whatever this patch was preventing from being finished. This patch also adds a few placeholders for the overrides (samples, ...). These are obviously not working, so some unittests that rely on 'lay', and 'zmask' will fail. This patch does not addressed the change of moving samples to ViewRender (I have this as a separate patch and needs some separate discussion). Following next is the individual note of the individual parts that were committed. Note 1: It is up to Cycles to still get rid of exclude_layer internally. Note 2: Cycles still need to handle its own doversion for the use_layer_samples cases and (1) Remove the override as it is (2) Add a new override (scene.cycles.samples) if scene.cycles.use_layer_samples != IGNORE Respecting the expected behaviour when scene.cycles.use_layer_samples == BOUNDED. Note 3: Cycles still need to implement the per-object holdout (similar to how we do shadow catcher). Note 4: There are parts of the old (Blender Internal) rendering pipeline that is still using lay, e.g., in shi->lay. Honestly it will be easier to purge the entire Blender Internal code away instead of taking things from it bit by bit. Reviewers: sergey, campbellbarton, brecht Differential Revision: https://developer.blender.org/D2919
2017-10-25Fix freestyle UI after workspace > engine changesDalai Felinto
2017-02-16Freestyle: Feature edge selection by nested object groups.Tamito Kajiyama
A group of object groups can be formed by means of the dupli_group option in the Object properties window. The present revision extends the Selection by Group option in the Freestyle Line Set so as to support not only flat object groups but also nested groups.
2016-08-05Fix T48366: Freestyle will unnecessary exclude some linked objects.Tamito Kajiyama
Group membership testing for including/excluding feature lines was not accounting for object names possibly further qualified by library file paths. Also fixed a few potential (but unlikely) references of uninitialized variables. A big thank to Bastien Montagne for the insight on the cause of the problem and how to fix it.
2015-10-28Freestyle: Fix for 'Distance from Object' modifiers without a target object.Tamito Kajiyama
'Distance from Object' color/alpha/thickness modifiers without a target object were raising a run-time exception although it is not considered an error condition.
2015-07-10Code cleanup: White space and dead code.Tamito Kajiyama
2015-07-10Freestyle: new stroke modifiersFolkert de Vries
This patch introduces a couple new stroke modifiers. The ones currently implemented are based on prototypes by @kjym3 and myself. The new modifiers: - Tangent - Thickness noise - Crease Angle - Simplification - Curvature 3D The documentation for these new modifier types can be found [[ http://www.blender.org/manual/render/freestyle/parameter_editor/index.html | in the manual ]]: {F134441} (left: AnisotropicThicknessShader, right: NoiseThicknessShader) {F140499} (left: Curvature 3D, right: Simplification) Author: Folkert de Vries (flokkievids) Reviewers: kjym3 Subscribers: #user_interface, plasmasolutions, kjym3 Projects: #bf_blender Differential Revision: https://developer.blender.org/D963
2015-04-16Partial fix for T44404: freestyle crashes blender.Tamito Kajiyama
Logical predicates AndUP1D and OrUP1D were instantiated even with an empty list of unary 1D predicates, causing an exception in the constructors of the logical predicate classes. This is a regression made in b408d8af31c9fba5898e353c97f95f7ce8dc19c1.
2015-02-27cleanup: typosCampbell Barton
2014-12-02Freestyle: Avoid quietly ignoring errors in parameter_editor.lineset_pre ↵Tamito Kajiyama
callbacks.
2014-11-25Freestyle: Py-Hooks for custom pre/post-processing line styleTamito Kajiyama
Patch D839, needed for SVG-render to be made into an addon.
2014-10-19Revert "Freestyle: Built-in SVG exporter."Campbell Barton
This reverts commit 61a330baca0ff9bb3cf477c04f539ef276a0356f. This completes reverting D785 This feature is to be reworked into an addon.
2014-10-19Revert "Freestyle: rename module to export_svg"Campbell Barton
This reverts commit db249b787fe0875944e00df1a3d12a58d9a07249.
2014-10-18Freestyle: rename module to export_svgCampbell Barton
Convention for existing export modules
2014-10-18Freestyle: Built-in SVG exporter.Tamito Kajiyama
Features: * Both still image and animation rendering, as well as polygon fills are supported. * The exporter creates a new SVG layer for every Freestyle line set. The different layers are correctly sorted. * SVG paths use data from line styles, so the base color of a line style becomes the color of paths, idem for dashes and stroke thickness. * Strokes can be split at invisible parts. This functionality is useful when exporting for instance dashed lines or line styles with a Blue Print shader * The exporter can be used not only in the Parameter Editor mode, but also from within style modules written for the Python Scripting mode. Acknowledgements: The author would like to thank Francesco Fantoni and Jarno Leppänen for their [[ https://github.com/hvfrancesco/freestylesvg | Freestyle SVG exporter ]]. Differential revision: https://developer.blender.org/D785 Author: flokkievids (Folkert de Vries) Reviewed by: kjym3 (Tamito Kajiyama)
2014-10-01Freestyle: New line style options for sorting and chain selection.Tamito Kajiyama
The following two sort keys are added for sorting chains. * Projected X - Sort by the projected X value in the image coordinate system. * Projected Y - Sort by the projected Y value in the image coordinate system. A new line style option for the selection of first N chains is also added. Moreover, the chain sorting and chain selection operations are now executed in this order instead of the reverse order used previously. The UI has also changed accordingly. This functional change is backward compatible and won't result in visual differences.
2014-09-02Better fix for T41464: Material Boundary bug in Freestyle.Tamito Kajiyama
The problem addressed here is that there was no mean to check if an iterator points the last of the elements being iterated over. Such checking is necessary to reliably dereference the iterator (i.e., calling the operator*() method of the underlying C++ iterator object). Now Interface0DIterator and StrokeVertexIterator have an .at_last property to check if an iterator points the last element. Using this new API feature, the present commit partly reverts the previous commit rBeb8964fb7f19 to better address T41464. Differential revision: https://developer.blender.org/D752 Author: flokkievids (Folkert de Vries) Reviewed by: kjym3 (Tamito Kajiyama)
2014-08-20Fix T41464: Material Boundary bug in Freestyle.Tamito Kajiyama
The reported issue was caused by an old bug combined with another bug introduced by recent Freestyle Python API updates. The old bug was that a mutable reference to CurvePoint was treated as if it were immutable. Iteration over CurvePoint objects is implemented by the C++ CurvePointIterator class, whose dereference method CurvePointIterator::operator*() returns a reference to a mutable data member (probably originally intended for better performance). Hence the returned reference may vary upon iteration over different CurvePoints. This implementation detail was overlooked and the returned reference was treated as immutable (which is the case in fact for other Interface0D subclasses except for CurvePoint). This bug was surprisingly old as it existed before the beginning of Freestyle integration into Blender. The other bug was in the MaterialBoundaryUP0D predicate class that was not properly handling the end of iteration. It is noted that when the iter() and next() built-in functions are applied to Interface0DIterator, it is no longer possible to reliably check the end of iteration by the .is_end property of the iterator. Namely, the .is_end property works as expected only when iteration is carried out in combination with the conventional .increment() and .decrement() methods of the iterator. For this reason the commit rBb408d8af31c9 was partly reverted to recover the previous definition of MaterialBoundaryUP0D.
2014-08-12Freestyle: Fix for git merge glitches.Tamito Kajiyama
Also made minor code cleanup.
2014-08-12Freestyle: an improved workflow of line style shading nodes.Tamito Kajiyama
Removed the previous changes for passing a line style through the Controller, and revised the BlenderTextureShader to assign the shader node tree of a line style (if specified) to strokes. This way the assignment of shading nodes can be done through both the Freestyle GUI and Python scripting.
2014-08-12WIP commit just for a record of a working snapshot of code revisions for ↵Tamito Kajiyama
node-based textured strokes.
2014-07-24Freestyle: minor revisions of Python API docstrings and comments.Tamito Kajiyama
2014-07-24A follow-up to Patch D623: minor code updates and style cleanup.Tamito Kajiyama
2014-07-24Freestyle Python API: Updates and speedups for the parameter editorTamito Kajiyama
In addition to D319, this patch updates the parameter editor, the UI of Freestyle. Using new API functionality and experience gained in making D319, this patch provides a quite noticable speedup for commonly-used Freestyle linestyle modifiers. As this patch touches a lot of code (and mainly the foundations) it is likely that mistakes are made. The patch has been tested with a regression suite for Freestyle (https://github.com/folkertdev/freestyle-regression-tests/tree/master), but testing with scenes used in production is very much appreciated. Differential revision: https://developer.blender.org/D623 Author: flokkievids (Folkert de Vries) Reviewed by: kjym3 (Tamito Kajiyama)
2014-07-07Per-material line color settings for Freestyle.Tamito Kajiyama
New properties 'line_color' and 'line_priority' are added to Material ID data blocks. The 'line_color' property allows users to specify a per-material line color that can be used as a Freestyle line color through Material color modifiers of line style settings. The new line color property is intended to provide a solution for line color stylization when a proper Freestyle support for Cycles is implemented (likely as part of the upcoming Blender 2.72 release; see Patch D632). Materials in Cycles are usually set up using shader nodes, and Freestyle won't be capable of retrieving colors and other properties from node-based materials any soon. The new line color property of materials addresses this foreseen limitation by providing artists with an intuitive alternative mean to specify line colors on a per-material basis independently from node trees. The 'line_priority' property gives users a way to control line colors at material boundaries. When a line is drawn along a feature edge at material boundaries, one of the two materials on both sides of the edge has to be picked up to determine the line color. So far there was no way to control this selection (which was in effect at random). Now the material with a higher line color priority will be selected. The new per-material line settings are shown in the new Freestyle Line tab in the Material context of the Properties window (only when Freestyle is enabled).
2014-06-05Freestyle: Fix for a wrong formula used for RGB to grayscale conversion.Tamito Kajiyama
This bug fix is likely to affect the visual results of existing Freestyle setups using the Material color/alpha/thickness modifiers with the 'material_attribute' parameter set to either 'Diffuse' (default) or 'Specular', and also the Ramp option enabled in the case of the Material color modifier.
2014-05-26Fix for thinning strokes at intersections between visible and background ↵Tamito Kajiyama
hidden lines. This commit is intended to fully fix the problem described in https://developer.blender.org/T36425#19 (see also the previous commit rB08528f577dcb). Addition of a small offset (to avoid singularity in stroke rendering due to overlapping vertices) was not performed for all overlapping vertices. Removed the StrokeCleaner and related helper functions which were added as a temporary workaround in rB2a5b6d9c8f16.
2014-05-09Freestyle: Fix for dashed lines when applied to invisible stroke segments.Tamito Kajiyama
Dashed lines were resetting stroke segment visibility by mistake (making invisible segments visible, for example when applied to the results of square blueprint geometry modifier).
2014-05-06Freestyle: minor code clean-up.Tamito Kajiyama
2014-05-03Patch D246: Texture Marks for freestyle strokes, written and contributed by ↵Tamito Kajiyama
Paolo Acampora. Reviewers: brecht, kjym3, #freestyle Reviewed By: brecht, kjym3 Differential Revision: https://developer.blender.org/D246
2014-04-18Freestyle: New options for sorting to arrange the stacking order of lines.Tamito Kajiyama
Line styles now have a set of new options for rearranging the stacking order of lines. This gives artists more control to determine which lines should be drawn on top of others. Two available sort keys are the distance from camera and curvilinear 2D length. Since the distance of a line from camera may vary over vertices, another option called integration type is used to compute the sort key for a line from the values computed at individual vertices. Available integration types are MEAN, MIN, MAX, FIRST and LAST (see the tool tips for more detail).
2014-04-11Fix for Sinus Displacement and 2D Offset stroke geometry modifiers.Tamito Kajiyama
These modifiers were not working properly when they were applied to strokes whose backbone was already modified by other geometry shaders. This problem was due to the use of Normal2DF0D that compute 2D vertex normals based on the underlying FEdges up on which initial stroke geometry is defined. Now vertex normals are computed on the basis of modified stroke vertices. A helper function 'stroke_normal' for computing normals of stroke vertices was added to the 'freestyle.utils' API module.
2014-01-28Code cleanup: pep8Campbell Barton
2014-01-28Moved the Operators class from the 'freestyle' module to the ↵Tamito Kajiyama
'freestyle.types' submodule.
2014-01-28Updated Freestyle API modules according to the new hierarchical package ↵Tamito Kajiyama
structure. Additional bug fixes were also done along with the code updates: * Fix for the use of old Interface1D.pointsBegin() and .pointsEnd() method names in the definition of pyDensityAnisotropyF1D and pyViewMapGradientNormF1D. * Fix for wrong data types (int instead of bool) for: - pyChainSilhouetteGenericIterator constructor and its .orientation property in modules/freestyle/chainingiterators.py. - SpatialNoiseShader constructor in styles/external_contour_sketchy.py. - ChainSilhouetteIterator constructor in styles/multiple_parameterization.py.
2014-01-28Reorganized the Freestyle Python API in a hierarchical package structure.Tamito Kajiyama
Both C- and Python-coded API components were rearranged into logical groups. New Python modules are packaged as follows: freestyle - Top-level package freestyle.types - Classes for core data structues (e.g., view map) freestyle.chainingiterators - Pre-defined chaining iterators freestyle.functions - Pre-defined 0D and 1D functions freestyle.predicates - Pre-defined 0D and 1D predicates freestyle.shaders - Pre-defined stroke shaders freestyle.utils - Utility functions The Python modules are installed in scripts/freestyle/modules. Pre-defined styles are installed in scripts/freestyle/styles. To-do: update styles according to the new Freestyle API package structure.