-
Notifications
You must be signed in to change notification settings - Fork 233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update system mem #2393
Update system mem #2393
Conversation
* added gcode node * description corrected * fixed continuous extrusion * added credits * added feed movements * new formula * close all shapes * list matches and path preview * text format * removed one output socket * Added Evaluate Image Node and fixed limit in Image Node * removed comments * CLIP and EXTEND tile mode in Evaluate Image Node * removed unnecessary code
For some screen resolutions (e.g. mac book pro with retina display / double pixel resolution) the index viewer node's font size was too small to read and needed a scale factor of 2x. With this new setting the user can define the desired font scale in the SV preference settings. The default font scale is 1.0.
- made scale and xy multiplier pref settings generic to be used by multiple nodes - add scale/multiplier adjustments to the texture viewer and easing node and update stethoscope node to use the same scale/multiplier
* line mk3 with AB and OD modes * updated tests to mk3 * lime mk3 docs
* Added Alpha and BW grayscale * fixed grayscale
Profiling the edge generation indicated that it is a slow operation and since this edge list is generated over and over in various nodes it makes sense to cache it. Profiling of various nodes (generating edges) indicated a speedup of almost two orders of magnitude in generating the edges compared to the list comprehension counterpart (e.g. edges = [[i, i+1] for i in range(N)]. With the proposed optimization, the list of edges are stored in an edge cache (e.g. [[0,1], [1,2]... [n-1,n]] .. and the cache is extended as longer edge lists are requested/generated. Any call to get_edge_list will return a subset of this edge cache thus not having to re-generate the same list over and over. Various nodes like the line, spiral, torus knot, ellipse etc, which that generate lines with linear list of edges can benefit substantially from this speedup. To get the linear edge list use: edges = get_edge_list(n) returning: [[0, 1], [1, 2], ... , [n-1, n]] To get the loop edge list use: edges = get_edge_loop(n) returning: [[0, 1], [1, 2], ... , [n-2, n-1], [n-1, 0]]
Optimize the linear edge list generation using caching
New PolygonSort node
…ing the following: Sum Sum Of Squares Product Average Geometric Mean Harmonic Mean Standard Deviation Root Mean Square Skewness Kurtosis Minimum Maximum Median Percentile Histogram
Add new List Statistics node
Port the same preference settings for xy/scale into the TVL node to fix the location and the size of the rendering.
Add scale/multiplier to TextureViewerLite node to fix rendering
The combinatoric operations implemented so far, based on itertools module are: PRODUCT PERMUTATION COMBINATION
Add new Combinatorics node
- add 3 nodes: Quaternion In, Quaternion Out and Quaternion Math Quaternion In: Provides conversion from various quaternion components to quaternions (selectable via the mode option): - components wxyz - angle + axis - euler angles - matrix Quaternion Out: Provides conversion from quaterions to various quaternion components (selectable via the mode option): - components wxyz - angle + axis - euler angles - matrix Quaternion Math: Provides various quaternion arithmetic operations: ADD SUB MULTIPLY DIVIDE ROTATE DOT DISTANCE NEGATE CONJUGATE INVERT NORMALIZE SCALE MAGNITUDE Note: some operations take multiple quaternion inputs (input list grows as new sockets are connected), two quaternion inputs, single quaternion inputs, or quaternion + scalar input.
Add Quaternion nodes
…tures The node will mix various other types (not just int/float) hence the name change. Add various types to the MixInput node + new features & update UI - add new types to mix: Vectors, Colors, Quaternions and Matrices. - add SWAP feature to let the input A & B be swapped - add MIRROR feature to mirror the interpolation factor - add custom icon to MixInputs node - relocate old MixNumbers node to old nodes - update documentation
Formula node mk3
Extend the features of the first cylinder node. This includes: - show/hide top/bottom caps separately - add twist to the parallel cuts - add overall phase to the parallel cuts - add parallel and meridian profiles to modulate the parallel loops and meridian lines - add overall scale - add centering option
Add new Cylinder node MK2
deleting unused operator
This looks awesome!
|
|
This is an attempt to remake update system. Main goal is to make such system that would calculate node only when this is really need. I think this can become really important update of Sverchok that will make nodeing a little bit easier.
There are 3 update events:
In new update system there are 3 conditions that determine should node be recalculated or not:
In most cases this approach should work faster and even much more faster.
This branch is ready to test. In this moment monads is not supported yet the same as nodes which takes data from blender database excluding frame info node.
Testing instruction:
After that you can start testing. In node tree changed nodes will have red color. If you will notice some nodes that should not be updated but nevertheless has red color please make bug report in this topic.
It is possible to get additional information about process of update system:
For this you should enabled debug level of logging in Svechok settings and toggle log to text buffer.
Now in "Sverchok log" text file updating information is available.
For better perfomance of animation I would recommend disable logging.
#2380
Preflight checklist
Put an x letter in each brackets when you're done this item: