Commit Graph

142 Commits

Author SHA1 Message Date
Campbell Barton 133f79e449 Cleanup: warnings, typos 2014-10-29 14:15:21 +01:00
Tamito Kajiyama fe9394741b Freestyle: silence a GCC warning (-Wunused-function). 2014-10-09 01:31:08 +09:00
Tamito Kajiyama 14df7de916 D801: Freestyle: remove old and unused stroke shaders
This patch removes several stroke shaders written in C++ that are unused
and don't serve a real purpose any more.  The removed shaders are:

  - BPy_ColorVariationPatternShader
  - BPy_StrokeTextureShader
  - BPy_TextureAssignerShader
  - BPy_ThicknessVariationPatternShader
  - BPy_fstreamShader
  - BPy_streamShader

and a few more that weren't even exposed to the Python API.

Some minor edits were made by the reviewer.

Differential Revision: https://developer.blender.org/D801

Reviewed by: kjym3
2014-10-09 01:31:07 +09:00
Tamito Kajiyama c47682d6ab Freestyle: Fix for destructive view map modifications during chaining operations.
The view map is mostly treated as a read-only data structure by line stylization
operations (i.e., selection, chaining, splitting, sorting and stroke creation).  The
only exception is the chaining operation in some cases where insertion of extra
FEdge objects is necessary to ensure the continuity of underlying FEdges from
which a chain is constructed.

The present revision addresses the removal of extra FEdges so to keep the view
map clean and suitable for reuse in subsequent render frames.
2014-10-02 17:52:16 +09:00
Tamito Kajiyama c946a450ed Freestyle: Finer memory statistics with CXX_GUARDEDALLOC. 2014-10-02 17:52:14 +09:00
Tamito Kajiyama c900cd3bd8 Freestyle: Expose the Operators.reset() function to Python.
The Operators.reset function is exposed to the Freestyle Python API, which makes
it possible to combine multiple style modules into one file.

Differential revision: https://developer.blender.org/D802

Author: flokkievids (Folkert de Vries)

Reviewed by: kjym3 (Tamito Kajiyama)
2014-09-28 11:17:31 +09:00
Tamito Kajiyama d342f46682 D713: correct error /w braces (freestyle)
Differential revision: https://developer.blender.org/D713

Author: campbellbarton (Campbell Barton)
2014-09-23 22:35:15 +09:00
Tamito Kajiyama f6b4b12961 Better fix for T41464: Material Boundary bug in Freestyle.
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-09-02 21:24:41 +09:00
Campbell Barton 7c9b8aa6cc Fix possible uninitialized var use 2014-08-13 10:38:08 +10:00
Tamito Kajiyama 7b1234be1c Removed/disabled debugging code. 2014-08-12 10:10:37 +09:00
Tamito Kajiyama 34c133a488 Freestyle: an improved workflow of line style shading nodes.
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-12 10:10:36 +09:00
Tamito Kajiyama c38e80d632 WIP commit just for a record of a working snapshot of code revisions for node-based textured strokes. 2014-08-12 10:10:35 +09:00
Tamito Kajiyama 1ddb8e238e Freestyle: Keep a reference of the line style in Stroke rather than in StrokeRep. 2014-08-12 10:10:31 +09:00
Tamito Kajiyama fc85446c50 Freestyle: Added preliminary support for textured strokes in Cycles.
Now the shader node tree of a line style ID datablock is used to define textures
as well as their mapping and influence.

TODO: Textures alpha channel mapping and influence.
TODO: Blend mode in the Output Line Style shader node.
2014-08-12 10:10:20 +09:00
Tamito Kajiyama aa7f9197c7 Freestyle: added a note on #include "DNA_material_types.h". 2014-07-22 12:24:44 +09:00
Tamito Kajiyama 812515b623 Freestyle: Fix for a potential infinite loop in stroke resampling by vertex count.
Changes were made in Stroke::Resample(int) in C++ to prevent a potential infinite loop
caused by an inconsistency between Stroke::_Length and the stroke length computed
based on stroke vertices.  Such a stroke length inconsistency is usually caused by missing
calls of Stroke::UpdateLength() (i.e., API implementation bugs), but also may occur due
to scripting errors in user-defined style modules.  This commit is meant to help script
writters to identify the latter error cases.  Now Stroke.resample(int) may raise a runtime
error to signal an error condition.
2014-06-04 15:03:42 +09:00
Tamito Kajiyama fce731a175 Fix for thinning strokes at intersections between visible and background 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-26 10:54:25 +09:00
Tamito Kajiyama 08528f577d Freestyle: Partial fix for thinning strokes due to flipping stroke directions at TVertices.
A description of the problem is found in https://developer.blender.org/T36425#19 .

The cause of the issue was identified as roudning errors in Operators::createStroke() due
to insufficient numerical precision.  Precision promotion from float to double was done in
the return values of getPoint3D/2D methods in Interface0D and its subclasses in C++
(data members stored in the 0D classes have already been in double precision).
2014-05-25 19:47:49 +09:00
Tamito Kajiyama 51fa66bc64 Freestyle: Fix for comments in line with the previous commit. 2014-05-13 09:16:28 +09:00
Tamito Kajiyama ae00a2b3fd Freestyle: Removed redundant flipping of UV coordinates.
Patch contribution by Paolo Acampora.  Thank you!
2014-05-13 09:16:28 +09:00
Tamito Kajiyama c4e277d53b Freestyle: Fix for a wrong interpolation of stroke segment visibility. 2014-05-09 20:48:15 +09:00
Tamito Kajiyama 1d03a8b309 Freestyle: minor code clean-up. 2014-05-07 23:16:24 +09:00
Tamito Kajiyama fe0236be78 Freestyle: time/space optimization in stroke rendering without textures.
When strokes do not have textures assigned, UV coordinates are not computed now.
This will save a bit of time and space in stroke rendering.
2014-05-07 23:16:23 +09:00
Tamito Kajiyama a351ff7264 Freestyle: removed the dummy implementation of a texture manager.
Legacy texture shaders from the original stand-alone Freestyle program are also
declared as deprecated, in favor of Blender's new line style textures.

Patch contribution by Paolo Acampora.  Thanks!
2014-05-07 10:57:32 +09:00
Tamito Kajiyama ef1e511bb6 Another attempt to fully fix T40020: Freestyle: dashed lines crashes blender.
Problem report by flokkievids through rB047c3aa728a4bb944616a084805988714b796d52#1.
Thanks!
2014-05-05 22:30:00 +09:00
Tamito Kajiyama 047c3aa728 Fix T40020: Freestyle: dashed lines crashes blender.
The crash was due to an out-of-range vertex index reference that occured while
computing texture coordinates of strokes with tips.
2014-05-05 11:33:53 +09:00
Tamito Kajiyama b7f085d9c1 Patch D246: Texture Marks for freestyle strokes, written and contributed by Paolo Acampora.
Reviewers: brecht, kjym3, #freestyle

Reviewed By: brecht, kjym3

Differential Revision: https://developer.blender.org/D246
2014-05-03 18:54:59 +09:00
Tamito Kajiyama 6161e4420e Quite compiler warnings. 2014-04-18 15:02:43 +09:00
Sergey Sharybin ad2064ae88 Fix compilation error of Freestyle
Seems to be some sort of namespace conflict or so which is
solved by reshuffling the includes a bit.
2014-04-17 16:04:47 +06:00
Tamito Kajiyama 1674a04488 Freestyle: removed unused *_EXPORT qualifiers for building Windows DLLs.
These qualifiers were leftovers of the stand alone Freestyle program and not used
(set to an empty string) in Blender for years.
2014-04-17 14:37:13 +09:00
Tamito Kajiyama 68aea619f5 Replaced assert() with BLI_assert(). 2014-04-17 14:37:11 +09:00
Tamito Kajiyama 3458bad12d Freestyle: removed unnecessary #include files and made minor code cleanup. 2014-04-17 14:37:10 +09:00
Tamito Kajiyama 01a4a09f29 Freestyle: Fix for VC++ warnings about 'hypot' macro redefinitions (Part 4).
(See commit e1771e72fbbf828dbf5bed871b814288389f3611 for more detail of
the problem).

Fix for a C++ scope issue caused by 'using namespace Freestyle' that was assumed
even within the Freestyle namespace definition.
2014-04-17 14:37:09 +09:00
Tamito Kajiyama 77b37fa461 Freestyle: Fix for VC++ warnings about 'hypot' macro redefinitions (Part 3).
(See commit e1771e72fbbf828dbf5bed871b814288389f3611 for more detail of
the problem).

Made changes to intern/view_map/Interface0D.h and intern/python/Director.h to
avoid #include <Python.h> and keep non-Python header files independent of it.
2014-04-17 14:37:08 +09:00
Campbell Barton ea99efeb2c Code cleanup: indentation 2014-04-15 19:44:13 +10:00
Campbell Barton 5dc23e6df8 Code cleanup: make the source G rated again. 2014-04-07 20:44:26 +10:00
Tamito Kajiyama 2dedf2a4e6 Missing file in commit 12302011d6207a60b24d0cae71a88df0384bc5da. 2014-04-04 23:47:31 +09:00
Tamito Kajiyama 62bf22e27b Freestyle: Removed SVertex _curvatureFredo and _directionFredo and their getter/setter methods..
These data elements are undocumented and of little use.  For now they are commented out
in the implementation in favor of less memory consumption, and a very limited support for
these data components in the Python API was just removed (should be easy to recover).
2014-04-04 23:47:31 +09:00
Campbell Barton 617557b08e Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT define 2014-04-01 15:22:28 +11:00
Tamito Kajiyama fdcdd5e52e Freestyle: Follow-up fix for the chaining operation bug in the previous commit.
Many thanks to flokkievids for identifying the inconsistency.
2014-02-13 09:56:56 +09:00
Tamito Kajiyama 054094f582 Freestyle: Fix for chaining operators not concatenating edges with Freestyle edge marks and at material boundaries.
Problem report by Postoman on the BlenderArtists.org Freestyle thread, thanks a lot!
2014-02-12 18:17:21 +09:00
Campbell Barton 1dc1d92dab Code cleanup: white space and cmake was broken on all platforms 2014-02-03 13:56:34 +11:00
Alexander Kuznetsov e2429d6492 Woo Hoo. First git commit.
Changes for VC2013

Now, I can build Blender with VC2013 with Cycles, Collada, OpenExr,OpenImageIO disabled. Also, you need VC2008 sp1 installed to make old libs compatible.
2013-11-29 15:13:12 -05:00
Campbell Barton beae4f498d code cleanup: spelling 2013-10-31 14:10:01 +00:00
Campbell Barton aa8488421f style cleanup: whitespace & odd indentation 2013-09-21 10:46:58 +00:00
Campbell Barton 8beb565c59 code cleanup: headers - doxy comments. 2013-09-12 03:02:50 +00:00
Campbell Barton 47c23750e8 style cleanup: indent/whitespace 2013-08-19 01:48:44 +00:00
Campbell Barton 98c574e41a use 'greater/less then or equal to' operators rather then adding 1. 2013-08-11 05:40:35 +00:00
Campbell Barton 5129112072 add c++/guardedalloc to more freestyle classes, also remove redundant 'public:' 2013-08-04 18:50:00 +00:00
Tamito Kajiyama 15a2287a8e Fix for incorrect clipping of Freestyle strokes when the viewport preview is used. 2013-07-07 15:29:00 +00:00