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
2018-06-17Cleanup: trailing space for freestyleCampbell Barton
2016-07-08Cleanup: spellingCampbell Barton
2016-07-07Cleanup: spelling, styleCampbell Barton
2015-07-20Freestyle: minor optimization for space in the FEdgeXDetector.Tamito Kajiyama
Member variables and auto variables were changed from real (double) to float in most part of the FEdgeXDetector (except for curvature computations).
2015-07-20Freestyle: commented part of FEdgeXDetector::ProcessRidgeFace() that has no ↵Tamito Kajiyama
effect.
2015-07-20Freestyle: internal switch from double to float in mesh loading and ↵Tamito Kajiyama
construction of winged edges.
2015-07-20Freestyle: minor optimization for space from mesh importing to feature edge ↵Tamito Kajiyama
detection. Several class member variables were removed (at the cost of computing their values when retrieved) or changed to a type of smaller size. Also fixed whitespace.
2014-10-29Cleanup: warnings, typosCampbell Barton
2014-10-03Cleanup: spelling, wsCampbell Barton
2014-04-17Freestyle: Fix for VC++ warnings about 'hypot' macro redefinitions (Part 1).Tamito Kajiyama
The issue was caused by including both Python.h and BLI_math.h. Since the macro definition in Python.h was unconditional, it was necessary to include it first and then BLI_math.h. Addressing the issue turned out to affect many Freestyle source files. There were several other coding flaws that complicated the situation: 1. intern/system/FreestyleConfig.h was abused just to include BLI_math.h which was in fact unnecessary in FreestyleConfig.h. While addressing this, inclusion of both math.h and BLI_math.h had to be duly dealt with to avoid a compiler error about round(). 2. #include <Python.h> was not properly put in the extern "C" { ... } construct. 3. intern/view_map/Interface0D.h and intern/python/Director.h, both of which included Python.h, were included from within Freestyle header files that were almost or completely independent of Python. These non-Python header files were used everywhere in the Freestyle code base, causing many cases of the reported macro redefinitions. 4. The Director.h file was also declaring 'using namespace Freestyle', which was causing another scope issue in several Freestyle header files. This commit is intended to address the first problem above. Subsequent commits will deal with the other three.
2013-04-09Attempt to fix a potential name conflict between Freestyle and the compositor.Tamito Kajiyama
A crash in the Freestyle renderer was reported by Ton on IRC with a stack trace below. Note that #2 is in Freestyle, whereas #1 is in the compositor. The problem was observed in a debug build on OS X 10.7 (gcc 4.2, openmp disabled, no llvm). ---------------------------------------------------------------------- Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: 13 at address: 0x0000000000000000 [Switching to process 72386 thread 0xf303] 0x0000000100c129f3 in NodeBase::~NodeBase (this=0x10e501c80) at COM_NodeBase.cpp:43 43 delete (this->m_outputsockets.back()); Current language: auto; currently c++ (gdb) where #0 0x0000000100c129f3 in NodeBase::~NodeBase (this=0x10e501c80) at COM_NodeBase.cpp:43 #1 0x0000000100c29066 in Node::~Node (this=0x10e501c80) at COM_Node.h:49 #2 0x000000010089c273 in NodeShape::~NodeShape (this=0x10e501c80) at NodeShape.cpp:43 #3 0x000000010089910b in NodeGroup::destroy (this=0x10e501da0) at NodeGroup.cpp:61 #4 0x00000001008990cd in NodeGroup::destroy (this=0x10e5014b0) at NodeGroup.cpp:59 #5 0x00000001008990cd in NodeGroup::destroy (this=0x114e18da0) at NodeGroup.cpp:59 #6 0x00000001007e6602 in Controller::ClearRootNode (this=0x114e19640) at Controller.cpp:329 #7 0x00000001007ea52e in Controller::LoadMesh (this=0x114e19640, re=0x10aba4638, srl=0x1140f5258) at Controller.cpp:302 #8 0x00000001008030ad in prepare (re=0x10aba4638, srl=0x1140f5258) at FRS_freestyle.cpp:302 #9 0x000000010080457a in FRS_do_stroke_rendering (re=0x10aba4638, srl=0x1140f5258) at FRS_freestyle.cpp:600 #10 0x00000001006aeb9d in add_freestyle (re=0x10aba4638) at pipeline.c:1584 #11 0x00000001006aceb7 in do_render_3d (re=0x10aba4638) at pipeline.c:1094 #12 0x00000001006ae061 in do_render_fields_blur_3d (re=0x10aba4638) at pipeline.c:1367 #13 0x00000001006afa16 in do_render_composite_fields_blur_3d (re=0x10aba4638) at pipeline.c:1815 #14 0x00000001006b04e4 in do_render_all_options (re=0x10aba4638) at pipeline.c:2021 ---------------------------------------------------------------------- Apparently a name conflict between the two Blender modules is taking place. The present commit hence intends to address it by putting all the Freestyle C++ classes in the namespace 'Freestyle'. This revision will also prevent potential name conflicts with other Blender modules in the future. Special thanks to Lukas Toenne for the help with C++ namespace.
2013-03-31remove blender foundation copyright from freestyle files.Campbell Barton
this can be added back on case-by-case basis, but better not assume ownership of another projects work by default.
2013-03-11Another big code clean-up patch from Bastien Montagne, thanks again!Tamito Kajiyama
2013-01-27Slightly generalized the crash fix in revision 54111.Tamito Kajiyama
Also added a warning message to anticipate potential issues due to the implication of the problem addressed here.
2013-01-02Yet another big style clean-up patch by Bastien Montagne, thanks a lot!Tamito Kajiyama
Now the code style is acceptable for the merge now, according to Bastien. Thanks again Bastien for having this done! :)
2012-12-12Fix for svn:executable.Tamito Kajiyama
Reported by Bastien Montagne, thanks!
2012-07-17Better handling of the ESC key during Freestyle rendering.Tamito Kajiyama
This commit is meant to improve the response of the ESC key for stopping Freestyle rendering throughout the rendering process. The rendering with Freestyle consists of several steps including: (1) mesh data loading, (2) winged edge construction, (3) silhouette edge detection, (4) view map construction, and (5) stroke drawing. All these steps have been extended to frequently check if the ESC key is pressed, so that users can abort time-consuming rendering at any point of time.
2011-10-06Fine control of feature edge selection with mesh face and edge marks.Tamito Kajiyama
New "face marks" and "edge marks" have been introduced in mesh data blocks. In the edit mode of a mesh object, face marks can be put to selected faces by choosing Mesh >> Faces >> Mark Freestyle Face from the menu of a 3D View window or Ctrl-F >> Mark Freestyle Face from the context menu. Similarly, edge marks can be put to selected edges by Mesh >> Edges >> Mark Freestyle Edge or Ctrl-E >> Mark Freestyle Edge. These marks should work fine with the Subdivision surface modifier. Moreover, two new conditions for feature edge selection have been added to the Parameter Editor mode as described below: 1. The Selection by Edge Types option has now the new Edge Mark type, which can be used to (de)select feature edges having edge marks. This option can be used to add to (or remove from) the view map arbitrary edges of mesh objects. 2. Selection by Face Marks option has been newly introduced, in which face marks are used for feature edge selection in two ways. One option is called "One Face" which is to (de)select feature edges if one of faces on the left and right of each feature edge has a face mark. The other option is "Both Faces" to (de)select feature edges if both faces on the left and right have a face mark.
2011-04-13Fix for a crash in silhouette edge detection. The problem wasTamito Kajiyama
reported by macouno. Thanks! The crash was caused by a lack of curvature information required for smooth edges. Now the curvature information is computed if and only if there are smooth edges. This leads to a minor performance improvement, because in the past the curvature information was always computed when the Face Smoothness was enabled. (To be precise, the above description is true when both the Ridges and Valleys and Suggestive Contours options are disabled. If they are enabled, the curvature information is always computed because it is necessary for the determination of these edge natures.)
2011-03-14Optimized view map calculation by Alexander Beels.Tamito Kajiyama
* View map calculation has been intensively optimized for speed by means of: 1) new spatial grid data structures (SphericalGrid for perspective cameras and BoxGrid for orthographic cameras; automatically switched based on the camera type); 2) a heuristic grid density calculation algorithm; and 3) new line visibility computation algorithms: A "traditional" algorithm for emulating old visibility algorithms, and a "cumulative" algorithm for improved, more consistent line visibility, both exploiting the new spatial grid data structures for fast ray casting. A new option "Raycasting Algorithm" was added to allow users to choose a ray casting (line visibility) algorithm. Available choices are: - Normal Ray Casting - Fast Ray Casting - Very Fast Ray Casting - Culled Traditional Visibility Detection - Unculled Traditional Visibility Detection - Culled Cumulative Visibility Detection - Unculled Cumulative Visibility Detection The first three algorithms are those available in the original Freestyle (the "normal" ray casting was used unconditionally, though). The "fast" and "very fast" ray casting algorithms achieve a faster calculation at the cost of less visibility accuracy. The last four are newly introduced optimized options. The culled versions of the new algorithms will exclude from visibility calculation those faces that lay outside the camera, which leads to a faster view map construction. The unculled counterparts will take all faces into account. The unculled visibility algorithms are useful when culling affects stroke chaining. The recommended options for users are the culled/unculled cumulative visibility algorithms. These options are meant to replace the old algorithms in the future. Performance improvements over the old algorithms depend on the scenes to be rendered. * Silhouette detection has also been considerably optimized for speed. Performance gains by this optimization do not depend on scenes. * Improper handling of error conditions in the view map construction was fixed.
2010-06-06Fix for a crash related to the feature edge detection at material boundaries.Tamito Kajiyama
2010-05-23New option to specify the angular threshold for detecting crease edges.Tamito Kajiyama
An entry "Crease Angle" has been added to the Layers tab of the Render buttons, to allow users to specify an angle (between 0 and 180) used for crease edge detection. An edge is considered a crease edge if the angle between two faces sharing the edge is smaller than the threshold. The default value is 134.43 degrees (for backward compatibility). Be aware that a larger threshold leads to a larger number of feature edges and thus a larger memory consumption.
2010-05-23New option for detecting feature edges at material boundaries.Tamito Kajiyama
A checkbox "Material Boundaries" has been added to the Freestyle options in the Layers tab of the Render buttons. By enabling the option, any edge between two faces with different materials is detected as a feature edge. In style modules, edges at material boundaries can be tested with pyNatureUP1D(Nature.MATERIAL_BOUNDARY).
2010-02-01Added support for orthographic camera.Tamito Kajiyama
The FEdgeXDetector class for silhouette edge detection and the ViewMapBuilder class for view map creation are enhanced. All changes are related to view point handling (i.e., the camera location). In the perspective projection, the visibility of feature edges and edge types (e.g., borders and crease lines) are computed based on a fixed view point, whereas the view point in the orthographic projection is an arbitrary point on the XY plane at the origin and is determined so that a line segment from the view point to a point in the 3D space is perpendicular to the XY plane. All view point related portions of the class definitions were modified so as to deal with the two different camera modes.
2008-07-24soc-2008-mxcurioni: added (without testing) the following classes: BBox, ↵Maxime Curioni
SShape, ViewShape. Also corrected a few typos (Get#->get#).
2008-07-22Added StrokeAttribute class. Beginning of StrokeVertex.Maxime Curioni
IMPORTANT: The setters functions' names were normalized due to constant confusion regarding capitalization. All the function names start with set... instead of Set.... This convention was changed all throughout Freestyle. To use Freestyle as an external renderer, the SWIG library MUST be regenerated.
2008-05-10soc-2008-mxcurioni: towards Freestyle compilation, removing Qt's QString and ↵Maxime Curioni
QImage dependencies. Up to this commit, the following directories compile well (and without any warning): system, image, geometry, graph, winged_edge, view_map, stroke. Modified code is commented by //soc and unused variables by //soc unused
2008-05-08soc-2008-mxcurioni: merged changes to revision 14747, cosmetic changes for ↵Maxime Curioni
source/blender/freestyle