Calligraphic effect approach

Hi, i m wondering how to draw in dx11 a “calligraphic ink like” effect for real time painting. I m working around it with a renderer in Clear=0 mode, and some images for the brushes. Is there other approach than this one ? thank you for your answers

First off you might look on to VL for that…
Second, don’t think there is anything ready, the proper way would be: to build ring buffer in compute (there is example), then draw as quad stripe on splines with gs…apply stroke texture…

Do you want this dynamic like a video effect, or more accurate like user draws something on surface?

Maybe have a look at:

The approach of not clearing the renderer is a very powerful one since you can use the cpu+gpu to draw anything you want every frame. I made a painting prototype with vvvv this way ~10 years ago where I had patches with standardised inputs/outputs that you could switch between for different brushes/tools.

Had some nice brushes where some were maybe a bit gimmicky (like drawing with news texts pulled from rss feeds and waveform from microphone) and others more painterly.

The downside is of course no undo without buffering the whole or parts of the image, no post editing of strokes etc

1 Like

Another downside was I stopped painting/drawing because of all the efforts programming and building hardware interfaces to control it…

thank you first for all your answers !

@beyon thank you, the undo is not used, it for painting live on stage, if my gesture is ok, the drawing will be ok. what i see in your image may help me a lot to have the good aprroach. would be very great if you find those old patches :)
@anthokio ah yes, if i dont want to clear, thats a good idea
@bjoern the video tutorial is useable in VVVV beta + VL or just Gamma ?

My goal is to arrive to such effect japanese way ( i have work on paper just to make analyse on what was happening with real ink and brush):

I just did few test’s, i think your best bet is to do some sort of videocapture, like glass, light and camera under glass, you draw on top ;]

The second one i came with, is you can do a TextureArray and store layers you draw as slices…

thank you antokhio, i will draw with a leap motion. why i are you thinking about a texture array ?
what are + and minus between ringbuffer/texture array and clear at 0 renderer ? thank you for your help :)

You can draw with 0 clear on renderer (and i would do darawing part in vl so you have more control over stroke) then you can write that to texture array as layer (on the end of stroke)

Hi @antokhio is it possible for you just to throw me here a little help patch using ring buffer ? how you would use it ?

the clear approach is giving me some troubles of clearness of the painting. maybe the good approach is not with the clear option. thank you

Hi @karistouf, i got only simplest version… I don’t think it actually works per stroke… (4.4 KB)

As it was mentioned previously also, maybe there is more sense to build up a queue of queue in vl, so you have access to the data in visual manner…

If you need help extending this stuff, let me know…

hi @antokhio , as i m not a VL coder, its really not possible for me go actually inside of it (needs to learn it before).

Thank you for your example, the ring buffer cs is ok for me. i have now the idea how to use it coupled to the clear function !!!

is it possible for you just to avoid this hader to receive a file texure 2d dx11 and transform pin for it ?

many thanks (5.5 KB)
Hi, did’t clean it up properly, and i’m pretty sure there are more elegant ways, but this way it’s quite easy to control at list…

Hi Antokhio tank you I have a dependency missing : setslice(texture array 2d)
wich pack is it ? i m on vvvv_50beta38.1_x86

it’s mp.dx