I’m working on Trace Modifier for Black Ink.
This features will be available for all brushes.
This system will modify the course of the line in real time accordingly parameters (and controllers).
For example this stroke modifier is adding a SinWave to the current position.
Or this one is computing a rotation orbit around the current position.
Thanks to the current controller engine Trace Modifier is greatly customizable and user-friendly to create behaviors in function of Pressure, speed, etc…
This modifier is helpful because he keeps the continuity of the tracing without any crack or hole in it.
Furthermore In the next version of Black Ink a new brush type will be introduced: the SimpleCurve which will render a smooth continuous curve and not a following of shapes like all brushes (except the Crepe) in Black Ink now for a better performance and homogeneity in the rendering.
The caveat is its not 100% perfect if there is some transparency and if the brush is really big (due to self-overlapping) but for thin lines it is excellent (in result and performance).
In the future the Trace Modifier will be used in jointly with a MultiBrush system to create stunning effects ;)
Flower Siggraph 2013
made by u2bleank
Layers are on the way
I currently worked on layers for BlackInk
This is the number one Uber priority feature who everyone request.
The engine is already shipped on the public version but the feature is not exposed because there’s still some work on the interface.
Today I just finished the implementation of the proprietary file .BKD ( for BlackInk Document ). Who will contains all layers datas ( who can’t be preserved in simple .png file ).
I don’t have the time for the moment to handle a real .PSD file but it’s an option for the futur.
To test the current layer functionality I did this little painting using a reference image, different brushes on different layers. Nothing special except the colors who are more vivid than ever ( compared to BlackInk prior version 0.111, ).
it’s been almost 2 months I work on a new brush rendering engine for BlackInk.
I spend most of the time to rewrote the way I do the AntiAliasing for brush primtives, the way I store the tiles of the canvas ( I compress it in real time in memory to keep the possibility to brush on 10K canvas in 32bits ) And I have added the support for Layers & 64bits color ( 16bits by component ).
Its was a big refactor work who nearly come to an end.
Here a sample of what I can do with the new version of BlackInk :
when it’s Friday evening and I don’t have the energy to start a new coding session I just open BlackInk and relax ;)
Here come my first picture made thanks to the new Controller Editor
made by u2bleank
The controller editor is enriched by new operators ( the list on the bottom left of the picture )
The user can define precisely the behavior of each parameter of his brush.
Here Benoit Onillon has made a Ghost dog in few second after he create a custom behavior for the default brush.
I’ve added more operators in the Controller editor of Black Ink.
I can now save and restore the graph and Undo/Redo all operations.
But there’s still some missing operators and features for a public release
Another sample of our block system who will be used in the next version of BlackInk
kaldap asked: Hello! I just found your article about stroking quadratic curves. I'm currently trying to implement it for my bachelor thesis, but with all my aproaches I fall for some bloody hacks to handle the antialiasing correctly. Could you please tell me which method you used (if that is not company secret :))? I don't need any fancy implementation details, just the main idea. Thanks in advance! Petr K.
For antialiasing I compute a 1 pixel wide geometry around the Quadratic triangle ( you can see the triangulation here ).
It’s not trivial like you say because you must handle some case ( like 2 quadratic triangles who are touching each other at vertex position ) + taking care of the direction of the implicit surface ( is it convex or concave quadratic triangle ) to make sure the geometry cover each needed pixel for anti aliasing.
It took me quiet some time to adress all the case and even with it I got some case where the AntiAliasing isn’t correct ( when a triangle is less than 1 pixel size for example ).
A better approch will be to use MSAA. It’s the only solution for perfect AntiAlising rendering in all scenario and it’s more simple to implement and manage. The caveats is the memory needed to handle really good quality AntiAliasing.
Hope this help.
Work in Progress of Controller Editor integration in Black Ink.
The controller editor will allow the user to fine tune each parameter of his brush thanks to “block” programming.
We choose to avoid nodal programming with curved line for a better readability.
Steam has opened the last week GreenLight to non gaming software.
It’s a great opportunity for us to put Black Ink on a great app store.
So if you have a Steam account upvote for us ;)