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
2010-04-08Replaced PyObject_HEAD_INIT(NULL) with PyVarObject_HEAD_INIT(NULL, 0)Tamito Kajiyama
in the definitions of Python wrappers.
2010-04-08Got rid of a number of compiler warnings with regard to redefinitionsTamito Kajiyama
of _POSIX_C_SOURCE and _XOPEN_SOURCE. There are no functional changes. Tested with GCC 4.4.1 on Ubuntu 9.10 (karmic).
2010-04-01Fixed a compiler error in AppCanvas.h (thanks paulhart2). Also fixedTamito Kajiyama
a compiler warning in pipeline.c with regard to the missing prototype definition of free_libblock().
2010-03-30Fix for the issue described in the commit log of revision 27846: MadeTamito Kajiyama
the diffuse and Z depth information accessible from style modules when the border option is enabled.
2010-03-30Second attempt to fix the border option. At the moment, accessingTamito Kajiyama
diffuse and Z depth information through style modules won't work correctly with the border option. Another fix will follow.
2010-03-30Fixed the border option that was not functional when the crop optionTamito Kajiyama
was turned off.
2010-03-29Merged changes in the trunk up to revision 27817.Tamito Kajiyama
2010-03-28Slightly reduced the memory consumption during stroke rendering byTamito Kajiyama
removing ListBase BlenderStrokeRenderer::objects and relying on Base freestyle_scene::base instead.
2010-03-28Fixed the full sample anti-aliasing support in Freestyle.Tamito Kajiyama
The render pipeline has been extended to better work with Freestyle stroke rendering. Struct Render has a new member ListBase freestyle_renders to keep Render instances generated through stroke rendering in Freestyle. The number of elements (LinkData instances with LinkData::data pointing to a Render instance) in freestyle_renders is the same as the scene render layers of the scene being rendered. When the k-th scene render layer has the Freestyle option enabled, the k-th element of freestyle_renders refers to a Render instance that holds Freestyle render results for the scene layer. This association between the scene render layer and the Render instance is used to merge the Freestyle render results into the corresponding render results for the scene render layer.
2010-03-02Made an attempt for fixing an instability issue regarding animationTamito Kajiyama
rendering. RE_BlenderFrame() and RE_BlenderAnim() are Blender's internal top-level rendering API functions for a single frame and a series of frames, respectively. These functions rely on global variables to keep render pipeline states. Freestyle's stroke rendering was also using RE_BlenderFrame to render a temporary scene of stroke meshes. These nested calls of the top-level rendering API functions were causing broken render pipeline states and eventually led to a crash. This commit is intended to fix the issue, by introducing an rendering API function RE_RenderFreestyleStrokes specifically used for stroke rendering in Freestyle. The new function does not do anything with regard to the global variables in the rendering API implementation.
2010-02-19Added support for procedural duplication (such as DupliVerts and DupliFaces).Tamito Kajiyama
2010-02-17Removed debugging printf() calls.Tamito Kajiyama
2010-02-17Fixed bugs in AppCanvas::readColorPixels() andTamito Kajiyama
AppCanvas::readDepthPixels() that caused a crash when the aspect ratio was not 1:1.
2010-02-16Added support for transparent stroke colors (again).Tamito Kajiyama
Transparent strokes are rendered by means of transparent vertex colors. To make this possible, Blender's internal renderer has been slightly extended to allow transparent vertex colors. When Material::vcol_alpha is non-zero, the renderer takes MCol::a into account.
2010-02-15Reverted the changes for adding support for transparent stroke colors,Tamito Kajiyama
because of incomplete functionality. When two transparent strokes intersect, the stroke drawn first is completely overridden by the stroke drawn after the first stroke, instead of two stroke colors being blended at the intersection.
2010-02-14Added support for pixel-based density and Z depth information.Tamito Kajiyama
Availability of pixel-based density and Z depth information depends on passes of a render layer being rendered. - Density information is available if the diffuse pass of the render layer is enabled. It is accessible through the DensityF0D and DensityF1D functions provided by the Freestyle Python API. These functions return 0 if the diffuse pass is disabled. - Z depth information is available if the Z pass is enabled. It can be accessed through LocalAverageDepthF0D and LocalAverageDepthF1D. These functions return 0 if the Z pass is disabled.
2010-02-13Added changes for showing the rendering status in the status bar ofTamito Kajiyama
the Info window.
2010-02-13Added changes for escaping from rendering by pressing the ESC key.Tamito Kajiyama
ESC key press checks are performed 1) before entering Freestyle, and 2) after the completion of the view map creation.
2010-02-13Merged changes in the trunk up to revision 26856.Tamito Kajiyama
2010-02-13Further consolidation of the view map creation.Tamito Kajiyama
Made Controller::_EPSILON constant with the value 1e-6. Previously, the _EPSILON value was computed based on the minimum edge size within the scene being rendered (in some cases, the computed value resulted in zero). This does not seem to make sense, because _EPSILON has been used as a tolerance threshold of floating-point arithmetic errors throughout the view map creation. Since Blender uses single-precision real values for mesh data representations, the new constant _EPSILON value looks more adequate.
2010-02-12More consolidation of the view map creation.Tamito Kajiyama
Made an attempt to fix "2D intersection out of range" warnings. These warnings may cause "3D intersection out of range" warnings, which often lead to a crash.
2010-02-08Added support for transparent stroke colors.Tamito Kajiyama
In Freestyle, strokes are represented with triangle strips, and stroke colors are realized using vertex colors in order to enable variable stroke colors (i.e., each triangle has a different color). Stroke colors in Freestyle are in the RGBA format, while vertex colors in Blender do not have an alpha component. Therefore, we here employ a 2-pass rendering approach as follows. First, the alpha component of an image is rendered by using the red component of vertex colors as the alpha component of stroke colors (1st pass). The render result is saved into a temporary buffer. Then, the vertex colors of stroke meshes are replaced with RGB values, and the RGB components of the image is rendered (2nd pass). Finally, the RGB and alpha components are merged to produce the render result in the RGBA format.
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.
2010-01-30Fixed a bug that visible strokes are not rendered correctly whenTamito Kajiyama
the aspect ratio is not equal to 1:1.
2010-01-30Improvements of mesh importing.Tamito Kajiyama
Previously mesh vertices imported from vlak nodes were transformed from the camera coordinate system to the object local coordinate system. This causes a difficulty in recovering object local vertices when mesh deforming modifiers (e.g., curve, cloth, and soft body) have been applied. Now the view map creation is done based on mesh vertices in the camera coordinate system. Advantages of this approach includes: 1) faster mesh importing because of less matrix-based transformations; and 2) proper handling of meshes with deforming modifiers.
2010-01-30Replaced "math.h" by "BLI_math.h" to suppress a warning with regardTamito Kajiyama
to redefinition of M_PI.
2010-01-30Fixed a bug that caused a Y-direction offset in rendering results.Tamito Kajiyama
The renderer now takes the aspect ratio settings into account.
2010-01-27Made an attempt to improve memory consumption during strokeTamito Kajiyama
rendering. When objects exists out of the viewing frustrum and near the near clipping plane, feature edges in the 3D camera coordinate system are projected to an extremely far location from the camera view in the 2D image space. These feature edges result in very long strokes with a large number of stroke vertices, which temporarily require a significant memory storage, causing a fatal "out of memory" error. This problem is partially addressed by the changes in the present commit.
2010-01-25Clipping of imported meshes by the near and far view planes.Tamito Kajiyama
A straightforward clipping algorithm was implemented to eliminate vertices that are out of the interval from the near to far clipping distance defined by the active camera. Previously, objects that come behind the camera could lead to a crash. The changes in this commit is intended to address this issue. When meshes are partially clipped, new edges are added. These edges can result in visible strokes if they are within the camera view.
2010-01-19Made a minor fix in SilhouetteGeomEngine::ImageToWorldParameter().Tamito Kajiyama
2010-01-18Fixed a bug in SweepLine.add() that the returned value ofTamito Kajiyama
GeomUtils::intersect2dSeg2dSegParametric() was not properly tested. Now two collinear line segments are not considered an intersection.
2010-01-18Improved the robustness of SilhouetteGeomEngine::ImageToWorldParameter().Tamito Kajiyama
Now the 2D-to-3D inverse projection transformation is performed by the direct solver first when it is applicable (i.e., when division by zero does not occur). Otherwise the iterative solver is used (it is always applicable because there is no risk of division by zero). Both solvers were consolidated through several bug fixes.
2010-01-16Added a minor change to SilhouetteGeomEngine::ImageToWorldParameter()Tamito Kajiyama
in order to check if the given FEdge is perpendicular to the near/far clipping plane of the viewing frustrum. Also added a direct solver of the 2D-to-3D inverse projection transformation problem (currently disabled by #if 0).
2010-01-10Merged changes in the trunk up to revision 25863.Tamito Kajiyama
2010-01-10Fixed a bug in SilhouetteGeomEngine::ImageToWorldParameter() that causedTamito Kajiyama
instability issues regarding the view map creation. A new iterative solver of the 2D-to-3D inverse projection transformation problem was implemented. Instead of directly solving the problem in the direction from the 2D to 3D space, the new solver starts with an initial guess of an approximated solution and asymptotically approaches to the true solution by iteratively performing the forward 3D-to-2D projection transformation and improving the approximation. Preliminary tests with one simple and another complex scenes showed that the solver converges quickly (more and less 20 iterations in many cases, with a stopping criterion of a residual distance between the true and approximated solutions less than 1e-6 Blender Unit).
2009-12-29Added #include <math.h> to suppress a warning with regard toTamito Kajiyama
redefinition of M_PI.
2009-12-22Merged changes in the trunk up to revision 25508.Tamito Kajiyama
2009-12-14Fixed compile errors due to an incomplete list of header directories.Tamito Kajiyama
2009-12-07Added Freestyle.getCurrentScene() to give access to the current sceneTamito Kajiyama
from within style modules. Calling this function is only valid within style modules. Calling it from the Python Interactive Console results in an error as follows: >>> import Freestyle >>> Freestyle.getCurrentScene() Traceback (most recent call last): File "<console>", line 1, in <module> TypeError: current scene not available >>>
2009-11-30Merged changes to revision 25007.Tamito Kajiyama
The following files were according to the Math Lib reorganization (see the commit log of revision 24464 for more information): source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp source/blender/freestyle/intern/blender_interface/BlenderFileLoader.h The file release/scripts/ui/properties_render.py was also updated according the RNA UI API renaming in revision 24795.
2009-11-10Improved context handling. Previously FRS_initialize() was used for bothTamito Kajiyama
initializing Freestyle and specifying contexts, making the API a bit messy. Now FRS_initialize() is only for initialization, and contexts are specified by new FRS_set_context() function just before starting rendering.
2009-11-01* Removed a back pointer to a Scene (the "current" scene as in BlenderTamito Kajiyama
2.4x) from within Freestyle. Now Freestyle configuration parameters are edited without relying on the notion of the current scene. This resolved a few related issues as described below: - A bug in Freestyle configuration management with respect to multiple scenes was fixed. Now Freestyle configuration parameters (e.g., style modules, ridges/valleys, suggestive contours) can be specified for each render layer of each scene. Composition of multiple render layers from different scenes should work as expected. - A crash after undoing was fixed as well. * Removed unused external Freestyle functions and global variables from FRS_freestyle.h and FRS_freestyle.cpp.
2009-10-27Fixed PythonInterpreter::interpretFile() so as to just use add_text()Tamito Kajiyama
instead of add_empty_text() plus file I/O code of its own.
2009-10-18Improved error checks in the Freestyle.Nature class.Tamito Kajiyama
2009-10-18Fixed a bug in the Freestyle.Nature class that instances are alwaysTamito Kajiyama
considered True even if their integer values are 0.
2009-10-18forgotten files of last commitMaxime Curioni
2009-10-18merged changes to revisio 23915Maxime Curioni
Updated buttons_render.py to have Freestyle buttons Added "empty" BlenderTextureManager as preliminary step to remove last remnants of OpenGL and to allow Freestyle to run on my machine.
2009-10-15* Fixed compiler warnings concerning the lack of a newline at theTamito Kajiyama
end of a file. * Fixed compiler warnings due to an invalid argument to PyList_New(). NULL was used instead of 0 to create an empty list.
2009-10-15Moved #include "BLI_jitter.h" to the beginning of a series ofTamito Kajiyama
#include statements as a workaround of symbol conflicts involving rad1 and rad2 in the header file. As a side note, a different solution of the issue was attempted in revision 17518 of the branch.
2009-10-15Fixed a linker issue resulting in undefined reference to Freestyle_Init.Tamito Kajiyama
The issue was caused by the order of libraries given to the linker. More specifically, libbf_python.a should precede libbf_freestyle.a, which is assured by choosing an appropriate 'priority' value of a BlenderLib.