YOUR ACCOUNT

Login or Register to post new topics or replies
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
I've been trying to achieve something like this without much luck. Its essential that the spacing is uniform and follows the shape. Any ideas? smile:?:

  Details E-Mail
Totte
Übernerd

Posts: 1460
Filters: 107
Didn't Corvus do something like this in his junkyard a while back??
- I never expected the Spanish inquisition
  Details E-Mail
angelboiii
maya dude
Posts: 107
Filters: 20
i think (i might be wrong) that Corvus had dots in a grid, not even spacing along the outline..
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Just looked through the whole thing (impressive stuff in there!) but only the recent pages look related and then again its not the same. I'm getting close with the bomber - the main problem using the bomber is that it might drop an extra particle where it shouldn't (or skip one)

Edit: this image shows the problem

  Details E-Mail
CorvusCroax
CorvusCroax

Posts: 1227
Filters: 18
Hey guys:

Yeah, my stuff was all in a grid, because I was placing it using the bomber.

You could create 2 bombers layers: 1 on the grid, and 1 shifted 1/2 of a grid spacing. Then you could somehow filter between them to find the best fit between them, and place based on that. That would at least fill the gaps, and create a smoother edge. (I *think* you could use the grid pattern with a 1/2 cell bevel, plus a threshold) But still, it wouldn't be as smooth as the thing you have in the first post.

Here's a (slightly crazy) idea: Using the new derivative command, you can calculate the slope, which can give you the correct rotation. (like a normal map) But it wouldn't tell you how to place the dashes evenly.

I think this is a hard problem, though, no matter what. smile:?: Maybe there is some clever math way to do it using the new math components.
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
Here's a (slightly crazy) idea: Using the new derivative command, you can calculate the slope, which can give you the correct rotation. (like a normal map) But it wouldn't tell you how to place the dashes evenly.


True, I played with this idea even before we had the new math components. Theoretically one should be able to find the perpendicular slope and use that in further processing.

Here is an early test with the new derivative component. First the shape is expanded via distance transform, then I find the normals and map an angular gradient. This gives the orthogonal vector to the expansion. These two are then hooked up to the new Lookup along with my stippling shape.

The main problem is the changing frequencies and "warping" due to pre smoothening of the distance transform (necessary to reduce aliasing)

  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Getting closer to a correctly mapped orthogonal direction.. this image is pretty scarry: try starring at it close to the screen for a while smile:eek:

  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Still some problems to solve, but at least you can see the shape of the stipple particle now smile:D

  Details E-Mail
CorvusCroax
CorvusCroax

Posts: 1227
Filters: 18
Hey Sphinx:

Looking good! A couple thoughts:

1) You lost me at 'orthagonal vector'. smile:) Want to post one of your working filters and I (or others) could take a look and help out?

2) looking at your second image: you've got an x and a y version of this you're feeding into lookup right? I wonder if you couldn't use tone curves just on that to creat dashed lines. If all you want is dashes... i think you've just about got it.

3) high pass! High pass can help you filter out your high frequency noise areas from your low freq areas (that is, the tight spots vs the stretched spots.)

if you could distinguish those areas, then you could run the thing through a tone curve, and, say, double the gradient and then threshold between the 1x version and the 2x or 4x version.
  Details E-Mail
CorvusCroax
CorvusCroax

Posts: 1227
Filters: 18
Huh... tried to duplicate your ortho vector thing. Wound up with this instead:
Not really useful, but interesting looking.

  Details E-Mail
CorvusCroax
CorvusCroax

Posts: 1227
Filters: 18
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
CorvusCroax wrote:
1) You lost me at 'orthagonal vector'. Want to post one of your working filters and I (or others) could take a look and help out?

2) looking at your second image: you've got an x and a y version of this you're feeding into lookup right? I wonder if you couldn't use tone curves just on that to creat dashed lines. If all you want is dashes... i think you've just about got it.


I didn't loose you completely smile;) Yes, that second last image I posted is one out of two needed to map the stipple particle. The other is the distance transform (it could be a blurred version of the input too, but it is not very precise).

To map an image somewhere you could simply move it there and rotate and scale. Thats what I am doing with several "copies", I just only consider the coordinate space, not the actual image (i.e. what goes to the new Lookup's x and y inputs).

So with a path we have two mapping directions we need to construct, one that "point" outwards, perpendicular to the outline path (I use the distance transform here), and one direction in parallel with the outline path (the tough one I'm trying to perfect here). I might not be very clear in the use of terms here, sorry smile:-D When I speak of the orthogonal direction it is in relation to the distance transform (or outgoing direction), not the actual path direction. I'll refer to it as the parallel direction from now on.

Once you have these two x,y mapping inputs you can map any type of stipple particle, not just simple dot stippling. The reason I asked about simple stippling initially was to simplify the explanation of the problem.

Quote
CorvusCroax wrote:
3) high pass! High pass can help you filter out your high frequency noise areas from your low freq areas (that is, the tight spots vs the stretched spots.)


Been there already, but perhaps I should revisit that approach. The frequency curve op can change the frequency of repeating linear curves (via a repeat op first). I'm trying to figure out a way to calculate the given frequency at given a point in the parallel direction. The Derivative component is useful here, but the result I get is currently too damaged..

I'll get back with some more info and snippets later
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Alright, here is the boiled down version of parallel direction stuff. I'm trying to figure out how to get more a more even frequency of spans (i.e. equal length gradients).

Use a simple black and white shape like this one:


Basic Angular Expansion.ffxml
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Here is an attempt to figure out the frequency of a given area and then relative to that try to compensate.

The problem here is that the original span shifts do not align with the compensation frequency adjustments (causing new small spans or skipping).



Frequency Adjust.ffxml
  Details E-Mail
Mike Blackney

Posts: 375
Filters: 57
Best one I've been able to do so far. smile:|

  Details E-Mail
Mike Blackney

Posts: 375
Filters: 57
And the filter:

Ants 5.ffxml
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Ah cool, you use the marching ant method from selection rectangles. Maybe this can be postprocessed to construct spans
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
  Details E-Mail
Mike Blackney

Posts: 375
Filters: 57
Ooh definitely getting there.
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
very cool stuff. i have no idea what you're talking about, but very cool stuff smile:) smile:D
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
CorvusCroax
CorvusCroax

Posts: 1227
Filters: 18
Sphinx: this is some impressive work! Thanks for posting the snippets.

The core derivative -> lookup part is genius.
I noticed that the hues seem to be slightly compressed and uneven in some areas, and tried to fix it, but ran hard into my own ignorance. (eg: Plugged in a (regular) gradient and it just doesn't work at all.) Could you explain that bit? Is it important that the derivative angles are slightly off? Why not use a normals construction similar to Mikes 'RealNormal mapper'?

Quote
Sphinx. wrote:
Expanded ants. Looks a lot more uniform


Looking good!


  Details E-Mail
CorvusCroax
CorvusCroax

Posts: 1227
Filters: 18
Fixed the spacing problem. Also came up w/ much simpler way to get the dashes than tonemapping and messing with the hues: you can do it in 1 step w/ the gradient.

  Details E-Mail
CorvusCroax
CorvusCroax

Posts: 1227
Filters: 18
The reason why the lookup works is because the derivative values are like .00001233 and 20. (yaay unclamped workflow!) The free gradient up there goes off into infinity, and the Lookup is pulling values from well off the 'frame' of the gradient.

Fundamentally, though, the Ants method is probably better, since this method, although it is very interesting, is always going to divide curves into fixed radial divisions.

The cool thing, though, is that by tweaking the curve profile of the free gradient, you can create different dot patterns. (dash-dot-dash,etc)

Here's the file:

Basic Angular Expansion X01.ffxml
  Details E-Mail
CorvusCroax
CorvusCroax

Posts: 1227
Filters: 18
Oh, another thing: the free gradient doesn't care where it is, as long as it's centered on zero. So, a better setting for it is probably:

Start: 0,0
End: 0,1

That makes the start point straight up (ie Y axis positive). (Whereas in your original, the repeat starts off at a 45 angle... which is confusing.)

Here you can see a nice 3-way division of the curves starting from the top:

btw: I love how FAST this is: (yaay math components!)

  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
I can't believe this stuff didn't "get stoled" yet. No "Stipples & Stitches" filter on the library?!

*** hauls stolen bag-O-tech to secret hideout ***

smile;) smile:D
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Sharandra
Filter Forge Addict

Posts: 863
Filters: 26
Oh nice!! Yes, why aren´t their any filters yet??

Thx for digging that topic up. I´ve been trying to get proper outline stitches for ages in my ribbon maker and some other filters!

The Ants snippet is great! Exactly what I was after, and fast! Thx for sharing that! smile:ff:

I´m soo gonna steal that too! smile:D smile:D smile:D
  Details E-Mail

Join Our Community!

Filter Forge has a thriving, vibrant, knowledgeable user community. Feel free to join us and have fun!

33,711 Registered Users
+18 new in 30 days!

153,531 Posts
+36 new in 30 days!

15,347 Topics
+72 new in year!

Create an Account

Online Users Last minute:

16 unregistered users.