» pure image treatment question: wich evolution for vvvv ?
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

pure image treatment question: wich evolution for vvvv ?

question open devvvv

karistouf 21/05/11 - 04:29

hi everybody, and hi dear devvvvs.

i m actually testing touchdesigner, just playing around. and i m completey stuck / stumbed / astonished by the easyness of having mix in all senses with its filters.

i dont like at all the interface but i think really that for visual treatment or effects on videos or sources, woaw... that is really powerfull, and very quick to patch, without fighting with ressources.

BUT... i m in love with VVVV, and its inner, quick and elegant wild freedom.

I would like to know if you, or users, could propose a newer way for live images treatment than the fx ( hard coding), or freeframes , renderer based structure.

something like basic elements ( operators add, diff, blur, mathematic, anything) that could be added and daisy chained to create at the end only one filter treatment to one renderer:

( dummy sample:)

videoIN > videotexture > ADD > MIN > EXPR > CONTRAST > SATURATION > MIN > BLUR > quad > renderer

could that be a sort of code agregator, pipeling elements ? or should that be a hidden renderer new structure in VVVV ?

is that relaying on the dynamic plug in missing structure ( i mean texture IN - texture OUT) ?

voilà, yours
christoph

339 replies 0 new

yea karistouf check HSL Transform>RGB Transform....

hi anthokio, thanks for this quote...
didn t know, it, this really nice....

here i m just affecting the quad where am im putting the image. like if i was putting a color... hum...

i m talikng about compositing coding

you know the rules of speed is quite annoying
and touchdesigner quite suck on that one as i know...
eventually in dx you can't do a shit without shaders and it's going further and further in that direction.....

well what i have tested in touch designer is far speed and less consuming resources than shaders in vvvv...
and mroe versatile

Even in the visual programming environment, certain things are just better implemented with code. I highly recommend learning some basic c# and shader c0ding if you plan on creating complex patches.

I mok with you gilbi. Done also some painfull learning with shaders. But when i m looking at tdesigner easyness to compose effects on a simple texture, i m saying here there is something missing in vvvv

We are all happy with vvvv but dont forget despite the dynamic plug in way that vvvv is not for programmers only ! ;-)

link | Flag this reply as a solution. joreg (vvvvgroup) 22/05/2011 - 21:36

helo karistouf,

not sure if i understand your needs correctly so forgive me if i am stating something obvious, but please see attached for a simple/extensible proof of concept to realize a texture manipulation/fx chain.

think of each of the fx-modules as a freeframe/gl plugin (just not coded in cpp but patched in vvvv) that you can chain together and mix arbitrarily. see? all you have to do is work on a set of such modules which you can then easily reuse at will. those modules can include .fx or plugins or can be completely patched.

all you'd need to do is specify a standard for such fx-modules (specify inputs and outputs), call it freeframeV4 and everyone can contribute/share their fx.

now it seems to me a few people out there are already building their setups on such private spec:

  • svvvvitcher
  • switchboy
  • avs-mixer
  • eno has something cooking (which should be quite well done by now)
  • and i am quite certain some others have something similar too

so please makers of the above step forward, explain your personal spex, discuss and find common ground on a freeframeV4 specification. maybe there are even parts in the freeframe1.5 spec that can be ripped...

like this everyone could still have their own GUIs (which of course makes sense) but fx could be shared, horray. or karistouf says this is not what he was asking for in which case everyone please keep reinventing the wheel.

hi joreg, thanks to have taken the time of this long answer and demonstration . ;-)
once again learned a lot with the constant one.

svvvitcher, etc ... : i m not at all talking about GUI, but about pure compositing approach and facilities.

What i want to say, and maybe its not really clear, is that after my last project (http://vimeo.com/21553814 ) i would like really to put more energy in artistical field rather than trying to write poor not really good shaders . I m doing with what i can do, and only contributions are helping nicely where my skills are not there.

SO im talking about something that would help poor boys that we are, and avoid to make them write or transform shader when they dont know really what they are doing ;-) yes i know, make the effort to learn they say ! but not anybody is good in this field.

it would be really great to have directly into VVVV a more advanced texture effect base.

something where we could connect directly, without building subpatches and renderers, the texture to, and outputing the texture as a result, in a fluent manner.

I mean something like (Texture) family , that would let have access on a calling a simple node to the following things:

  • mixing operators like:

difference, burn, add, xor, divide, etc.. mul, div, all operators etc

  • texture modifiers:

saturation, thresholds, color reduction, set alpha channel, chroma key ( yes we need), contrast, edge ( differents edges type), emboss, noise, bumpers, blurs with several algorythm, solarization, all effects basis....

  • opencv or others functions but not in freeframe format (*)

I know that globally we could say that all of this is somehow present in contributions.
But really it would be interresting to have high quality treatment built-in and written by shaders specialist.

Basics are present with contributions, but if i just open my gimp, for edges i have 5 or 6 different algorythms and more parameters.
About Blur, i have spoken about TDesigner, but if i refer to Gimp again, there are many way to blur, and many parameters, enabling to obtain different results.

What i mean is that actually shaders are a bit auster and something more versatil and rich would be great. Yes i know this is contributions, but really it would be great to be less dependant of contributions when you don t have shaders skills !

  • AND at least, a real getpixelvalue/setpixelvalue function would be nice... pipet is great, but creating quads to transform pixels by data manipulation is really ressources consumering.

So to make short: i would like to have little nodes, transforming the texture with all basic operators you can find in a shader, but without having to create shaders.
i would like to have acess to high quality image filtering, built in VVVV.

Voilà, joreg, i hope i was clear and not wacky ! ;-)
what do you think ( and others) about it ?

(*): Freeframes are less quick than pixelshaders, and a real difference of speed is present when you work on a complex patch. I m not sure freeframe is a good solution, GPU based should be the standard ( no conflict with PS ).

I'm not really sure what you're saying karistouf. I think most/everything you want is in vvvv already. It's just finding it.

for mixing operators try this >blend-those-pixels

I pulled this from the old legacy list of shaders, you seen this page? there may be some other shaders that help you do what you want to do.

you reference wanting different edges type. You're only going to get different edge types using shaders. If you want this in vvvv you or someone is going to have to program it. I think you're basically asking the devs to spend some time on developing some more shaders. I'd love to see this too but I'm not sure this is how they do things. If you're after a certain effect posting on the forum normally starts getting you places and you might get a dev that will put some time in and sort it for you. Maybe start a thread and try and pull some people to help develop some of the effects you're talking about.

I understand you want all these effects in a node but I'm not sure how that is any different than packaging up a shader FX in a module, and then every time you want to use that effect just drop that module in place, connect a line and you have chained that effect in. The only way you're going to get a fast effect is FX. There will be some more effects that are possible when they sort texture inputs for your own nodes. Is that on the cards soon devs?

karistouf said
something where we could connect directly, without building subpatches and renderers, the texture to, and outputing the texture as a result, in a fluent manner.

you have this when you make modules. You'd only need to build the module/subpatch once and that's it, use in loads of projects. Module with a texture in and a texture out pin. easy.

Hi xd nice to read your reply.

xdnitro said
. If you want this in vvvv you or someone is going to have to program it.

Thats the point. I would like to have a strong effect pack with many pins and quality at the end, that enables to construct easely new effects. Despite the beauty of contributions , i m pointing lack of evoluated parameters. When im doing editing or visuals with Gimp vegas premiere i have basics sets of filters in those softwares that give me very good results. This i dont have enough evoluated in vvvv and in contribs.

About nodes or modules, its more aquestion of ergonomy. I agree with you about module approach and i think that what i m trying to point could be understood by doing the get started tutorial of touch designer. Its easy, versatile , and dont need to bang the head of structures and subpatches to just filter in an evoluated way . I m talking about finding a way to have pleasure and easyness like while patching a spread: something easy, quick, powerfull.

I m fondamentally talking about pleasure while patching.

If im also talking about nodes on its own, its perhaps because i feeled very limited in my last work by the graphic card hability. I was stuck to 17 effects with 6 to 12running together. Maybe another way could be achieved to gain in performances than ex9 renderers in modules ? I mean if i want to compose a visual effect made of 12 or 16 components ?

I m doing things for dance and theatre and until now subpatches may not be loaded during performance : structure of a show is in a continuity and effects are overlapping continuosly

Voila!!!

Btw karistouf, FreeframeGL (aka Freeframe 1.5) is GPU-based, not CPU like the 1.0 version! I don't see why this should be much slower than shaders.

I don't think vvvv supports freeframeGl effects, am I right?

And I totally understand what Karistouf is saying.

You have something that outputs a texture (for example a video file), and you want to simply add 1 single node to the chain in order to process this whole texture with some effect, again outputting a texture. If you want another effect on top of that, you simply add this effect to the chain, and vvvv would take care of everything that needs to be done.

That would be the intuitive way of doing it. Texture in => Modified Texture Out

In the end, non-programmers aren't interested if it's a texture, if it's tied to direct3d or opengl, if it happens on GPU or not (as long as it works and it's fast). It's an image that should be altered in some way.

You should look at this post from a user perspective.

Karistouf doesn't say 'I can't do what I want', he says 'it takes too much patching and adding too much nodes (or alternatively too much messing with shader code) for something that should be intuitive'.

sounds a bit like shaderfx to me. only without the 3ds max part..

i am with karistouf on this one as well.

having a family of texture-nodes, thats works with textures in a fast and safe way on a general pixellevel with plugins (and hence cpu or opencl) would make vvvv more accessible.

there are a lot of good examples of what is possible, from aviary peacock to eyesweb. I understand your reluctance to add this feature as it is bound to fk up the cpu, though.

However, I'd love to see the old freeframe and maybe even dshow leave vvvv in the future and be replaced by a more flexible texture-based approach. if freeframeGL is a candidate for that, even better.

*v

link | Flag this reply as a solution. joreg (vvvvgroup) 23/05/2011 - 12:24
karistouf said
svvvitcher, etc ... : i m not at all talking about GUI, but about pure compositing approach and facilities.

me neither talking about GUIs. i only mentioned those because i think they already do (under the hood) what you also want to do.

so, i feel a bit missunderstood here.
has anybody looked at my demo? (ya xd_nitro seems to be with me).

karistouf said
i would like to have little nodes, transforming the texture with all basic operators you can find in a shader, but without having to create shaders.

&

ft said
You have something that outputs a texture (for example a video file), and you want to simply add 1 single node to the chain in order to process this whole texture with some effect, again outputting a texture.

i'd argue that this is exactly what i was demoing there. only the fx-nodes are not native nodes or plugins but modules, right? which i'd see as an advantage rather than a pain. imagine we all agree on a specification to build such modules someone who is not interested in their inner workings could just use them, others could build their own easily and still be compatible.

i was speaking of freeframe only as a standard, not that vvvv should implement freeframeGL but that you (those interested in texture-fx) could easily manage to create such a standard for texture manipulation modules.

so again i'd argue it is actually all there only someone would need to take the first step an prepare a basic package of texture-fx modules and propose a specification for such patches. if i understand your needs right, this has nothing to do with freeframe, openCL, openCV, dshow, CPU vs. GPU, the missing texture input pin for plugins or any other excuses to not like the module-based approach.

or am i still missing a point here?

Totally agree with karistouf. I've been played with TD for some time and I must say it's more relaxing for the people without highlevel informatic BG.

link | Flag this reply as a solution. unc (kollaborateur) 23/05/2011 - 15:04

hi everybody!
Just noticed this forumpost,
I think this is exactly what I was missing in vvvv - some kind of texture generation/manipulation/filtering stuff (got tired of coding shaders every time:) )
so, lets come up with a "specification" for texturing modules, and I'm ready to code loads of filters!
I mean, what we need here? Basically texture in+out, yes, and effect-specific parameters on input too
post your wish-lists for texturefilters!

P.S: is there a way to get textureformat from texture? These texturemodules probably need to output texture with the same resolution and type as input texture... I know that "info" node gives texture width and height, but no type

Hi joreg hi all.
About modules: why not. The daisy chain demonstration would be sufficient. Sufficient but perhaps not the solution .

 i m affraid of two things on this approach:
  • shaders will stay dependant from community skills, where we need basics and powerfull ( not things just doing the job) effects and a taste, an artist of code that will give them a constant quality and taste. I mean that means that someone rush inside of it. I mean someone who is deeply in charge of in a constant effort of quality.
  • i have the maybe wrong idea that having those textures manipulation tools in the core of vvvv will be be less ressources consuming and avoid bugs and strange consumptions. This thinking also about subpatches and modules that are slowering the main patch
  • i m sure that you will find way to code powerfull texture manipulators in the core, as brillant as stallone concept, giving to vvvv another specific power

And about ergonomy i think there are some here patching but not coding I mean end users and not programmers.
I came to code or patch for artistic reasons
I m very happy of vvvv but there are things where i will stay on high level patching, not low levels.
Shaders are great but they are restrictions for those who are not coding
Despite its awesome plugin structure vvvv should stay open to non coders

Litlle nodes with basic operators for texture manipulation would be really a must for users.
They could construct easely what they want to, in an easy friendly creation processp

Maybe you should try or being demoed touch designer to understand what i m trying yo say about ergonomy and keeping mind concentrated on more important things than tool structuring

Voila ! Sincerely, christoph

Sincerely christoph

link | Flag this reply as a solution. joreg (vvvvgroup) 23/05/2011 - 21:23

@unc: grande! Info (EX9.Texture) should return everything you need to know, please see my demo above for a simple specification i suggested to start from. i think some thought should be put in the naming of parameters for GUIs to be able to read and interpret those nicely..

@karistouf: so you're afraid of the communities skills...ic, but there you have unc who just offered himself to do some work on this and judging from his contributions so far you should be rather lucky to have someone like him contributing to such an endeavor.

you should realize that once the basic work has been done (which involves no rocketscience at all, so it is fairly realistic to get to a good point real quick) you and the end-users (not programmers) will have exactly what you wanted, i.e. texture-fx-nodes (just forget for a while that they are modules) for patching, no further coding needed.

karistouf said
Shaders are great but they are restrictions for those who are not coding

i am afraid, this does not make sense. compare: "rockets are great but they are a restriction for those who can't fly them." see?

karistouf said
Despite its awesome plugin structure vvvv should stay open to non coders

absolutely. thats why i am arguing to have texture-fx modules which are much more open to patchers (rightclick) than plugins. also once there is a texture-input for plugins they can still work side-by-side, only that non-coders will not be able to peak at them and improve them or adapt them to their special needs.

karistouf said
i have the maybe wrong idea that having those textures manipulation tools in the core of vvvv will be be less ressources consuming and avoid bugs and strange consumptions.

i'd say such modules would be fairly lightweight CPU-wise and as such not contribute too much to your resource problems. still the patches and spreadcounts you build around those light modules would probably be the main reason if you encounter low performance.

now post your wishlist for texture-fx as unc asked you to. try to be specific, defining not only the effect but also parameters and possibly their value-range in order to help unc get an overview of what you're thinking of..

@joreg: i m not affaid at all about community skills ! ;-)
i hope you were not affected by this point of view. I like to push the idea more and more until the end. for me effects are part of the natural core of a video software.

so purely it appears, as mentionned previously , the devvvv's choice is collaboration and community ;-)
ok. got it and respect. i will forget they are modules , i promise ! ;-)

hunc said
so, lets come up with a "specification" for texturing modules, and I'm ready to code loads of filters!

ah yeah! ouch! this will rock(et) !!!

dont know how to begin, and surely there will be tons of askings!
But really thanks !

I know that a lot is present in shaders contribs, and perhaps a knowing eye should be set to them before coding.

From the following list you may perhaps diagnostic the more little shaders/operators needed, that can be combined by user to obtain the described result after .
Maybe splitting the texture in RGB channels in 3 textures and recombine it after could be also possible ?

What do you think about it ? Little shaders giving by end following results, or complete shaders ?

COLOR ENHANCEMENT:

  • RGB color balance on Dark Tint / Half Tint / Lighted tint
  • Curves for R G B and Global (input: spread)
  • Inversion ( general, or per channels RGB )
  • Min / Max value ( R G B or ALL)
  • Luminosity / contrast on Dark Tint / Half Tint / Lighted tint
  • Threshold ( R G B or ALL)
  • Monochrome on a selected color, with contrast movable on Dark Tint / Half Tint / Lighted tint

COLOR MANIPULATION:

  • Dark enhancement (rounding %inpu nearest pixels to became black or dark)
  • Color reduction
  • Color remplacement

AMELIORATION:

  • Sharpness
  • openCV dilate
  • openCV erode
  • Noise reduction

BLUR: ( Spreadables ? multiple sources ? on a B&W texture map ?)

  • Simple Blur
  • Linear Blur
  • Spiral Blur ( Kalle did a nice one but very hungry about ressources)
  • Gaussian Blur
  • Cynetic Blur ( Linear / Radial / Zoom )
  • Star Blur

NOISE:

  • Noise Random mixer ( Seed / Random factor / Iterations)
  • Noise expander ( X Y Pixels expansion)
  • Noise on RGB ( X Y Pixels offset range)
  • Noise on HUE/ VAL ( X Y Pixels offset range)

perhaps thinking of receiving a texture to generate a moving " natural " noise .

EDGES:

  • Sobel
  • Contour
  • Laplace
  • Neon
  • Gaussian difference based

and avability to determine the edge size, and color
About edges, Gimp's set of edge is really complete and nice. About Sobel.fx original it is great with its 4 techniques: B or Wh, keeping source image background or not. So rendering type is something perhaps to keep ?

COMPOSITING TOOLS:

  • Mask creator
  • Alpha Chanel creator
  • Chroma Key ( Low threshold, high threshold, blur, color)
  • Color Replacement
  • Color Reduction

EFFECTS:

  • Posterization
  • Solarisation
  • Pixelate
  • Glow 2D

BLENDING:
little blending nodes of ONE operation only, with 2 TEX input, would be really great.

  • Tint based
  • Light
  • Shadow
  • Blend
  • Darken
  • Product
  • Density of color + / -
  • Lighten
  • Screen
  • Softlight
  • Highlight
  • Hardlight
  • Difference
  • Exclusion

Anyway, many thanks to all ( including contributors)

it'd be amazing to see all this come together and would be great for vvvv! nice list.

However, if this is going to happen you need some decent management of this as a project or it will just fall apart. I've no idea about running a project like that where lots of people can contribute and develop.

Anyone got any good ideas where to start and where to host a project like this?

Is this what we're talking about?

hi Gilbi, yes, but without enumeration.
and little little "nodes", like daisy chain example from Joreg. ( Need to get ride of the Grid / scale / etc)

could be fine to have a structure of FX with inside shaders code SAME naming of variables ( to let open the possibility to any one to concatenate 2 shaders easely without fighting with variables). A sort of naming convention also.

this structure should be the more easiest simple FX possible to enable chaining and creative work:

Do a blur:
a type of manipulation A of pixel shader

               V

a type of manipulation B of pixel shader

               V
             Result

Do a radial blur:
a type of manipulation B of pixel shader

               V

a type of manipulation D of pixel shader

               V

a type of manipulation A of pixel shader

               V
             Result
link | Flag this reply as a solution. io (translator) 24/05/2011 - 09:56

@Karistouf Wrong links there..

@Gilbi I think the resolution to renderer and dxTexture is redundant, also the Enable should be a Enable/Bypass, done with a switch node for example, enable should also go to the renderer to optimize.

Sorry io not link just brackets to figure out a node in the text.

@xdnitro: maybe creating a new wiki vvvv page to first try figure out naming conventions?

More generally to everybody: i m not writting shaders so i will not have real interresting suggestion about shaders: is this idea of very very little shaders is stupid or not ? You know shaders code so its you that could mostly define the components

Io: yeah bypass is a real good idea ! But im not seeing a not consuming ressources way than joreg proposal

You want blend modes as separate modules, That's a bit weird isn't it? Surely when ever you use blend modes you want to be able to easily compare different blends without having to create and patch in a new fx? How is that easier to do?
One thing you should bare in mind with things likes blurs, is they are expensive if you want them to look good... Gimp isn't realtime so can use more processing to make a nice blur...
Trapcode star glow, again not realtime by long shot...
I can see the point of making modules out of them but chaining several together at hd could be slow, and I think that would be the same for any software, including touch?
Having said that, the best realtime blur I've seen is a quartzcomposer plugin by vade, and he reduces the texture dimensions the more blur you use, but obviously does a few steps as it remains smooth, but mire than one of them on hd, and it will affect your frame rate...
There is such a thing as rendering layers out to avis ... I often use a mix of realtime and rendered to give the best performance... I have a feeling the the wishlist vux suggested with a absolute disable might be needed here?

link | Flag this reply as a solution. unc (kollaborateur) 24/05/2011 - 11:31

Made these few filters this morning
please test them (for bugs etc)

I went my own way with the patching for now, later it can be fixed/ported according to the "spec"

username said
You want blend modes as separate modules, That's a bit weird isn't it? Surely when ever you use blend modes you want to be able to easily compare different blends without having to create and patch in a new fx? How is that easier to do?

Hi Cat, i know this seems quite strange. ;-)

I m ok with you about testing convenience.

But obviously you may encounter on hudge patches troubles of compilation because of too much techniques. So by end, the shader will not compile at all, and you will remain the Tfix function.

I never gone to HD, but from what i tested, in 1280*728 on VVVV and TouchDesigner, is that TD way is less consuming ressources. Despite its opengl, wich is known to be less quick than directx.

Actually trying to figure out, and thats the main point to be discuss with everybody, is:

  • complete complex shaders

or

  • little shaders chained to create complex effects

On this base little separated shaders are for my point of view (and i may wrong), light weighted, more simple to use, in a compositing chain where they could appear 3 or 4 times at different steps of the imageprocessing, than a big blending mode with 16 enums.

Ah! forgetting last thing, the Ord2Enum is still buggy, am i right ? Do we have still a bug on enumeration list ? I stayed to beta23.

@unc: a big one ! thats really very brillant !!! damned! you worked like hell on that topic, and its running great !

what is your opinion on all those discussion ?

link | Flag this reply as a solution. unc (kollaborateur) 24/05/2011 - 12:00

i think performance may not be a problem... You guys just need to get yourselves some good nvidia cards :D
and, i still cant find a way to retrieve texture format from texture input... Personally i'd like to always work with A16B16G16R16F, but that is not always needed, and quite hungry for videomemory
maybe we also need some "conversion" modules, to change resolution/textureformat

hi unc, from what you have written this morning, the Edge question is complete, playing with the 5 shaders you wrote gives all ( and more ) look aspect than a Gimp would do. Ah yeah..... that is great !

TGPosterize is great !

about texture mode, well, its you that are knowing what should be done... maybe as you suggested coversion modules would be better ?

link | Flag this reply as a solution. unc (kollaborateur) 24/05/2011 - 12:37

the point is, each module should output exactly the same type of surface it gets on input. And if user wants to change the format or resolution at some point (for optimization purposes or anything else), all it will take is to add one conversion module where it is needed
i totally dont like the idea of adding one additional input pin for each module, just to specify its output texture format

it would be nice if each module would have just texture in/out and effect-specific parameters, and nothing else

link | Flag this reply as a solution. unc (kollaborateur) 24/05/2011 - 12:40

@karistouf
can you run some kind of a stress-test for those effects? How much of them you can stack until it kills performance? Which ones are most slow?
I need to have some clue to know what to optimize there...

ok, understood. ;-)
TGP Posterize with your quick blur is giving vectorized results ! very very very nice.

I have also a real question, i dont know if this can be achieved in VVVV with shaders:

Is it possible to set a transparency channel to the video ( like a png have ), and to separate in 3 component RGB the information ?
Treatement, then recomposite it.
I dont know if EX9 renderer and DX9 texture will keep it or not.

For versatility question, specific treatment on the plan of the image channel should be also interresting and very powerfull, enabling displacement, color effects and compositing very weird.

link | Flag this reply as a solution. joreg (vvvvgroup) 24/05/2011 - 12:54

@unc: brilliant, this is exactly what i was preaching.
Info (EX9.Texture) has a Format output. ok it is a string including the format descriptor + additional stuff which could easily be truncated before the ':', ja?

hosting

to answer xd_nitros question: lets host this on sourceforge, so it will be automatically included with the addonpack. i've added a directory there which can be checked out via:
http://vvvv.svn.sourceforge.net/svnroot/vvvv/modules/trunk/common/TextureFX
in order to commit you'll need a sourceforge account and tell me your username so i can add you there.

directory structure

instead of one directory per module how about:

 TextureFX\effects (which will include all the .fx files for use by any of the modules)
 TextureFX\ (which will include all the modules that can reference any of the \effects)

because else in the case of two modules using the same effect we'd need to duplicate those!?

naming

lets stick to vvvvs naming conventions. most importantly all modules should be named like this

 Name (EX9.Texture FX)

where name should not include any prefix like TG. note that there are explicit author and tag fields in the module-info (via ctrl+M in a module). same for the effects themselves where that info is specified via comments.

concerning the pins names please start them with capital letters and don't use camel casing but separate words by space.

pins

as it looks every module will have the following inputs:

  • Texture In (in case of multiple inputs name them 'Texture A' , 'Texture B', ...)
  • Enabled (rather than Bypass i suggest)

and outputs

  • Texture Out
  • Compiled (as unc suggested, which i think is a good idea. just make sure then that even modules not using any effect also have this output, always set to 1)

internally the Enabled and the effects Compiled flag can be ANDed to switch the module to bypass in case either is false.

additionally modules have parameter inputs. those must not be of types: mesh, renderstate or transform but only of types: string, value, color, enum


any additions objections to those specs? lets keep the discussion here and i'll move this to a wikipage.

@unc: would be great if you could then adapt your samples to this spec and commit your stuff to the repository mentioned above.

A suggestion: Would it maybe make sense (performance and texture-format-wise) to code all the effects into one shader, and give this shader a string describing the effect chain and a spread with the params? e.g. "blend+levels+edgedetect+blend" and "0.5 0.1 1.0"
then the effect chain could easily be parsed/constructed/patched, but it's effectively all in one shader with only the relevant parts switched on. i'm just not sure how to handle the parameter list in an effective way.

edit: OK too much activity in this thread, I think you can partially disregard what I wrote.

One question remaining: is there a performance overhead by chaining many effects together, as opposed to all of them in one shader?

Also: Please, when implementing and naming effects and blend modes, please stick to some kind of standard (the photoshop way would be best). In Resolume Avenue, for example, some blend modes have a different effect. Very confusing and frustrating sometimes.

Also II: icanhas lumakey FX (I only saw chromakey)?

@hunc: i will do "stress-tests" tonight. some job to do in a theatre today

but what i already feel by putting them of 2 different computer is that already they are simple, precise, and not consuming a lot !

@joreg:
About naming variable inside, are you of this point of view, of a unified naming ?

cheers

link | Flag this reply as a solution. unc (kollaborateur) 24/05/2011 - 13:10

@joreg
yep, that spec looks totally fine
i'll convert those effects to it, and will stick to in future ones

and btw Info (EX9.Texture) does not output all texture types... A16B16G16R16F for example - it says 64-bit float format blablabla
i'm starting to think of some stupid way to solve this:D

link | Flag this reply as a solution. joreg (vvvvgroup) 24/05/2011 - 13:24

@bilderbuchi: please link us to a naming scheme in written form. "like in photoshop" is difficult to conform to. also probably just have a look at the naming in progress and make specific suggestions.

@unc: for me it says:

 A16B16G16R16 : 64-bit pixel format using 16 bits for each component.

so you could easily cut this string after the first ' :' and stay with the format alone. no? or you mean it is not an enum? but from that formatstring you can convert it to an enum using String2Enum. also please join IRC for something vaguely related.. ending in _38.dll

@karistouf: not sure what you're asking here but yes, naming-conventions are important.

link | Flag this reply as a solution. unc (kollaborateur) 24/05/2011 - 13:33

@joreg
Oh yeah, now I understand why they should be named that way=) yet another sweet feature of vvvv discovered

as for the texture format string - maybe thats because i'm using 40beta23?

svn... ugg

heres a couple of keyers...

I've taken out the unneeded vertexshaders, is this a wise thing to do? Figured it make save some cycles along the way...

for blurring them I suggest daisy chaining!
Adding an alpha channel to a texture is easy enough, question is should theses output just an alpha channel or a 1 channel greyscale image, thereby saving some more ticks?

ey ey ....

@joreg: talking about unifiying variables names inside a shader:

TWORLD
TEX0 etc ...

link | Flag this reply as a solution. unc (kollaborateur) 24/05/2011 - 17:12

fixed modules/parameters names according to spec
dunno how to upload it to repo now, so here it is

joreg said
instead of one directory per module how about:

 TextureFX\effects (which will include all the .fx files for use by any of the modules)
 TextureFX\ (which will include all the modules that can reference any of the \effects)

because else in the case of two modules using the same effect we'd need to duplicate those!?

No worries about different modules using different versions of the same effect?

link | Flag this reply as a solution. joreg (vvvvgroup) 24/05/2011 - 21:56

very good things are happening here..
i combined uncs and cats modules, did a minor cleanup in them, added a _Template (EX9.Texture FX).v4p and a .Tester.v4p and it is all up at:
http://vvvv.svn.sourceforge.net/svnroot/vvvv/modules/trunk/common/TextureFX
and also attached. since they are now versioned it's best to work from the repo or at least make sure to work from the attached ones!

@unc: jo seems format output of Info (EX9.Texture) was different in beta23. why are you still using it? i'll check to get a proper format-enum output of the Info node. please get yourself a username on sourceforge and tell me it. then read version control with subversion? so you'll be able to commit your stuff. missed you on IRC..

@cat: taking out VS is fine. concerning sole alpha-texture outputs..should make sense to use grayscale formats in those cases am only not sure if most graphic-cards support them. but for our alpha-phase now just use them if applicable.

@karistouf: didn't go so far as to check shader coding conventions as really to this project it doesn't matter so much if there is a mess in the shader. of course it would be nicer if there wasn't but there we can only hope that contributers will conform to addonpack.effects and conventions.nodeandpinnaming

@gilbi: nope. different versions of the "same" effect should definitely have a different name.

@bilderbuchi and all: what do you think of the node/pin namings so far? is it smart to name 'FastBlur' so or could it simply be 'Blur'?

@all: please comment on the functionality/pin-value-ranges of the individual modules.

@unc: not seing any performances problem until 24 levels of fx on a 20fps webcam.
your shader code runs like hell...
the edge one is really impressiv. many thanks for this contribution

@joreg: I'm currently up to my elbows in matlab/octave/android/whatever.. I will comment later, hope until the weekend.

Only judging from "FastBlur". There should either be a switch on the module to select the "technique"/implementation (Fast, Gaussian, whatever), or different names. If different names, I vote for "BlurFast", "BlurGaussian", etc..., so that all the different kinds for one effect stay together (in an alphabetic list). More later.

I did wonder whether the colour transform should be exposed to, as you might well get some unexpected, but useful results using it in combination with an effect?
Also do all the renderers need a background colour with 0 alpha to preserve an alpha channel coming in?
@unc, great shaders :) The edges and blurs look like an old aftereffects plugin I used to death years ago, doesn't work in any recent versions, so its nice to have something like that back too :D

Suppose I'll have to install svn now... Don't like having system wide apps running in the bg :(

little impression

link | Flag this reply as a solution. joreg (vvvvgroup) 25/05/2011 - 01:16

@cat: there could of course be one module that exposes a color transformation pin. only thing with this is that potential GUIs will have troubles offering an interface for that..
good point with the alpha=0 for the background color. i fixed that for all fx and also for the template.

@svn: probably it is even better if you just post your stuff here and i am the only one committing to svn to avoid conflicting patches. i am quite certain there are other svn clients that don't run in the background btw.

@unc: not sure anymore about the Compile output. using it internally to bypass the effect is great, but i can't see any usecase for the extra output anymore?!

link | Flag this reply as a solution. unc (kollaborateur) 25/05/2011 - 05:16

@joreg
This compile output pin was mostly for testing - to quickly see if shader is working or not.
But if we have shaders well-tested, this pin is no longer needed.
Btw I'm not so sure about removing the vertexshader - I did that in my postprocessing effect, and microdee reported a bug (on ati), so i had to add minimal vertexshader there...
And i cant get to irc because irc client on my phone is not working properly, dont know what the hell is wrong. Cant get to a pc atm

Wow. I'd just like to stand up and clap- It's simply amazing that this thread was started only about 3 days ago.

I'll look forward to having a look through these later tonight.

@unc wich shader is giving a bug on ATI ?

link | Flag this reply as a solution. unc (kollaborateur) 25/05/2011 - 10:06

@karistouf
remove "vertexshader=..." from technique from any of my shaders, and then it may cause this bug
hmm... maybe that happens only with ps&vs 3_0, so it might be ok to remove vertexshader if pixelshader is 2_0...

@unc its because your scaling up with
void vs2d(inout float4 vp:POSITION0){vp.xy*=2;}
I presume thats a vertex operation? I scaled the render instead...
In fact just tested and it is ;)

I did it as I figured if we're going to use a lot of shaders we ought to minimise the gfx card calls as much as possible, but your shaders seem to be pretty minimal anyway!

link | Flag this reply as a solution. unc (kollaborateur) 25/05/2011 - 11:57

i just thought of something (please tell me if this is a stupid idea or not):
what if we also implement a bunch of texture generation modules (those having no input texture at all), maybe even some "drawing tools" - so all this will be more like "procedural texture generation environment", so then if you need some (rather simple) texture, you dont have to run photoshop, or start looking for a suitable texture - you can generate it right there, and most important - tweak it right on its place, in realtime

this "texturegenerator" might get very slow/memory consuming at some point (very soon i'd say=) ), so here we will need some mechanism to dump static textures to hdd, and only render on demand (or smth)

link | Flag this reply as a solution. unc (kollaborateur) 25/05/2011 - 11:59

@catweasel
the bug is black screen, like no geometry is being rendered at all

@unc: i love really this idea of texture generators. Thats a real good idea. could a generator be based on expr input ? About drawing tools, would that be as versatile as a patch with writer node ?

I have also another suggestion, dont know if its possible:
actually effects are done on all a texture.
would that be possible for blurs, noise, sharpen ect... to be performed on a specified aera by a second texture input ( black/white/grey showing the intensity of the effect)?
this texture maybe a dynamic one and be submitted to animations.
know this is a far more evoluated shader, maybe this can be think appart than the "little" shaders.
OR to be spreaded x_y point with aera, and type of aera ( circular, rectangle).

About catweasel's chromakey and lumakey: they are nice especially lumakey that could be the base of dark_enhancement shader: it just needs to output a collateral blured smoothed black around its aera of black.

There is also this idea of ChromaKey leading to incrustations, wich is for the moment only present in legacy website on BlueBox shader. A high threshold, a low threshold, and a blur would be really nice.

About levels, is it possible to think to it in curves handling ? but maybe this is going out the topic of little little shaders.

@joreg: so if i well understood there will be in next version of vvvv a transparency of the background from a renderer EX9, such as PNG ofr the DX9 texture conversion ? if yes, waow it is REALLY great !!!
@joreg2: from shaders and patch sended i put my desktop on beta25.1, i was before on 23 and i didn't see that contributors name were listed in front of node list: its really great, and i was something like 1 year late in my understanding of vvvv evolution.

link | Flag this reply as a solution. joreg (vvvvgroup) 25/05/2011 - 13:00

@VS=null: right seems only to work with PS2.0, but as soon as you use PS3.0 it also needs a VS3.0 (tested on: quadro FX 880M). so lets do it that way:

  • PS2 without VS
  • PS3 with minimal VS

@unc: texture generators: definitely. their suggested spec:

  • naming: Name (EX9.Texture FX Source)
  • ResolutionXY 2D Vector input to specifiy texture size
  • Format enum to specify texture format
  • various: string, value, color, enum pins
  • Enabled if Enable=0 they should probably return a completely transparent texture?!
  • Texture Out

anything missing/too much?

ah and how about an extra category:

 Name (EX9.Texture FX Mixer)

for such modules that take 2 textures and do some mixing, like:

  • Blend (EX9.Texture FX Mixer) (simple A<>B blend)
  • Mask (EX9.Texture FX Mixer) (combine A and B via 3rd mask texture)
  • whatmore?

and:

 Name (EX9.Texture FX Renderer)

modules that take a texture (spread) and have a Renderer for output. such a module could implement some default multiscreen scenarios...

@karistouf: concerning transparency/renderer no changes in vvvv (anything missing regarding that? not sure what you mean.) only changed it for all the texture-fx modules we're working on here.

@25.1 update: zzzz

link | Flag this reply as a solution. unc (kollaborateur) 25/05/2011 - 13:01
karistouf said
I have also another suggestion,
dont know if its possible

if i got it right - yes, this is possible, it is easy to do, and it will be quite useful=)
i had that idea long time ago...
Now we can actually add texture-map/mask for any parameter, and it will be also working nicely when no texture is connected - then parameter will be uniform along all the surface. We can also haz multiple masks (for each parameter - but better only for those where it makes sense - adding a lot of input pins aint good)

@karistouf, transparency is allready available, just make sure that the renderers background alpha is set to 0 AND the dx9texture node is set to a textureformat with alpha... for some reason its not set in some of this texture tool modules.

@karistouf: ROI (Region of Interest) set by second (texture) input would be usefull

link | Flag this reply as a solution. joreg (vvvvgroup) 25/05/2011 - 13:20

but wouldn't the

 Mask (EX9.Texture FX Mixer) 

as suggested above sort for all the ROI effects? instead of bloating every parameter of every module with a ROI feature? at least for the start a lot of effects could be realized like that until identify some modules where a ROI addition makes extra sense. just to keep it simple for a start?

link | Flag this reply as a solution. unc (kollaborateur) 25/05/2011 - 13:37

@joreg
Yep that seems fine
EX9.Texture FX Source
EX9.Texture FX Filter
EX9.Texture FX Converter (to change resolution, texture type, screw around with channels - like rgb2hsv and back, alpha to r(gb) and back, etc...)
EX9.Texture FX Mixer
etc =)

heres a module to split red, green, blue, alpha to separate channels.

concerning rgb /hsv conversion spaces i found this which looks quite usefull:
http://chilliant.blogspot.com/2010/11/rgbhsv-in-hlsl.html

username said
 but better only for those where it makes sense - adding a lot of input pins aint good)

why not staying on a mask shader daisy chained, keeping structure as simple and powerfull as possible ?

@elektromeyer: many many many thanks !!! ok got it.... i was fighting with the renderer, never thought to inspekt DX9 texture and use the coded structure.
//edit : ah yeah!!! that it ! Maybe a B W Grey would be also interresting !

@joreg:

joreg said
for such modules that take 2 textures and do some mixing, like:

crop ? or the mask is sayed to be the same tool ?

@elektromeyer: is it possible to have a threhsold per RGB and obtain a texture with alpha channel, giving something like this at the end:

@karistouf, dont get it. you talk about some kind of a keyer? from what you want to start to get this result?

hi elektomeyer, yes,
i think that the RGB splitter would be nice with a threshold per channel, and an alpha inside each texture out. The Red texture would be red and alpha, the green green and alpha etc...
like this we could split a video in or a filestream in 3 RGB with alpha, treat them with other fx ( blurs, effects etc) and mix them back in one result...
The threhsold would set the what is transparent.

what do you think about it ?

mh but what would be the alpha for each channel? the intensity of each channell itself or the original aplha channel applied to each color channel?

maybe its better to do that in a separate masking module and let this module just split out the channels... to keep it modular.
dunno...

link | Flag this reply as a solution. unc (kollaborateur) 25/05/2011 - 15:21

some fixed, all renamed,
some new ones added. Removed "compile" output pin
ColorMap now can take second texture on input to use it as color ramp

try this :
perlin or any texture
|
fastblur
||
displace

=)

hi elektromeyer. I think i have in fact no idea about wich technique it should be. Alpha from saturation or value is also something very interresting and that may become a special fx on its own.

The idea would be to be able to split in 3 textures in transparence a same texture, and then by end, after treatment with shaders , to recompose the image by blending somehow the 3 layers.

In my mind, but surely i may be wrong about concepts:

  • split in 3 alphaed layers
  • threshold on sat or value to what is not alpha
  • the alpha is plainly transparent
  • a blur adjustment for borders

unc, what is your opinion on that one ?

link | Flag this reply as a solution. unc (kollaborateur) 25/05/2011 - 15:43

@karistouf
I'm not sure I understand what exactly you mean... Anyway, I havent gotten into alpha/keying filters yet, so dont have anything to say about it for now

link | Flag this reply as a solution. joreg (vvvvgroup) 25/05/2011 - 16:12

ouright this pack includes uncs latest and eles. figured to go with this naming for now:

  • EX9.Texture FX Source
  • EX9.Texture FX Filter (includes converters..)
  • EX9.Texture FX Join (was mixer, ie. all modules that combine multiple textures)
  • EX9.Texture FX Split (like eles RGBA, now where is the reverse of that ele?)

patch on!

unc and joreg said
I'm not sure I understand what exactly you mean

damned... i will commit suicide. here is what i m trying to say ( sob )

more seriously, its a wonderfull perlin with its octave you have created.
When i just thing to fastblur or to this perlin, its enough to make beautifull things !

What is mm parameter in perlin?

very basic shader for very basic skills.

link | Flag this reply as a solution. woei (kollaborateur) 25/05/2011 - 18:52

curves are included here image-adjustment-pack
as well as some other code that might come handy

rgba join...

im not sure whats the better concept to have each texture (RGBA) as a separate texture pin or as a spread of textures on one pin?!

@karistouf,

check the karistoufkeyer_main.v4p. this way you have maximum flexibilty about how you want to treat combine the individual color channels...

ok i think the difference to your example is that you have an alphachannel for each colorchannel right?

Very impressive work by all involved. I was going to make an example for the chroma key as a way of demonstrating what Karistoph mentions above, of making passes that can be re-combined further down the chain, a la Nuke or Smoke, the "RGBA" plugin already handles it.

Compositing

The final render shows text sandwiched between the original image and a choma-keyed foreground. Chroma keyer doesn't have a matte output option so you can just use the alpha from there (to do this properly I suggest a decent noise free camera and better lighting control than a window blind).

I also came across a bug that meant putting the render window into fullsceen and back to normal again did strange things to all the enumerators. I haven't got a second screen with me to test this on at the moment.

And FX for image analysis will still be a bit slow (Freeframe), which prompts the texture datatype question hinted earlier for plug-in writers...Going VVVVorward

H

Just tested V3. Awesome work and effects! displacement example reminds me of a bathroom door.

I think an RGBA Split, a CombineChannels which implements (most of) the blend modes I linked to earlier (with code), and an RGBA Join, and some routing/combining between the channels, are enough that Karistouf can do what he imagines.

A question performance-wise: Is it really good/necessary that each of the effects have their own 1 or 2 renderers? Is it better/possible to chain them in a more immediate way, i.e. without at least one renderer/dx9texture group in between each if you chain them? Isn't this a huge performance loss? Maybe if we put them all in one huge shader and make passes as desired?
(Disclaimer: I'm a shader noob)
The trainer patch as downloaded runs at 30fps on my laptop. :-(

Naming scheme looking good. Only, as written before, I would keep "general" names, and put implementations into a mode pin (like in ConvertColour) - i.e. not "FastBlur", but just "Blur" with a mode pin switching techniques, if implemented, e.g. Fast, Gaussian, Wind, whatever.

bilderbuchi said
Maybe if we put them all in one huge shader and make passes as desired?

Afaik, that's not possible.

Multiple shader passes cannot use the output of the previous pass as input. So you have to render to texture first.

Of course, I don't know the inner workings of vvvv, so I don't know if there could be a more efficient way for rendering to texture by coding a new node, instead of using renderer connected to DX9Texture.


Wow, what's been happening here the last 2 days is simply amazing. Seems like Karistouf's got the whole vvvv community working for him :)

hi ft, well ... i owe the community a mega bunch of beer !
But surely its more the fact that we agree everybody on this need !

Ok, I have done some playing tonight on a simple BW photo.

Encountered from time to time troubles:

  • of decompression or rendering, as the photo was in low def, wich is not really the case ( should we do preformated .dds ?)
  • changing color result when opening the patch again.

I suppose something is wrong around the RGBA splitter, WICH IS -despite this little bug- MORE than GREAT !!!

What i have seen from this little play around, is that definitively little strong shaders are far more powerfull chained like this than big heavy ones with many techniques precompiled. Those little units are very powerful ( merci unc !) and allow user to have very personnal approaches.

@hadasi: seen a mask.fx on your snapshot ;-) could be great to see it inside the collection ! ;-)

@bilderbuchi: yes the blend collection is nice. Perhaps it would be interesting, for troubles about compilation ( when heavy patch) to keep a light ( up to 6 modes ?) and an advanced version ( the complete techniques)

@unc and everybody: i noticed by looking in my vvvv archives ( shaders downloaded since 4 years) that many many shaders are existing. Taken each one solo or apart, there are many good things, but using 2/3/4 together they slow down everything. Definitively the little shader and unc's code power do really the difference.

About Mixers, Kalle has done VERY interresting shader ( TexControlFade and TextControlBlur) that should be certainly part of the Texture package, because they open real possibilities to do things in many many way. Unfortunately the blur one is ressource killer !
I upload them here, if someone has desire to run inside of it ;-)

link | Flag this reply as a solution. unc (kollaborateur) 26/05/2011 - 00:06

there is something terribly wrong with your shaders people...
I better rewrite those myself

btw noticed a stupid mistake in my modules - texture format wasnt specified, so alphachannel was broken everywhere

joreg said
EX9.Texture FX Join (was mixer, ie. all modules that combine multiple textures)

could we have pls. smth like mask feather and mask expansion pins

link | Flag this reply as a solution. joreg (vvvvgroup) 26/05/2011 - 02:46

here the nightly pack.

includes eles rgbajoin which seems to have a problem though..didn't find it at first glance but the joined texture looks darker, see?

also includes a renderer module. for me around 400fps when started as is..

@bilderbuchi: i don't see a more performant/convenient way to do this.

@unc: what about renaming FastBlur to Blur with additional options in an enum? would that make sense?

@all: keep em coming..

Wow this is a great community push. good work everyone. :)

Most of this list seem relevant in some way, collected from the legacy user shaders list.

But shouldn't be we logging in this collection who contributed to what so we can acknowledge everyones hard work and open sharing to this point? Cos I'm sure everyone massively appreciates this work by the community and it's nice to acknowledge that.

Negative.fx
by kalleand ArsRobota

Brick
ChromaKey
by Digital Slaves

False Colour
by catweasel

Clampfade
SiftHSV
by kalle

TexCtrlInvert.fx
Technicolor.zip
TexCtrlInvert.fx
by Desaxismundi

Negative.fx
by kalle and ArsRobota

Background Substraction.fx
AlphaVideo.fx
by frank

ShiftHSV.fx
-BG+Key.fx
by kalle

Emboss.fx
LumaKey
Stranger
by ((user:tonfilm)

Anaglyph.fx
BackgroundSuppression.fx
by marc_s

RectMask.fx
by woei

Levels.fx
Hue_Saturation.fx
Blend.fx
by mtallen

PolarCoordinates.fx
by mtallen improved by dep

HalfTone
by sanch and gregsn

GaussianBlur.fx
RadialBlur
Bloom
Spot
by sanch

What about transitions in this texture pack?

Transition Pack#1
by Digital Slaves

Transitions_basic.fx
by Desaxismundi

TexCtrlFade.fx
by kalle

One for the Texture generator

Gradients.fx
by Ernst Hot

link | Flag this reply as a solution. unc (kollaborateur) 26/05/2011 - 05:57

yep, renaming fastblur to blur is fine
as for its additional options - I simply dont know how to create enums :P atleast in beta23, dunno.
And I am NOT upgrading to beta25 - tried this yesterday, ended up with a "fffuuuu", sorry... So I'll keep atleast my texturefx modules beta23-compatible

@ unc: woaw.i think its a real good to take them compatible to 23 until code editor is fixed.

@joreg : will there be in next release a texture input possibility in dynamic plug ins?

to the xd_nitro LIST
dont know if 2D shadow would be possible?
kind of Dynamic Drop Shadow by tonfilm
dynamic-drop-shadow

one more basic block for image processing tasks, morphology. this one lets you choose a custom kernel for any convolution tasks (dilate, erode and the like).

link | Flag this reply as a solution. unc (kollaborateur) 26/05/2011 - 11:33

does anyone here have a gfxcard without shader 3.0 support?

@karistouf
"mm parameter in perlin" you mean mipmap count? It is the same as in DX9Texture node, I just duplicated its parameters

@unc I remember at node08 being told that if you can use lower shaded models you should not just for backwards compatibility but performancewise they use less gpu, I think, but joreg would know more ;)

Guys, what you are doing is amazing! Its exactly what I was looking for over the last months! Thank you very much. Hope I will find the time to test the stuff and give feedback and ideas on more plugins.

link | Flag this reply as a solution. unc (kollaborateur) 26/05/2011 - 12:40

@catweasel
Well, I was told exactly the opposite=) dont remember where tho
I heard that it is best to stick to one single shader model... So if we are aiming mostly shaders 2.0 (quite old gpu's), then it is ok
but I seriously doubt that someone will try to use such tool as vvvv on that old hardware, and expect anything good out of it...
I am more concerned about float-textures and mipmaps... my old geforce 7950gx2 was pretty good on ps3.0 performance, but had no support for filtering floating-point-textures

@unc: i have a little laptop with PS2 only, on cheap GMA graphic card. How may i help exactly ?

mipmap count: what is exactly its function ( don t see any result when changing it ).

btw: is that your car ? ;_)

More generally, to all :

Would be great to try to figure out other little versatile shaders on one hand, and on the other hand talk about complex built shaders.

About convolutions: this would be great to have such a set also, with very little performance consumption nodes, and pure power "ala MrUnc".

yep, that's uncs car.

i also heard he codes his awesome shaders on his livingroom chair:

uncs drivers seat

ah yeah, i see the awsome grid ( artcraft by elektromeyer i think)

and here is his pool table
http://www.engadget.com/2009/09/24/video-obscura-digital-shows-off-cuelight-interactive-pool-tab/
P.S. apropos it's Touchdesigner from 2009(!)probably running 60fps
can v4 get in 2011 TD shader look?

@dimix: with fakewater.fx from digitalslave and displace.fx from unc you can easely create this effect.

@karistouf
with all waves equation?

no, if you are looking for a real real effect each means development. If you want to give the feeling of, only, you can cheat with fakewater

link | Flag this reply as a solution. unc (kollaborateur) 26/05/2011 - 15:20

alphachannel fixed in all filters, now they deal with transparency
HiLowPass - my own try on keying
RGBA2 splitter/joiner - alternative
mask input added to Blur (ex-FastBlur)
dithering added to Posterize

Resize (EX9.Texture FX Source) added - resizing/changing format of texture. Not sure about its "Source" category...

unc you nut's rocker! ::]

wow, fantastic and really useful collection, great work

yeah big big up :)

Some more nice effects here:

tiki-download_file.php?fileId=2104

link | Flag this reply as a solution. unc (kollaborateur) 27/05/2011 - 07:03

Hey, what about building a particle system that way? All is the same, but instead of operating on textures-images we'd operate on textures with particles positions/velocities... We could have here all kinds of operations - from applying transform matrices, to complex feedback-ish stuff like fluid dynamics or something... Or maybe using textures to affect the particle system

please tell me if i'm making any sense - dunno, maybe all this could be done more easy way, or if there are better solutions for that

@unc: it will be a great great great thing !!!
we are missing it !
dottore is realising a GPU particle system lib/guide also: particlesgpu-library-guide

About effects, continuing on the project about little versatile units, is it possible to have displacement pixel function in RGB points or CMJ, in a shader, to enable creation painting effects ?

I m always thinking of painting, in myhead: one or two shader that could be in the chained process enable to have by end such result:

We have the color reduction effect, the edges, miss only a dotify or patternizer effect.

What is interesting witch such images and dot structure , is to think also if the base of the image was a video stream: dots should not be a fixed grid ( this is what i obtain from consumering pipet)

So something to create dots or any patterns inputted and spreadable, depending of value of pixel, or hue, or saturation would be great also.

Those patterns should received also a rotation and a scale factor affectable by a multiplier ratio to the value of pixel, or hue, or saturation also.

I m thinking of patterns, because it is what we are using doing pipet, but ressources consuming pipet !

A vectorizer shader could be really great also: something giving rounded "vectorized" lines and aera filled.

So maybe a patternizer effect would be a real strong tool ;-) anybody any idea of little such modules ?

Ok i stop here, because SantaClauss will say i m a really not reasonnable boy !

Last FX package ( joreg ivoice n°4) result on beta25.1:

Edges/ RGBA2 join split / do not work Black screen

Rgba join split / chromakey / luma Key > appears in Rose. Black Screen
(modified ?)

Previous package was working. I m with Nvidia 460M setted in Dynamic Range to Full (0-255)

Hi Low High Pass is really great ! its answering to enhance_dark strongly. woawoaw...

@ unc
light 2D particles would be really great
otherday I was looking for optical flow in v4
but didnt find smth what convince me

@karistouf
Lichtenstein_FX: maybe smth this way
http://www.borisfx.com/tutorials/LED.php

this thread is a wiki page

link | Flag this reply as a solution. unc (kollaborateur) 27/05/2011 - 10:28

@DiMiX
I was talking about 3d actually... Think of these textures as arrays of data - you construct a chain or tree of nodes, that operates on quite big array of positions (this is the part i'm not sure about, maybe vvvv can do the same with spreads, and it'll be more comfortable?)
at the end there will be a node that takes resulting particle-data-texture, and output ex9.layer with particles/sprites

@unc
nothing agains 3d, i dont think downgrade from 3d to 2d will be a problem(in case it gets heavy),or?

@unc: that is actually a brilliant idea imho, but would be probably discussed best in a seperate thread. my suggestion would be to make modules fit with particlesgpu-shader-library..
(peeking at that bridson curl noise.. ^^)

@dimix: thanks for the link, but afake this requiers with pipet a lot of quads and ressources where a shader will be more powerfull ( especially with a unc's state of the art ) ;-)

@unc:
main question is how to access ( spreads ?) to a shader pixel structure to make operation on them from outside the shader ?
do you think there is a way where we could feed shader with a spread and have a sort of programmable shader ? ( talking about position of pixel, deflagration, blur on pixels, etc...).
Going back to this idea of ROI or texture matrice enabling to do effects in different spaces of the image

link | Flag this reply as a solution. unc (kollaborateur) 28/05/2011 - 20:20

latest pack: a bunch of new modules added, lot of fixes

@unc
first of all thanks a lot for Texture_5. great!
belongs for me to the vvvv's TeaserPack!
sorry, but going back to 2d vs.3d particles:
cause we are here talking "pure image treatment"
I just think why not stay "flat" and build "image"-based
particle system similar to particleIllusion.
kind of easy, simple and very quick emmiter engine.
i am not programmer and i dont know what's cooking inside...all your codes...
but ...it is always necessary to dive into Z depth buffer to get good effects?

pfffffiou... this FX packs rocks really.
I m now without voice.

its a great thing you are doing unc. a very very great thing.

A question: certains effects are loopable, wich is quite very interresting a kind of echo structure. I have inserted a queue node to try to regulate the speed of the effect by a queue setted to fps to "calm" this effect. Is there way to play with it far more ? Something smoothing this echo ?

edt: great work the mask entry in the blur shader. really great !

is this going to be contributed at some point or lost in the forums ?

link | Flag this reply as a solution. unc (kollaborateur) 31/05/2011 - 10:07

oh yep thanks for reminding=)

link | Flag this reply as a solution. joreg (vvvvgroup) 31/05/2011 - 11:59

actually no need for a contribution as this will be standard part of every addonpack in the future..
i'd suggest until then to leave it in this thread..

Great news!

just tested today on strong patch: works like a charm.
joreg: will be great to keep renderer test in module ;-)

link | Flag this reply as a solution. unc (kollaborateur) 02/06/2011 - 00:28

as for image "generators" (EX9.Texture Source) - does it make sense to generate tileable (e.g. repeated) textures? This would apply to perlin, also going to add voronoi/stars/plasma

Hi hunc !
Definitively yes ! if we can have more action on it would be also great!
For example the actuel perlin is great but there is missing to change somehow really its pattern, the size of clouds, its general aspect, So your suggestion is really great!
Spreadable? Enabling 10 or more images in?

Or is that a patternizer effect i was talking about with lichtenstein picture ?
Other idea:
generating papers canevas is generally based of the input of b&w bmp. Could be nice to have a tool enhabling to be feeded by a texture , create a kind of paper aspect , and be gently embossed with light diffuse source. I can collect if you want such materials in some freeware for its pack if you code it.

About generators, maybe a patch with expr use would be great also, enabling user to triturate data by some maths.

Convolutions dilatation, twirlling waving and any pixel displacement with your hunc power would be nice, always in perspective of little light fx .

and: where can we see something about you ? Know more?

hi

nice pack!!

I would set the texture format with Alpha on the effects that have a renderer pass, for example stripes

link | Flag this reply as a solution. unc (kollaborateur) 02/06/2011 - 14:34

@karistouf
about perlin - yep, have some ideas about it already, but so faq cant figure a way to keep it fast (not too many calculations)

spreadability would be very nice, but it is very dangerous too

good idea about bump/light effect

dunno if expr math thing would be possible, sounds like voodoo to me (if only there would be a possibility to feed shader/effect node with a string that contains shader code...)

and also - my nick is unc, not hunc :)

link | Flag this reply as a solution. joreg (vvvvgroup) 02/06/2011 - 18:31

attached a fresh dump from svn. now with extra testpatches for sources, joiners and filters, a fix for the stripesFX as pointed out by manuel and further work by unc of course.

two questions:

  • in the filter testpatch you see we have now 3 keyers. anybody familiar with keying please check: do they all still make sense or can we get rid of some?
  • same question for RGBA split/join: there are now two version. whats the difference? can we remove one?

@UNC: damned me, sorry ! ;-) is that something to see with a little girl with white hairs and skills ( a science fiction book )

@joreg: elektromeyers rgba is working, rgba2 is reddish and not working
on my nvidia 460M.
I think its still on work for unc since package 4.

about keyeing: need the 3
unc's keyeing may be called adavanced because of the blur thing and that it works in sat and lum
the 2 others are to be kept because they are simple and may be used smoothly in a complex chain: perhaps keying ( luminance) etc ... or a joint of the two filter in a keyeing(basic) with sat and luminance method ?

;-)

link | Flag this reply as a solution. sapo (translator) 03/06/2011 - 08:58

really gr8 work! it makes vvvv a bit more like my old love.. visualjockey.. maybe could be nice to have also a simple texture in/out node that includes a quad it transform/uniformscalex2 and indeed a renderer, with a texture out too, oh and a few settings pin. this to quickly display what's going on, somehow like a preview node that you can plug in your chains. or just as quick videooutput.
i was thinking to make it as a personal module because sometimes i find stressing to make the quad renderer uniformscalex2 evrytime to display anything.. but in this context it could make more sense..
Preview (EX9.Texture FX Filter) like? :)

Yes, indeed, this is pretty much Vjo style. (Hey Sapo, sorry for not showing up for so long... work work work...damn...:-(...)
Maybe we could could roam around good old Vjo and look for useful effect nodes that are not already available inside vvvv? Then we could make a Vjo <--> vvvv dictionary (some guy from NL could like this..)

Cheers & keep up the good work

Hei sapo thats a real good idea !

link | Flag this reply as a solution. sapo (translator) 03/06/2011 - 20:04

@meierhans: hey uncle! yes we could do that.. but looks like most of the basics effects are already in this pack, could be nice for some stuff, like "mixer", where you can select the number of inputs and the type of transition and it's control logics.. but! if we go after small effects like "double screen" in vjo it's gonna be a looong work.. about the dictionary for vjo users, most are very intuitive so i'd not spent time on that..

@karistouf cool! here is an image of how i tought it could be.

title

maybe you guys have some idea to make it better or add some functionality? i think it could be used also to resize the texture or change the filtering mode..

link | Flag this reply as a solution. sapo (translator) 04/06/2011 - 07:04

oh.. i just noticed there is already a Renderer (EX9.Texture FX Sink).v4p , maybe it could be merged with Resize (EX9.Texture FX Filter).v4p ?

Hi ! Yes the moduled fx renderer made by joreh is really great. No the good idea is to create a subpatch structure for enabling fx inside of it ;-)

@joreg: any idea or suggestion about expr based shader for convolutions etc ? Or is this something we could dream of one day? Or is it something we could do with dynamic texture as mask entry ?

link | Flag this reply as a solution. unc (kollaborateur) 05/06/2011 - 21:12

some new filters/generators
(will commit to svn when i get home)

@karistouf:
RGBA splitter doesnt work for me at all (all black), whilst RGBA2 splitter/joiner works fine... no idea what is the problem

hum... RGBA splitter from elektromeyer no more wrking. until 3rd packet it was ok.
i will check back
really great work unc !

ok, about rgba2 technique is nil in subpatch, with my nvidia 460M. This just the shader being tested, blank patch.
elektromeyers RGBA is whitescreen, nothing showing up.

does anybody encounters same thing ?

link | Flag this reply as a solution. unc (kollaborateur) 06/06/2011 - 09:18

btw any ideas how to make this stuff spreadable? Is it even possible?
I'm not very good at patching/spread trickery, so the only thing I came up with was to use MRT, but this does not seem like a beautiful solution at all

@karistouf
if you want to testdrive filters/modules firsthand, please pm me or catch me on irc (iptz there)

thru texture transforms, or rendertargets
but targets must be hardcocded
so what u do is a grid of images in one render
and send out transform for each image so quad will take only a part of that grid

unc said
btw any ideas how to make this stuff spreadable? Is it even possible?

having an implementation of spread-of-textures-option-from-renderer-pls could make it all spreadable. To make all this texture processing spreadable needs some modification to what I was suggesting but it's down the same lines of making a Renderer spreadable.

It seems odd to me with vvvv's strengths being spreads to have overlooked this with the renderer node. can't be that hard to implement is it devs?

@unc: i have some time this week.
irc busy, do you have skype or facebook ?

link | Flag this reply as a solution. unc (kollaborateur) 06/06/2011 - 11:13

skypee: unc_quite

antokhio said
and send out transform for each image so quad will take only a part of that grid

So any spread number that not divisible by 4 will result in black pixels beeing rendered?

hi unc
here is some pics related to:
1-texture or materials
2-black enhancement and variations
3-water ink effect ( the ink is going out and disturbing around) feedback

high low filter, contrast and glow are already enabling a big part of this results.

what is missing is a versatile tool enabling waterink mix in real time , and texturing from high light or saturation informations. what is your idea about those images ?

@Meierhans, think it's kinda easy to solve for the amount of textures witch type of spread formed linear or 2d.... but not sure also that if you just do linear like 4 images you will have less perf then on 2 by 2, and also if you do like 25 textures you won't really care about 1 slice black...

@karistouf: hehe, would be nice to use a motion mask freeframe with that ;]
can't find any ref on it... hehe have to run vjo for that.... But i've seen somewhere that avisynth can handle freeframes wounder will it work with vlc hehe ;]

hi antokhio, personnaly i prefer to stay completely on vvvv base ( vlc or avisynth plugin are providing sometimes strong surprises).

@unc: im doing a vvvv demo after tomorrow, so this is quite interresting to put yourself in a working patch for tests.
i m having strange behaviour with ECHO.fx, on open of vvvv. I m using beta25.1.

If echo fx is not feeded by a single input, its not working on opening of the patch.
the input of echo are RGB A, so i need to set a on open to switch the spread of parameters.

Invert: could be great to have like in vegas a float entry for invert, being from -1 to 1, instead of booleans ;-)

Hi unc. Another idea near the idea of patternizer, but maybe more simple to write: an average pixel shader:
Would contains a b&w mask entry and output average color value of texture in depending of lightness or darkness of the mask texture. Thinking of impressionnism, and that with a perlin texture that would be great.
Yours

link | Flag this reply as a solution. unc (kollaborateur) 09/06/2011 - 09:18

could you explain that in a more detail? Also, what patternizer?

@karistouf&unc
not sure what karistouf means, but check Impressionist FX
http://www.newbluefx.com/paint-effects.html

link | Flag this reply as a solution. unc (kollaborateur) 09/06/2011 - 12:56

thanks for the link DiMiX!
Do you know any other "filter packs"? If you have any links to pages with smth like a list with effects with previews...
I recall some page with resolume filters (put on sale on their website),
would be great if you could link me to more stuff like that... vjo filters maybe, i dunno

There is indeed some useful gems hidden in Vjo, but most of the stuff is CPU based. So it could only act as source for ideas I guess, not for code.
If you are interested I would suggesting to just download it and see what it does, quite sure you will get into it without any explanation (If v4 is legotechnik then vjo is duplo.. ;).

I could also do some screen capture and present some, will see if I find the time on saturday.

Guess you already know it.. but maybe not. Great source for HLSL code:
http://www.adobe.com/cfusion/exchange/index.cfm?loc=en_us&exc=26&event=productHome&from=1

(Just open the files in editor, you will see..)

link | Flag this reply as a solution. unc (kollaborateur) 09/06/2011 - 14:14

@Meierhans
I never said I need any source code;)
all I ask is previews of effects, like a short vid with effect applied... Even a single picture would be fine. But not a boring explanation of how effect work or source code - that wont really help much in my case.
If I see effect, most of the time I can figure out how it works, or find my own way, or maybe just get some useful idea from it.
also I wouldn't like to install all the software to see it working, if only in special cases when it worth doing so

so please, small videos, gif animations or still pictures are vvvvelcome=)

hi unc,
yeha DiMiX link is a good base.

basically, the mask idea is something to keep really in mind, as a pattern for the effect:

it could be texture like noise, or the videostream itself, a dynamic texture, anything. this really terrificly powerfull and opens the door to any of us to have real personnal approach of it.

it could enable painting effect in a non restrictiv way, has it is feeded by user insanness ;-) .

i was talking about having NB texture input to render as a map a concentration of the effect, as you have previously done wonderfully for blur fx !

about impressionnism, something that could be done with a mask input, enabling by end this type result:

actually only pipet enables to do it in a very consumming way.

this have something to see with a kind of "Patternizer":

karistouf said

Something to create dots or any patterns inputted and spreadable, depending of value of pixel, or hue, or saturation would be great also.

Those patterns should received also a rotation and a scale factor affectable by a multiplier ratio to the value of pixel, or hue, or saturation also.

I m thinking of patterns, because it is what we are using doing pipet, but ressources consuming pipet ! and multiple quads creating !

talking about brushes is more "clear" ?

@unc

I think you are some kind of robot from the future :)

LOL! Indeed!

Here are also quite some nice pixelbender (HLSL based) plugins available:

http://aescripts.com/

Not all of them might be suitable for realtime, but some are really fast.
Dont be confused by the "add to cart" thing, most of them are free, you can just set the price to 0 and download.

Hey unc, inside-us-all make some neat filters and they are all running in preview here:
http://www.immersive.eu/products/freeframe-plug-ins

Heheh need to go find more sacrificial offerings to your coding mojo...

for some inspiration
main stream-wide range collections
BCC http://www.borisfx.com/Adobe/bccae/
GENARTS SAPPHIRE http://www.genarts.com/product

some specific tool
cartoon look: NEWBLUE HTTP://www.newbluefx.com/paint-effects.html
or TOONIT http://www.redgiantsoftware.com/products/all/toonit/

simulating fluid dynamics ELECTROCOLOR FLUID www.electrocolor.com

http://www.revisionfx.com/
REVISIONFX PV FEATHER per-vertex feathering control, maybe good for some exotic (dynamic) softedge
REVISIONFX REFILL mends holes in images by intelligently filling user-specified regions, a bit hard to explain, but you can get very interesting FX
REVISIONFX REFLEX cool morphs and warps

kind of 2.5D collection
RED GIANT TRAPCODE SUITE http://www.redgiantsoftware.com/products/all/trapcode-suite/

hum.... would say that unc is visually thinking ;-) images please !

Videos are also ok? ;)

Bad TV
http://www.youtube.com/watch?v=9Gd2VHsTsLc&feature=player_embedded#at=62
(Sorry, no code, its 30 $ to buy)

Very nice keyer on HLSL base:
http://aescripts.com/yy_magickey/

Nice Vignette:
http://aescripts.com/ft-vignetting/

Filmic Contrast:
http://aescripts.com/ft-filmic-contrast/

Another Technicolor-Plug (with parameters)
http://aescripts.com/ft-technicolor/

Dot-Pixels (sorry no code, watch tutorial)
http://aescripts.com/dot-pixels/#comments

Last but not least:
The wonderful data glitch!
http://aescripts.com/data-glitch/

Something that takes a snapshot of incoming video and then uses the motion vectors coming in to shift the tiles around - something the really looks like a broken divx.. would be great!

Some of these plugs might not be suitable for realtime usage,
but at least they give some ideas. More to come!

link | Flag this reply as a solution. unc (kollaborateur) 10/06/2011 - 11:25

just to make it clear once and for all:
I DO NOT need any source code it is as hard and painfull for me to read/understand someone else's code, as for anyone to understand my code =P.

I WILL NOT install any software and try effects/plugins myself. please save my time, as this may take more time then actual coding would

I DO need only VIDEOS or PICTURES, thats all. Animated gif's are fine too. And maybe a short explanation of
what is what, if preview does not speak for itself

and btw thanks for the links posted so far, will take a look as soon as possible

Wow you're fussy ;)

I understand this for C++ and stuff, but does this really count for HLSL pixelshader code? At least the be able to have a short look: How was it done in there..? Let us know.

(Did I mention this feels like two weeks of chrismas already? Its really amazing how much these little tuned micro patches add to v4!)

here is PDF of Sapphire Plug−ins with 220 FXs, which will cover at least 50 % of your daily needs. at the end is a list of FX with pics for short overview

link | Flag this reply as a solution. unc (kollaborateur) 10/06/2011 - 18:23

@DiMiX
Exactly what I needed! MOAR PLZ=)

this might sound very superficial but, nice thread!

@unc
MOAR PLZ? ...sure?
re:particles - did you see the link someone posted in shoutbox: http://unitzeroone.com/labs/particleVideo/
would be great...

I would love to have some of the effects from Magic Bullet looks inside VVVV. Especially the very controllable blooms combined with adding
Here a short clip that gives an overview:

http://www.youtube.com/watch?v=q_3YQmpyAz8

Actually MB is more than just a plugin, yu have about 100 effects that you can chain the way you like to. If you need more info just google for Magic Bullet looks (1.4) ;)

Blend mixs type shown here in a very visual way:
http://www2.ambientdesign.com/files/layer-blend-modes.pdf

must say that blend from svvvitcher contains mostly all those techniques.
(attached)

if the blend.fx is included, should be good to have a 8 techniques ( basic) module, and an advanced containing all techniques, because of limitation of certain graphic cards like ati: they may compile, but may not deliver any output because on strong work on other tasks

link | Flag this reply as a solution. unc (kollaborateur) 14/06/2011 - 23:24

latest pack:
a bunch of new modules added, some old ones fixed

keying shader brilliant

Oulalalala unc !

Beautifull garbage fx !
Great Voronoi !

Dot.fx: ah yeha, that is is great ! is it possible to have a texture input to set a texture (spreadable) for the dot ?

Black and white: beautifull threshold fx. maybe better to call it threshold ?

Convertcolors: surely plastician will love adding CYMB entry for professionnal printings

Maybe a splitter like RGBA2 would be great also on Cyan Magenta Yellow Black base

Troubles:

Drop shadow not working, completely disconnected inside, no red nodes.

Black and white bugging of alpha ON ( on nvidia 460M + dynamic range setted full, cam video texture in nonpow2)> needed to close from task manager vvvv

Framedifference broken, no red nodes ( brightness connected to ? )

RGBA2: still not working for me, anybody around having the same problem ? ( on nvidia 460M + dynamic range setted full)

RGBA split and join (elektromeyer) still no more working also. I have checked with the Karistoufkeyer file sended preivously( see thread): it still works. So i presume this is not my graphic card that have changed subtilely of moden but a change of code somewhere that the Nvidia 460M dont like ;-)
Anybody else having the same problem ?

Voilà ! thanks again unc, thats a real tough work !!! really great !

What about water ink effect or paint effects ;-) ( i know that is strong one ;-) )

@unc
first of all thanks for some useful and interesting FXs
although my win7 with nvidia QuatroFX 3700M gets very unstable with some stuff.
RGBA & RGBA2 not working, getting sometimes pink (mode pin),
KEYING pink as well sometimes
drop shadow works, but strange, not as expected
Framedifference not working
@karistouf B&W works fine for me
pity not all FXs deal with alpha (ex. Colormap)
@unc & karistouf
dealing with real-time mix FXs I still miss in vvvv a good shader for background subtraction.
the best I tested was Pagemarc_s:
userpage-493
but alpha is not implemented and it's static subtraction only.
is there a way we get a shader with alpha, static/dynamic BG?
Cheers, dimi

way, way overdue the old guy suffering from dementia starts interfering with his stupid thoughts....


Finally i force myself collecting all my thoughts to this wonderful thing.

As a very first i like to praise and thank our fellow unc and acknowledge his hard work around all this.
Dear unc; i somehow admire your somewhat very minimalistic shader-coding-style, which sometimes reminds me to woei's extremely dense patching style. Even if i myself prefer to waste lots of bytes within the code for commenting and even formatting and aligning.
maybe the truth is somewhere in between; who wants to judge that.

i like very much the way you maintain and care and communicate this nice EX9.Texture enhancement.

in my opinion you also should maintain and administer this project and its structure in the future. this could avoid chaotic uncontrolled growth. y'all know what i mean.

unc, you're the man!

once upon a time i started working on some similar modules and tried to develop something like standard pin names and naming conventions. this was somewhat around beta4; back then there have been no shaders in vvvv!
better don't seehttp://legacy.vvvv.org/tiki-index.php?page=kalle.Modules.Texture

back then i separated between Texture FX and Texture Transition modules and also wanted to discuss naming conventions in the fffforums. Meanwhile here is a wonderful platform for this!


joreg said
  • EX9.Texture FX Source
  • EX9.Texture FX Filter (includes converters..)
  • EX9.Texture FX Join (was mixer, ie. all modules that combine multiple textures)
  • EX9.Texture FX Split (like eles RGBA, now where is the reverse of that ele?)

now my thoughts regarding naming conventions:

EX9.Texture FX Source

A module with a Texture Out intending to serve a generative or whatever Texture

EX9.Texture FX Filter

A module with a Texture In and a Texture Out which somehow processes the Texture.
should be based on a common _Template (EX9.Texture FX Filter).v4p to guarantee common minimum specs.

EX9.Texture FX Filter ROI

like above but with a second Texture Input which is only meant to control the Region of Interest.
unified pinname like e.g.:

  • Control Texture
  • CTRL Texture
  • ROI Texture

i'm not lucky with ROI, but i think there should be a subcategory for that. opinions please.

EX9.Texture FX Join

modules that combine multiple textures in a "technical way". not including the mixer.

EX9.Texture FX Split

modules that split multiple textures in a "technical way"

EX9.Texture FX Transition

or EX9.Texture FX Mixer??
or EX9.Texture FX Fader??
opinions please!

A module with 2 texture inputs and 1 texture output intending to process a dynamical crossfade

  • Texture 0
  • Texture 1
  • Transition Value between 0.0000 and 1.0000
  • Texture Out

should be based on a common _Template (EX9.Texture FX Transition).v4p to guarantee common minimum specs.

EX9.Texture FX Transition ROI

or EX9.Texture FX Transition CTRL
or EX9.Texture FX Transition by Texture
opinions please!

A module with 3 texture inputs and 1 texture output intending to process a dynamical crossfade between 2 textures controlled by a 3rd texture

  • Texture 0
  • Texture 1
  • Control Texture

black control texture outputs Texture 0 only;
white control texture outputs Texture 1 only;

  • Texture Out

should be based on a common _Template (EX9.Texture FX Transition ROI ).v4p to guarantee common minimum specs.

EX9.Texture FX Analysis

yaa like that.

EX9.Texture FX Renderer.

nice things to come.

furthermore i am thinking about sth like

EX9.Texture FX Control Source

A module with a

  • Transition Value between 0.0000 and 1.0000
  • Texture Out serving a black/white Control Texture

opinions, please,
some weird patches following soon.

furthermore:

bilderbuchi said
Naming scheme looking good. Only, as written before, I would keep "general" names, and put implementations into a mode pin (like in ConvertColour) - i.e. not "FastBlur", but just "Blur" with a mode pin switching techniques, if implemented, e.g. Fast, Gaussian, Wind, whatever.

ouououou. in my collection of shaders i often had to rework some only because of naming. so there are each 5 or more different "Distort", "Blur", "Displace" etc.

regarding that i like to quote:

joreg said
in the filter testpatch you see we have now 3 keyers. anybody familiar with keying please check: do they all still make sense or can we get rid of some?
same question for RGBA split/join: there are now two version. whats the difference? can we remove one?

the current fast development will result in a large count of files and an uncontrolled growth.

IMHO a subfolder structure respecting a subcategory convention like proposed above could help to keep track.

honestly i'd like to hear unc's opinion in the first place :)

each subcategory should have its own _Template patch;
each _Template Patch should have a _Template help patch.

this makes it easy to provide a basic help patch for each Filter,Source,Transition....

Render State
Color Transform
Enabled
and a separate
Texture Transform for each Texture Input
should be provided always.

good night;
dear unc, pls let's chat soon :)

Hi Kalle, nice to read you !

personnally, if it s possible, i would like really that all shaders receives ROI with BW texture. If they dont receives texture, filter is performed on all image.
This would be really a must for everyone, and a specificity of the fx set in VVVV. But well, this is very personnal as opinion, and i m not with 13' and 15' pipe in the hand, like unc: all the day pipelining shaders for the great joy of the community !!!

Now it would be also great that this great great work does not became as complicated as a Library nomenklatura !

4 family are for me surely enough... avoiding to be lost ...

TextureFX.Generator
TextureFX.Filter
TextureFX.Mixer
TextureFX.Tools ( //analyser / renderers etc)

;-)

Hi unc i have tested strongly two shaders on evening vjiying:

Blur and garbage.

About garbage there is definitively the need of a clear pin to reset the result. The idea and this shader are really interresting allowing strong 2d effect! Just the need of a reset/ clear texture

About blur its really nice and i have use it on images like unfocusing a camera. Its really great and pointing that it would also great to have gaussian blur and maybe other type of blur , with texture mask entry. The fast blur is great but renders when you make a big big factor of blur a sort of square blurring in its way to create the blur

Maybe you are running also on the particle system...
Did you have time To see what and why something is wrong with rgba2 ? Could we take the time to sort whats going on in this really promising shader?

Yours

Christoph

link | Flag this reply as a solution. unc (kollaborateur) 24/06/2011 - 09:55

good point about garbage module, why havent i added it in the first place?
About blur - this artifact you see is the price for its speed... Maybe blur twice then?
RGBA2 - maybe it doesnt work properly because of different vvvversion (it was made using beta23), or i just misunderstood how it should work

btw, check the svn https://vvvv.svn.sourceforge.net/svnroot/vvvv/modules/trunk/common/TextureFX/ , all fixes/additions appear there first (there are couple new filters already)

somehow the shader of rgba2 breaks during compilation with 25.1 , i can confirm this

link | Flag this reply as a solution. unc (kollaborateur) 24/06/2011 - 12:03

omg, just realised how bad things are... Gotta repatch everything under beta25, nearly every second module is not working there

fixed a bug in rgba2 also

big bugfix update coming very soon...

hi all
before big bugfix update comes
quick feedback -testing new modules from unc post 24/06/2011 with old FXs from FX_07.zip
dropshadow working now, but i can adjust blur only, nothing else: all other inputs pins without function
echo is just great
FrameDifference working, but i doubt about naming, is it what you get with this fx?
Garbage (old from FX_07.zip) - brilliant, cool effect. testing with BG subtraction looks amazing. but new Garbage - does not work for me.
again the naming... why "garbage"? why not..."pussycat"?
new Keying working constant. thank you.
new Mix also working but (from time to time!) additionally tiled the texture a la Mosaic in 4 cells (happens also to WarpTime, need to restart vvvv)
new RemoveGrain does not work for me, the old one is better
WarpTime is working, very interesting, but ignoring alpha for me, framecount less 15 fails.
dont want to overload module, but some smoothing adjust control would be great.
@ unc again thanks for your input. we appreciate a lot
dimi with beta25.1

ok, thanks unc, i will check new svn !

about procedure, how can we help you really by checking (thanks dimix !!!) ?

maybe could we post results with 23 and 25.1 , + graphic cards ? could help to sort of troubles and reorganize a clear idea of what is going wrong ?

I completely agree with unc to patch in 23 before 25.1, because there is no retro compatibility on certains patchs from 25.1 to 23.
Personnaly i m continuying to use 23 when i need more ressources, 25.1 is great BUT ressources consumming on graphic card ( yes ! i can assure it).

So what would be the best way to send your results in a constructiv manner ?

link | Flag this reply as a solution. unc (kollaborateur) 25/06/2011 - 12:48

@karistouf
yep, would be good to have kind of a bugreport page/thread, posting explanation + screenshots + vvvv/sys info

btw, wouldnt it be better to rename "effects" folder to ".effects", so then .fx files for all texturefx stuff will be hidden? they arent making much sense as standalone .fx anyway

hi unc and all,
before new big bugfix update dont wanna bother you with bugs with beta 25.1
some general thoughts:
is possible to make perlin & voronoi dynamic? adding evaluation or/and center offset?
maybe i missing some latent ideas behind, but some limits of ranges of input pins could be more intuitive,or organized for end-user:
some alpha range are ...less then -1 and more then +1?
another e.g. inverting range LumaKey is not better set the limits from 0 to 1 instead of unlimited
e.g. - clamp range of Pillow - current functional range is from 0 to 1, make it sense to go in negative range or more then 1?
e.g. alpha blur in Keying (pos/neg unlimited?)
cheers, dimi

link | Flag this reply as a solution. unc (kollaborateur) 25/06/2011 - 13:50

got some very strange behaviours in beta25.1
like, some module doesnt work (red), and then i restart vvvv and it works (had this with HSCB and RemoveGrain)

EDIT: found the problem - it was when i was accidentally addingmodulename (EX9.Effect) instead ofmodulename (EX.Texture FX), then removing shader node and add module itself. Somehow it made that shader not working (for the current vvvv run)... dont know the background of this, maybe it has smth to do with root patch

(when i'm working inside .TestFilters patch and type module name, all fx files are listed too, why is that?)

@unc
o man, I did not know you patching with beta23.
I install again23 and many things i checked working much much better.
nothing(!) flashing pink,
FrameDifference works as expected, a good dymanicBGsubstraction tool, but pity alpha does not work for me.
for fine color correction i would wish kind of Curves or Levels(RGB+A)filter (important for keying and matte), HSCB is limited for that
thanks, dimi

link | Flag this reply as a solution. unc (kollaborateur) 25/06/2011 - 20:42

ok here goes The BugFix

  • reviewed all patches, now all works in both beta23 and beta25.1 (hopefully)
  • various code fixes (RGBA2, sudden 4cell mosaic, smooth for warptime, reset for garbage, etc)

(did not touched rgba split&join,chroma&lumakeys - maybe i should rewrite those so they all be one style?)

link | Flag this reply as a solution. unc (kollaborateur) 25/06/2011 - 20:59

@DiMiX for doing something like curves you could try ColorMap, just attach a Nx1 px dynamic texture to it, with colors set up with a spread

check this:

@unc
thanks for help file. great.
checking last release now. looks good..
FrameDifference - would love to use, but alpha not working yet :(
beta 25.1, Nvidia Quadro FX 3700M

link | Flag this reply as a solution. unc (kollaborateur) 25/06/2011 - 21:37

what exactly you expect from alpha of framedifference?

hi unc
FrameDifference Matte
In this method, the difference between two images (frames) is calculated. With this approach, the identical areas of the images become transparent. Accordingly, only difference is visible.
usually use for dynamic background subtraction where the background changes a lot.
thanks,dimi

link | Flag this reply as a solution. unc (kollaborateur) 25/06/2011 - 22:05

hmm i see, this makes more sense than what i did
will fix soon

if you can wait i could find for you some variable attributes you can use for input pins making module more flexible

but generally nothing special:
average of the movement (how many previous frames will be feeded to calculate the difference)
matching tolerance
matching softness
thread about:
frame-difference-in-shader
trautner (freeframe dshow9)

i have made tests tonight of the FX8 pack ( wich is quite full and splendid) at same time with 23 and 25.1.

Here is a pdf and an xls file of the checkof the differents shaders.
About Alpha, you will see a lot of NO about alpha generation from a shader. Maybe it is a wrong idea of mine:

tests were done with the following point of view about alpha result:

So when a NO is setted for alpha generation, it is becuase the FX inputed inside RGBA2 doesnt output a transparent result.

About DiMiX suggestion i agree with him. Backgroound is really too much flashing, but its really great to have the visual equivalent of trautner effect without too much ressources consumming !

voilà ! definitely yours

new challenge, unc, new challenge !!!
water ink effect http://www.youtube.com/watch?v=fq9mw8wR-1Q

what is interresting is the way of propagation of the ink. and a kind of DOF effect while its progressing.
On a texture, what i would like to have is a filter with a maski input wich would be the move and path of the ink.

@karistouf
i'm afraid you cant get (good one) water ink without dealing with particles
check the vid, its kind of try to imitate the same
come back later about your pdf

hi DiMiX, thanks a lot.
i m desesperatly trying to find a good starting patch to deal with particules in generativ way. not enough maths am i... but this is another topic in fact.
if anybody wants to teach pure noobs in this field, well, lets go for a topic !

about the ink effect its more the water dillution effect thats interrest me ( the effect of the beginning of the ink running in dillution).
Maybe i want in fact talking about the rain dropping on a car-glass, giving a kind of blur wich moves littely the focus and displace somehow a bit the texture.
I tried with a mix between unc's displace and blur effect but without convincing effect...
what i m searching is in fact a dillution shader ;-)

maybe a dillution fx doing expand pixel + desaturate + blur on the base of a mask input could do ut ?

@karistouf
not exactly what you look for, but you have to try unc's garbage - very interesting Fx (never saw before): with X:0 Y:0 it looks like simple trail- movements, but it gets more interesting if you add shifting (with X/Y) and play with alpha value from -1 till +1. it controls dissolving (or your dilution) time. with source without alpha you get "pulling carpet of drawn pixels" fx, you have to make big alpha area to see full potential.

general considerations:
is it in planning to make help files?
1. some of FXs are self-explaining: maybe in order keep all modules in minimalist style a short help note placed inside of module would be enough.
e.g. Group: see pic
2. another Fxs are more complex and multipurpose
e.g. ColorMap like unc posted before for curves, there are many ways to manipulate the pixels value, from simple Tint to ...color offset, colorama, channel manipulation - matte, inverting, mixer etc.... what i mean would be good to share all these mini-patches, done by someone once. not with "general distribution" pack, but somewhere in vvvv contribution
@unc
Texture_08 tested beta 25.1 nvidia QuadroFX 3700M
Perlin is PINK and sometimes causes crash of v4
@karistouf
my "vision" of dropshadow

@DiMiX: dropshadow: ah yeah, got it now ! great!

About crash: to make tests i was running two instences of VVVV: 25.1 and 23 side by side.
Discovered:

  • 1- cant send/receive between the two versions on same computer
  • 2- copy paste nodes or modules from 23 to 25.1 is making crash in 5 minutes of 23 ( yes, of 23)

About alpha channels, am i wrong or structure must be changed for some effects ?

About help files, yes there are certains unc's shaders terrific we need tutorials to get the full potential of them.

About garbage: thats a point. i will go back to it.

link | Flag this reply as a solution. unc (kollaborateur) 26/06/2011 - 14:54

sorry about the perlin, here is a quick fix:

hi guys,
thanks @unc for perlin: fixed.
pity i could not test everything and i'm busy next days, but many things i tested with 25.1 are WORKING. nothing flashing red
@DropShadow works well.
small things again:
I join caristouf: autocolor - which intentions are behind?
LumaKey module
Invert pin - current range unlimited; functional range 0 to 1
Luma pin - current range unlimited; functional range 0 to 1
ChromaKey module seems to be for me BlueBoxKey only
some pins naming needs extra description in help notes
Hue -matching color?
range - tolerance?
Bright Clip - softness?
Keying module - some pins naming needs extra description in help notes
smooth/invert pin - it looks like mask edges manipulation:
0 - hard edge; 1- Max.Edge feather + negative mask expansion
alpha blur pin is more like alpha smoothness (not blurring) + positive mask expansion
I wish myself some explanation for:
function of mask pin in Mix module
function of pin Height/Green-Blue in Displace module
range of fader A&B in different mode (from -20 till +20) in CombineChannels
i'll be back asap, dimi

@dimix: whatabout using the xls file. Like this it will be far more clear for unc. Many shaders oulalala

link | Flag this reply as a solution. joreg (vvvvgroup) 28/06/2011 - 02:57

after a lengthy discussion with unc we nailed the specs so far, see:
texturefx

anything missing? please comment here so we can discuss further before adding details to the page.

karistouf said
Personnaly i m continuying to use 23 when i need more ressources, 25.1 is great BUT ressources consumming on graphic card ( yes ! i can assure it).

would be nice if (in a separated thread) you could provide a demo for this:

unc said
btw, wouldnt it be better to rename "effects" folder to ".effects", so then .fx files for all texturefx stuff will be hidden? they arent making much sense as standalone .fx anyway

no, vvvv needs the folder to be called "effects" exactly. like this all the .fx in there are only visible (in the nodebrowser) when inside one of the modules. note that they are not visible in other patches e.g. ones using one of the texture-fx modules (except the .Test..v4p which are in the same directory as the modules, which will not be the default place for a users patch.)

@help-patches
probably still wait a bit with those until specs have settled (just to avoid much reworking). but definitely welcome of course.

hi joreg, hi unc.
i m still thinking its quiet too much categories if i m searching with node browser EX9.Texture. Maybe Ex9.Join Ex9.Split and Ex9.Texture could be merged in a EX9.Utilities.
Great analysis thinking, definitively.

link | Flag this reply as a solution. joreg (vvvvgroup) 28/06/2011 - 12:02

EX9.Texture is not a new category really. it is just the one already there. and analogous to Vector (3D Join) and Vector (3D Split) we thought it made sense to have (EX9.Texture Join) and (EX9.Texture Split).

i like Displacement, BlackWhite, Posterize and Dots
something happens (in purpose?) with Opacity if the texture goes through Group FXJoin:
looks like ALPHA changing from Straight to Premultiplied with black
ColorMap Pins: fromWhite & toWhite - default values (alt+RightClick) are funny
@unc: TimeWrap is great TimeBLEND FX, maybe its possible to transform this shader to TimeECHO FX (FakeMotionBlur) with Attributes pins: Time (of each echo), Number, Intensity (starting), Decay, Mode (Add, Screen etc.)
can not figure out the way to use Mask Pin in Mix FX (seems for me like blending in Screen Mode)
can not figure out the way to use MaskIn Pin in Mix FX (works for me like small displacement)

this is all really enormous - thanks for your effort!

i'd love to see some kind of 'bokeh' shader to get a simulation of a camera lens DOF blur.

see here or here for examples.
would that be hard to do?

@motzi
i think its not so easy to create bokeh fx with moving pics, otherwise it would be such filter for AE. maybe someone can correct me, but I never heard about.
here are two links, maybe it helps you by playing with unc's DOTS & BLUR:
http://designertoday.com/Reviews/2009.Reviews/6174/Alien.Skin.Bokeh.Plug.in.aspx
http://www.computer-darkroom.com/tutorials/tutorial_9_1.htm

link | Flag this reply as a solution. unc (kollaborateur) 01/07/2011 - 01:46

i have some kinda bokeh blur in progress, but it is slow and not very beautiful at the moment

I had a quick play tonight, great shaders unc!

@DiMiX
i don't have much experience with AE but quick googling brought me to Frischluft Lenscare, which looks very promising (at least in AE :) . you can find some examples with moving images on youtube that look great.

link | Flag this reply as a solution. unc (kollaborateur) 01/07/2011 - 08:20

here is what i got so far with the shader:

hi unc.... that is a very hard task indeed !
is it a kind of trautner algorythm or contour to detect first plane in a
2D image ?

BTW:
if you got time would be great also to extract dithering fx from Black and White shader addo a specific shader from it.

link | Flag this reply as a solution. unc (kollaborateur) 01/07/2011 - 10:03

in that image, it is just that "lensblur" applied to 2d image, and with a "mask" or radial gradient (from center to the edges of the texture). I guess, if you put depthmap of your picture here as "mask", it would be kinda like DOF, but I'm also sure there will be nasty artifacts

also, what about dithering?

here it is ;-)

taking about having this effect alone without BW, but with mask input

link | Flag this reply as a solution. unc (kollaborateur) 01/07/2011 - 12:24

ehm... Posterize has dithering parameter too, have you tried this one?

hi unc, yes i tried.

but it would interresting to go further on the dither, wich is really having a strong visual potential, enabling : tv effect, woodcut effect, high tech scanning effect, etc etc

a dither effect would have:

  • threshold
  • x width
  • y width
  • size x
  • size y
  • global orientation of the dither
  • phase
  • line frequency
  • gamma adj
  • contrast adj
  • with mask input for its presence

dithering?

i like!

here floyd-steinberg-dithering-in-a-shader i tried to achieve some dithering things - i tried several approaches (c# - no texture in, shader - not possible) so i finally came up with this freeframe thing. it "works", but is reaaaally slow at all so see it as a proof of concept.

for sure, a real coder can speed things up... perhaps

hi sebl. cant arrive to open it neither in 23 neither in 25.1. The floyd dlls and also the zip files of the topic of your effect wont load ?

ah, try to open it with some alpha (25.2) because there's an issue with "external" freeframe-dlls.

i forgot that - sorry

@motzi
thx for links.
happy to learn smth new.
never used Frischluft before. indeed there is feature Bokeh-look-blur

DOF

and i think it's sufficient to get "out of focus" look for whole image.
but as every other lens blur for the best results it needs mask (dynamic for video) to calculate a depth buffer.
youtube links are CG graphics, depth map has been rendered from 3D app and used later in AE. for not CG graphic you have to create such mask. i don't know your intentions, but do you really need to mix it together in v4 in real time? i think its quite heavy task - my 512 pix picture needs 1-2 sec to be rendered in AE.
who wants to get more in - attached pdf

@motzi
check blurblack from this shader.
looks also good.

@DiMiX
thanks for this one! looks almost convincing on some images (especially the radial and spiral blur) and might work for background simulations.
but for content with hard contrasts (like small light dots on black background) it is not what you would expect.

i also like unc's bokeh attempt - the regions out of focus look good to me. i hope it will make it into the next release ;)

link | Flag this reply as a solution. unc (kollaborateur) 04/07/2011 - 13:32

ok here is the latest pack
structure was rearranged, now it's kalle's way =)
(and thanks to joreg for clearing things up)

added:

  • Assets (looking for textures/pictures in various places in your system)
  • Blender (blending 2 textures, lot of blending modes, all supposed to work as in photoshop)
  • Convolution (3x3)
  • FXAA (using Fxaa3_8.h by Timothy Lottes)
  • LensBlur (not perfect, and very slow - you've been warned!)
  • SetAlpha ("SetMatte")
  • Tracker (simple color tracker, give it a color, it returns XY and "spot size")

renamed:

  • BlackWhite -> Threshold
  • Renderer -> Preview

rewritten:

  • Perlin (now much nicer)
  • RGBA (RGBA2 removed)

rearrange:

  • ConvertColor removed, added HSVA and HSLA join/split
  • ColorMap removed, added Levels and ColorRamp

+minor fixes in various modules

@unc: just WOW!!1
o_o

wow unc !

quicly on new things ( i will do an xls like last time if you wan, please tell me)

  • FXAA not compiling on 25.1 / nivdia 460M > technique NIL / reddish node
  • lens blur great but pixelising on the beginning of the work: difficult to use
  • setalpha: fantastick, may be used as a crop or classical mask ( need to rename ?)
  • color ramp interresting, would that be possible to do it function of texture, and not on the average value of the texture ?

cheers, unc, good job !

yessssssssssss! great

@ unc, thanks again for GREAT pack with lots of improvements

  • FrameDifference working as expected, question: not sure, but alpha function seems for me keying black in post. that results that the moving dark pixels from (visible) Difference are getting cut-off as well. Is it possible to process alpha together with calculating difference?
  • Can someone advice me how to achieve this look of footage with alpha channel?

I tried Address, but it kills Alpha and dosnt work

Hey dimix you stage! ;-)

link | Flag this reply as a solution. unc (kollaborateur) 05/07/2011 - 10:32

@DiMiX
I'll take a look at framedifference
"process alpha when calculating difference" - you mean calculate difference of alpha channel together with rgb?
as i understand, how it should work - it calculates difference of rgb(a), converts it to a single scalar value, then puts that value to the alphachannel of the output texture, and rgb stays the same as in input?
Or, should it calculate difference of each channel separately, and put each difference value in its channel?

Btw for this textureaddress thing, you could try RotZoom with Clamp textureaddress (move your texture to the edge of the screen, then move it back with Clamp) - this should work with alpha

hey unc
Update: I checked Framedifference with other sources. It works correct and your approach:
it calculates difference of rgb(a), converts it to a single scalar value, then puts that value to the alphachannel of the output texture
is fine. I think calculating difference for each channel separately wouldnt change much. the problem is using this shader as dynamic BG subtraction. Seems for me it calculate the difference strictly between current and previous frame. and for slowly moving or big-sized object with lots of similar "fill" color it results detecting just moving outlines, ignoring the moving "fill".
s.file
i think calculating the average values of many previous frames as reference for difference would help to solve this problem
I will try ClampTextureAddress with RotZoom. Thanks.

@unc
thanx a lot - i got it: moving texture with RotZoom to desire line and then balance displacement by translating back or mesh center offset. By moving objects i can restore this line with tracking.
my question is it possible to code this kind of geometric transformations in shader?:
all last outside pixel from alpha in positive X dir will be stretched as clamp
or simulation of 2D Bounding Box (see pics) :
the pixel with maximal X value makes line, the pixel with min. Y value makes line, etc.
with cheers, dimi

@unc
BlurDirectional: is nice, but quite heavy.
could you pls check on occasion the XY value mapping: I believe we need -1 as well.
framedifference: attached is modified patch by Frank "BackgroundAverage" as idea

link | Flag this reply as a solution. unc (kollaborateur) 08/07/2011 - 09:19

interesting idea about bounding box, could be another EX9.Texture Analysis module

dunno about -1 value mapping on BlurDirectional... in this blur, it wouldnt matter if you set a negative value (it blurs in X axis, not in X direction)
maybe i better code another blur for that?

hi unc
your BlurDirectional looks for me more like Radial Blur in AE
anyway XY pins in your module representing centre point (?) and for the moment i cant shift it in -1 of X and +1 in Y direction
Directional Blur in AE produces different FX

link | Flag this reply as a solution. unc (kollaborateur) 08/07/2011 - 13:38

Ok now I think it's better to split BlurDirectional to two modules.

btw check the svn, new FrameDifference is there (added also ColorKey and Emboss effects)

Emboss - Great: especially LightDirection & Colored pins
FrameDifference: Yes. Right direction, just to get perfect dynamic BG subtraction we need one more pin, something like Time offset: i mean ability to shift all (16) Queue Spread more "backward", not only "immediate"
btw RemoveGrain killing alpha in my FX chain

@unc
I checked your Tracker.
Great Tool for simple solo tracking!!!
1.very stable with clear shapes, 2.half as hungry for CPU as contour
pity - XY output nor spreadable for two or more objects
I got kind of bounding box around. Do you think is it possible to find the way of calculation Max Height and Max Width of tracking object? in order to build correct 2D Bounding Box?
Domo arigato
dimi

Hi DiMiX !
What a cool thing would be ( if you can ) to set a bundle of WMV dancers files. Your top videos are particulary interresting ;-)
Anyway,
Emboss in Fx9 ?
@unc: about Tracker, yes its really great !
but there is still same trouble with the color tracker freeframe plug in: when a color is no more in the image, the most relativ pixel is taken.
The size is a good filter, maybe it could be great to add it as an input filter to avoid this unexpected effect of tracked color where there is no tracked color:
size obtained superior to iputvalue -> S+H -> output xy tracked

PS: VERY happy that you are also dealing with tracking. Do you think a Contour equivalent is possible with your technique ?

@karistouf
here are 2Xvid files: 1 pers and 2 pers
i mixed two IRcameras into 1024x768, not perfect: central spot, one half out of focus, some noise with quality you usually get
use first 5 sec to capture BG
Anyway,
Emboss in Fx9 ?

unc said
check the svn, new FrameDifference is there (added also ColorKey and Emboss effects)

Hi DiMiX thanks. Maybe could be great to create common archives about this kind of topic for users ! ;-)

@unc
hi
another idea "ColorizeFx" with ColorRamp: using luma channel allocate gradient color ramp
Q: dont know, is there some way to generate custom ColorGradient with >2 colors inside v4? if not, wouldnt be useful to create ColorGradient (EX9.Texture Source)? 5-6 color pins? gradient offset (pallette-shifting) would add great animation possibilities.
with cheers
dimi

link | Flag this reply as a solution. unc (kollaborateur) 10/07/2011 - 14:39

try DynamicTexture, turn any spread of colors into gradient =)

aye, check the helpfile for DynamicTexture.

i see
but i dont get any idea from helpfile how to set wanted color slices in between

@ unc
.TestFilters; .testJoinSplit. etc. with win7-64 DualDisplay:
moving RenderOutput to the second screen causes:
1. many nodes turn red starting missing technics enumeartion
2. after "activating" FX module (just running through the filters) - modules turning grey again
TTY:Access violation at address 0043B3CA in module vvvv.exe. Read of address Out of memory
moving RenderOutput back to the MainScreen cause the same +:
1. no texture displaying
2. after "activating" FX - modules turning grey again BUT still no texture displaying
TTY: no error
after all v4 crashing, freezing etc. need to log off
the same procedure as every time :(
can someone try using it on second screen?
any ideas?

link | Flag this reply as a solution. unc (kollaborateur) 13/07/2011 - 14:10

this is The So Famous Feedback/Queue/Seconscreen Bug...
no idea how to deal with it

can someone points us to solution?
pity to be limited of XP spanmode

You need to move all the renderers to the second screen, the hidden ones inside the patches, save them and your good, but they won't work on the first screen then....
@ joreg will there ever be a solution to this, hidden renderers moving their processing to the correct output, if not eliminating it alltogether?

ah yeah... had it also on last project.
Its NOT only a bug, its ressources trouble and way on how graphic card is dealing with its 1st and 2nd monitor
You need to dispatch certain of you patchs (included hidden like catweasel has said it ) in the second monitory > close main patch, reopen subpatch alone and place them on 2 monitor, save them again.
Pain is to obtain a correct configuration with all your filters.
When i say graphic card, its because i noticed on last project great difference with this issue between ATI 4850 and 5750: number of subpatches to be renderer in the second screen where not the same. It depends also for the resolution of you final renderer in full screen on second output.

@catweasel
keep all hidden render on the same screen as main output?
somehow working for me with first screen but i couldnt achieve it with second one
how to use full screen in this scenario without hide the patch itself?
@karistouf
as i understand your procedure: all red Nodes (subpatches with troubles) should be save in the EXTRA way on the output screen?

Hi DiMiX ! not all. but on patch creation its better to dispatch them on the 2 screens. your main trouble will be to define wich one should be where. question of equilibre. Will they compile every time when you open your main patch... thats the point. Finding the good ratio, depending of you GFX card.

DiMiX said
how to use full screen in this scenario without hide the patch itself?

the old toogle button over the renderer to disable fullscreen mode and access to your subpatch.:-(
Myself working a lot with S and R nodes to send textures and don't bother about subpatches hidden. But here, you may say you set unc's filter on second output, as they are daisychained i suppose you will not modify their internals ? Keep your personnal patchs to be modified on First monitor

link | Flag this reply as a solution. io (translator) 13/07/2011 - 16:42

For me it worked with keeping a small as possible windowed render in the 1st screen then use the fullscreen on the second screen, still a workaround.
S.

Hi karistouf
so the general recommendations: all shader texture passes, which cant perform on both screen, should be safe (as subpatches) on the main output screen. did i catch right?

yep. i would rather say to try to put equal "weight" in shaders operation on the two outputs. i mean trying to do a kind of balance.
but once again this is just personnal experience. it depends of your patch ( how many shaders, how many freeframe around) and gfx card.
i always now developping with 2nd output at fullscreen, and in resolution of the project. I had by the past too much strange issues ( shaders refusing to compile when you open your patch the day after)
maybe someone has a more rationnal and technical explanation ( devvvvs ? )

link | Flag this reply as a solution. unc (kollaborateur) 15/07/2011 - 20:48

please tell me what you guys think of this (see attached file)
what if we'd have a page with a list of texturefx modules - with screenshots (before/after), demopatches etc?
...that AND making helppatches for them all ofcourse =)

good job unc, founded answers about what is doing what on two or 3 shaders. really great ! ;-)

good help with thumbs.
didnt know that displace is UV map-based.
maybe for time-based FXs better aniGIFs?

link | Flag this reply as a solution. unc (kollaborateur) 15/07/2011 - 23:12

old Displace was renamed to Distort
new one is uv-based, and there is also DisplacementMap (Source), which generates this uvmap (then you can apply any distorting fx to this map, and then apply uvmap to the texture - gonna do a helppatch for these modules later)

yep, gifs will be good, even for still ones

Is there any chance to have regexpr input in a shader ?

link | Flag this reply as a solution. unc (kollaborateur) 16/07/2011 - 11:40

I think no. Atleast for now

@unc
will check new stuff next days
i noticed there is new Framedifference, beside mentioned above did you update more?
Framediffrence: thanks for new pin. first impression - works like EchoStamp:
small values of SkipFrame produces nice motion blur (with very clear alpha - no need of keying)
but algorithm seems to compare 16 pairs of after successive frames, not the average of 16 previous frames.
if you still plan to make "clear" dynamic BG subtraction, i would keep this version independently

hi unc, i m using actualy text(EX9.texture). There is need of following things:

  • autoadjust in the quad the text size: if text is inputted from getslice(string) its outgoing of the quad if number of letters too much. Needs somehow an autorecognition of the size of the text
  • justification left / right / centered / autoajust

yours , sincerely

hi
here is my idea for SoftEdgeAdv with BlackLevel correction.
can someone improve it? the best thing would be to code it in HLSL.... would be good to have possibility of asymmetric softedge gradient: adding rotation isnt correct in this case.
Can i get with DynamicTexture asymmetric gradient?

Text: hidden carcaters showing up ( return carriage ) . cheers

link | Flag this reply as a solution. joreg (vvvvgroup) 26/07/2011 - 23:25

unc, this is sick!
just updated the .Test.. patches. insane..

a few findings:

  • how about renaming Blender to Blend (as Mixer is called only Mix)
  • how about making the X and Y on Tracker outputs to a spreaded XY output
  • how about renaming ResizeCanvas to CropTexture (to be the counterpart of ResizeTexture)
  • CombineChannels has a mode called Mul that could probably be named Multiply
  • i don't get anything out of ColorKey. also it has an enum with only one mode. that could probably be omitted?
  • SetAlpha's Composite with original could write the Original with a captial O

all extremely well done, chapeau.

hola
I still have my headache.
i try to figure out some general references for patching using multipasses of videotexture with final output on the second screen or for multiscreen setup.
Everything works fine and constant when all hidden renderers and main output is windowed on the same screen. The problems appearing when i have to bring the videotexture to the second screen.
I changed "initial" state of all unc FXmodule (which have by distribution all hidden renderers placed on the main screen 1) to the second screen.
alt+1> move render to the another screen>alt+3>save ....
now all my texture processing and texture passes are on the same (and final) device
but i still get bunch of errors, why v4 is so allergic to this kind of set up?

mmm i think we need some kind of pin set device, since that shit makes post be pot roast every time!
I dunno how to solve that because every f'n time it f'ks up somewhere

Anton you right: soon or later we will face the problem.
I know the limitations of Videotexture node and I read many threads about.

  • can I do smthg with Device manual instead of shifting RenderWindow here and there? or like antonkhio said would be even better to have control pin in module itself? can i assign performing device through the WHOLE CHAIN of FXs via info node?
  • another problem is that these Device assignments got lost when you change your screen configuration: patching with output on second monitor > afterwards switching for projector. It's still your second screen in the set up, but all assignments connection get broken.
  • This way of manual Device assignments have a lot of limitations: setting for second screen blocks function of the modules on the first screen (in another patch, or in the same patch for another chain of FXs) . of course I still can make many instances of needed module with correct device association like Blur1 and Blur2. its probably workaround but typically v4 is more elegant, isn't it?

maybe tonfilm or kalle could help with xml cheating: setting position of a renderer and hidden state just selecting it and affecting it to a screen should be possible with setpatch and other magic commands ?
question is: how to list hidden renderers in a patch ?

That's the question: how we get access to the data of hidden renderer? inspector doesn't show me anything changing when i move window across display.

suggestion ( edit: for the devvvvs ): Make a pin in the renderer that defines which device it is rendering on.

btw: if in my FXs sequence are nodes like Queue (EX9.Texture) and Buffer (EX9.Texture)? there are also dealing with texture, should they be device assigned?

seems some time just reseting dx9texture helps

i reproduced the patch with beta23: it seems that b23 deals much better & easier with all these device association. i have no crashes. still some error messages, but much more stable.

hi DiMiX, maybe YOU have finally the clue that Beta23 is working better and is performances better with shaders. Could you upload this example here taht devvvs may have a look on this topic ?
i m still patching my projects for exactly same reasons on beta23.

link | Flag this reply as a solution. unc (kollaborateur) 02/08/2011 - 10:23

and i have a tshirt with beta23 splashscreen for exactly same reasons :D

@ unc
i have for you another one:
http://www.wordbonerstore.com/2011/03/even.html

DiMiX we need this patch for joreg !!!

i do. just i need time to make good demonstration b23 vs. b25

That's rather typical scenario.
before i could set this simple patch beta25 crashed 3 times.
beta23 makes the job as expected: see the pics

beta25: two modules are reddisch and i have no access to wanted technic pins

although they performing the same modules from subfolder.
Please test it on the second screen.
All hidden renderers associated with second device and main output as well.

link | Flag this reply as a solution. joreg (vvvvgroup) 02/08/2011 - 21:58

@second monitor
if the only thing you want is to get an output on the second monitor this should be easy: put all visible renderers on the second monitor (the hidden ones in the modules don't matter) and start vvvv with:

 /dda 1

like this your example starts and runs fine for me on the 2nd monitor. confirmed?
moving renderers between monitors still causes hickups, true. also of course videotexture still bugs on multiple devices.

Hi joreg,
thanks for reply.
yes I got it with second monitor.
dealing with these device association that great irritation is that i get the current state FIRST after restart.
but generally FXmodules working very buggy with beta25.
too much unpredictable behaviour....and red color...
I cant get my patch GREY with beta25.

@unc
vimeo-just круто
we are still waiting for some hints re:UV map
and new idea:
http://openprocessing.org/visuals/?visualID=31404

link | Flag this reply as a solution. unc (kollaborateur) 09/08/2011 - 23:12

@DiMiX
nice hint how to make painting effects! gonna implement some soon

about uvmaps/displacements - yes, i was planning some helppatch, using those is a little tricky

yesssssssssssssssssss !!!!!!!!!!!

i've been using a similar technique in openGL but haven't been able to port it into vvvv.
http://www.flickr.com/photos/e_f_e/6013803782/
http://www.flickr.com/photos/e_f_e/5707409752/in/set-72157627107042674

looking forward for an implementation with vvvv!!

@unc amazing work!

joreg said
put all visible renderers on the second monitor (the hidden ones in the modules don't matter)

checked again: without having ALL hidden renderers on the second monitor I get TTY:
ERR : Error caught in the act: TMIOEnumComponent : Access violation at address 00563827 in module 'vvvv.exe'. Read of address 00000000
beta23

hi unc,
i'm trying to get "Shifted Echo" FX with your Garbage.
is there a way to avoid cyclic texture?
like border address mode?

EDIT:
actually the goal ist to get Shift+Scale+FadeOut of Texture qeue.
i dont know maybe it's easier to get it by some spread transform of motion blur texture?

link | Flag this reply as a solution. unc (kollaborateur) 14/08/2011 - 22:38

@DiMiX: Garbage fixed, check svn

link | Flag this reply as a solution. unc (kollaborateur) 14/08/2011 - 23:30

here is the latest texturefx pack, for those who are not checking svn
and also a little demopatch for displacement stuff

Hi unc,
thanks a lot for fixing my garbage request
pls check if possible to get this look of zooming.
looking forward to play with FX10

oooo... man
your distortion variations - grandissimo.
HATS OFF

link | Flag this reply as a solution. unc (kollaborateur) 15/08/2011 - 03:55

Garbage fixed again (fader),

@DiMiX
you can do that with Garbage, there is X and Y pins (but when you zoom you must scale up X/Y offsets too, maybe later i'll come up with how to internally scale them according to zoom, a bit confused about it atm)
And by the way, have you tried adding DropShadow right before Garbage? this can add some 'volume' ;)

@unc
ye. i understood, its possible to get this look with single moving (alpha) object adding offset, but as soon as you deal with standard texture....
you can't please all...:)

link | Flag this reply as a solution. unc (kollaborateur) 15/08/2011 - 13:07

can you show how it must look on 'standard texture'?

hi unc
my mistake: it's not possible to achieve. as you cant have multiple vanishing points at the same time
btw: i am quite ok with all others FXs, but still have troubles with using garbage on second screen (beta23)
any ideas re:?

P.S. I think karistouf will be trés enchanté with DistortFlow

"list index out of bounds" ?
i cant find anything in forum....
EDIT: OK it's solved... again /dda 1 workaround

link | Flag this reply as a solution. gregsn (vvvvgroup) 19/08/2011 - 22:54

@unc: thank you vvvvery much for this wonderful set of nodes! i for myself knew of the great developments here, but didn't have the time to really focus on it and take part on a specification / dev side.
just had to focus on bugs lately. hopefully some feedback problems are gone. please report if there are still buggers.

so i am a bloody noob and had some hick ups in the process of getting into it. so here are my thoughts on how to get a better access to the nodes:

  • reintroduce the top level show off patches that you already developed. without them it is hard to get a starting point
  • @all: some nice "girlpower" (application) patches that show off some nice combinations (like feedbacks)
  • what about an additional "Layer" output pin, that eliminates the need of an additional quad and scale node? so the user always would have the 2 possibilities of either using the texture or using a full screen quad layer that only needs to be connected to a renderer. (by using the layer output only, the last renderer in a texture fx module wouldn't be used, but only the effect connected to it)

path example:texture source->texture filter->renderer

what do you think?
thanks again, gregsn

link | Flag this reply as a solution. unc (kollaborateur) 19/08/2011 - 23:48

I'm going to do some big changes over texturefx modules:

  • Layer output pin, hidden by default (now possible in beta26)
  • optimization: every module that (ab)uses mipmaps, was re-rendering fullscreenquad with that texture, enabling rendering of all mipmap levels. This must be that way: first do a check for mipmap levels, if there are none, do re-rendering, if not - avoid it. (the problem is, if rendering is set to "All" mip levels in DX9Texture node, level check (Info node) says it is only one level, so... would be tricky solving this)
  • find a way to make texturefx-chain feedback-able
  • make each module read texture format, and return a texture of same format (if working with floating-point-textures, you'd expect modules to return floating-point textures too)

this will break compatibility with versions <= beta23

Hi unc, yes...

gregsn said
what about an additional "Layer" output pin

would be really great ! nice job ! why the output should be hidden ?

DiMiX said
P.S. I think karistouf will be trés enchanté with DistortFlow

I m dying totaly from the work you have done on the flow. Painting is easy with it and its woaw...
cant say anything else that i m waiting for next creation to work with this wonderfull set of effects you have produced.

in screen shots i have seen from you, unc, i noticed your strong taste for painting also ;-).

Maybe it would be great to find a polymorphic way, has you produced with little nodes daisy chainable, to have Flow techniques accessibles and mixables with heavy feedback.

I dont know anything about what is under, but 2nd texture pin is really a key to all this surprising set, and i was wondering if you could propose us some way to break the barrier of the code by setting a fiew set of nodes opening feedbacks with basics ( but powerfull) operators.

Anyway, i think we will be a lot to have a religious ( or anarchist ) pensée for you each time opening vvvv...

here is kind of FluidDissolve
there were so many versions of FXs, so i packed in ones I used

@ unc
Hi
2 questions.
1. is it possible to add LightColor pin to emboss?
cause i cant get the same (or good) results coloring it in post passes

2. i'm trying to do small step forward with your tracker... and (with lots of limitation, but) track two objects?
dont know if it this idea would work:1st pass - to get min&max XY to define the rectangle ROI, than split it diagonal wise via vector2point, assign two different colors and track these colors separately in second pass

appearing problems:
1. for the moment I cant get min&max XY values out of your tracker. is the a way to get it from your module?
2. manual set of initial state which diagonal i should start to track
3. flipping values issue as soon as diagonal gets 0 or 90 degree
calculating-angles-and-rotations
cheers, dimi
p.s. it woks very well by manual setting of color split

very nice DiMiX, thanks a lot !

@unc
re: LightColor in Emboss
even colorizing texture in pre-passes and turning Colored ON - doesnt look as good as we could achieve having control for LightColor.
and on occasion could you check pls: ColorRamp killing my alpha in all modes ( i am using dynamic tuxture as control texture)
thanx&cheers, dimi

link | Flag this reply as a solution. unc (kollaborateur) 23/08/2011 - 00:23

With bumping/emboss I'm looking for more advanced solution (light dir/pos, ambient/diffuse/specular colors, etc) - it will be implemented some day.
But here is a quickie - you could try using Levels - it is very handy for coloring:
change 'Input White' to something pinky-ish

(add 0.5 to your color's hue, to get same tone)

btw ColorRamp fixed too

link | Flag this reply as a solution. unc (kollaborateur) 23/08/2011 - 05:25

Was working on some kinda motiondetector, and accidentally made this filter:

Hi unc,
I also was thinking to ask you for ambient/diffuse/specular colors and ability to choose matte for fx: alpha or luma, but thought that shader would look pin-overload after that.
I've used Levels in post for coloring, of course its good way around. but by closer look you can see
1. changing input white - specular stays the same (light- grey)
2. changing output white - a bit better, but contrast and luma going down

ColorRamp is great now. thanx a lot
Metallica is very interesting, input spreads makes a magic.
some day i post my pinkfloyd :)

@unc,
sorry, again some Garbage stuff:
1. by default blend mode i have strange alpha, of course there is always way around by setting alpha in post with lightness channel, but it would be good to get it in the same pass.
2. i want to soften garbage's fading out. how can i patch blur that it will be applied just for the trails, without touching real-time texture?
cheers

link | Flag this reply as a solution. unc (kollaborateur) 25/08/2011 - 17:07

You could build your own feedback chains with texturefx's- here is a FrameDelay module (Queue isnt helping, dunno why). And it works in 25.1 only, not 26

link | Flag this reply as a solution. sapo (translator) 25/08/2011 - 19:04

i think it's not vvorkin due to the queue(texture) bug in beta26, also some other FX modules like motionblur that are using queue aren''t vvorking in beta26

Lets hope this gets fixed soon. Delays are essential for feedback chains.

Oh the queue-manity! (scnr)

unc, its realy great ;-)

a little thing the hSBC doesnt work with this B&W bmp. i was thinking itmay take the hue ?

thanks for the suggestions guys,
i am with b23, so i think additional queue loop is the right direction.
inserting FX module inside loop gives some lovely glance:

but i have problem to find correct alpha setting:

queuing on rgba Splited output or lumakey ?

@karistouf: splitted RGBA out- what does it change?
here is - Blur inside with alpha view

well sorry about rgba; its because i m using it with camera and thresholds...

hum, if i follow you its to have better control on effect such this one ?

link | Flag this reply as a solution. unc (kollaborateur) 27/08/2011 - 22:31

Fullscreen quad - isnt there something like this already?

PS: @DiMiX: what is the problem exactly?

sorry unc to interfer in a discussion , but what is exactly the topic ?
(not understanding the fullscreenquad patch what for and would be to understand more about it)

link | Flag this reply as a solution. unc (kollaborateur) 27/08/2011 - 22:58

why always having to add Quad+Blend+UniformScale to display a texture on full screen? isnt it better to have one single patch for it?

hi guys,
topic is: using FX module in feedback loop queue.
intend: add effect to the trails/motion blur only.
problem: thus building the loop we inevitably get group of layers and consequently need to arrange blend mode of these layers. for the moment i cant get correct alpha out of these group
possible solution: 1. use garbage to produce motion blur, 2. add desired FXs after garbage, 3. make group with original texture on top

link | Flag this reply as a solution. unc (kollaborateur) 28/08/2011 - 03:28

Hmm, if I get it right, what you need is to multiply alpha channel of the 'trails' by some value less than 1: try SetAlpha to the 'trails', using 'flat grey texture' (1x1 dynamictexture/value = 0.7,0.7,0.7)

@unc
if you mean "trails" in feedback loop, i gave up trying this way: garbage is more flexible for MotionBlur.
the only problem for me is strange alpha of garbage, especially with post FXs chain

link | Flag this reply as a solution. colorsound (translator) 18/10/2011 - 12:59

hi guys , congrats and thanks for this great work and thread , i made this patch today for testing the big amount great effects , i upload it in case is usefull for anyone , cheers

color sound ! contribs !!!! ;-) thxs

link | Flag this reply as a solution. colorsound (translator) 20/10/2011 - 11:43

ok , i,ll upload to contributions in a few weeks , i,ll try to add the diferent kinds so it does not disconnect . cheers

anonymous user login

Shoutbox

~16h ago

Serious_Hare: @tonfilm interresting one, def going to try that one. PS: mine runs on android to :)

~18h ago

Curveau: @tonfilm: Great :)

~19h ago

io: arr Windows 8 i using vvvv grey as non active icon background ...

~21h ago

~23h ago

vux: @mrboni : ping me on skype

~23h ago

mrboni: does the BM Intensity Pro work with dx11 video in?

~1d ago

joreg: patches from the #res14 manipulating faces #vvvv workshop with @woeishi are up now: manipulating-faces

~1d ago

lecloneur: vvvv tutorial for Chinese beginner :http://www.tudou.com/home/mimangqin/item