ThreeDee
![]() |
This thread can be used to suggest script-based filters that someone may want to try and create. No matter how wild and crazy...
How about cast shadows from a height map? |
|||||
Posted: June 20, 2010 12:17 pm | ||||||
ThreeDee
![]() |
I am still hoping to do a 3D rotatable cube with image mapping some day...
|
|||||
Posted: June 20, 2010 12:21 pm | ||||||
CorvusCroax
![]() |
Good idea threedee. Here's a few:
I think a Maze component would be cool. Branching and forking would be useful (rivers, veins, etc) Erosion of a height map Pipes - with connecting and branching. |
|||||
Posted: June 20, 2010 12:28 pm | ||||||
Deskar
![]() |
![]() Hulls for spaceships? The existent filters are not very reallistic. Cellular automats? Chaos? Real Voronoi patterns? Uhhhhh. To bit or not to bit |
|||||
Posted: June 20, 2010 1:36 pm | ||||||
ThreeDee
![]() |
Maze with one (and just one) solution would be interesting. Yes, branching and forking will be in the works shortly. Erosion seems bit more of a complicated matter. Any ideas on how to achieve it? Pipes shouldn't be all that difficult.
Cellular automats are (somewhat) possible even in V1. Oh, I see, you could do one where the slider could control the number of iterations. Chaos as in "Spiral Defect Chaos"? Real Voronoi patterns: Doesn't bubbles noise do that? Or do you mean one with better control on point placement? |
|||||
Posted: June 20, 2010 2:58 pm | ||||||
Kraellin
![]() |
i have no idea if this is possible with the new scripting, but how about something like sphinx built for making animations or even something that would automate that feature even more? that, being internal, would be really sweet!
If wishes were horses... there'd be a whole lot of horse crap to clean up!
Craig |
|||||
Posted: June 20, 2010 3:57 pm | ||||||
Sphinx.
![]() |
Mandelbulb raytracer, more raytraceable object types (it basically comes down to distance estimations and intersection functions), true variblur, solution for procedural rendering of IFS fractals, FFT/iFFT, Lightning "fractal", HDR tonemapping, distance transforms.. more to come
![]() |
|||||
Posted: June 21, 2010 12:46 am | ||||||
ThreeDee
![]() |
I haven't seen any other raytracing examples but the one Vladimir had somewhere. Raytracing is out of my league. I might manage to get up to raycasting.
Variblur would be good. Could use height (alpha or selection) information for the radius, like Photoshop does. IFS (iterated function system) fractals, very much YES. ?? What the heck do you use FFT/iFFT for? Distance transforms: I'd be happy to be able to do just the basic Free Distort / Perspective Distort that is built in in PS. |
|||||
Posted: June 21, 2010 11:33 am | ||||||
ThreeDee
![]() |
I've been thinking about this. What I'm considering is calculating and saving the coordinates, scale and rotation for each of the instances of the fractal particle at prepare(), then creating an additional table for every rendering thread rectangle at get_sample() (when it is run the first time) which holds just those items which appear within the bounds of that rectangle. Not very memory efficient, but at least it would help rendering speed to limit hit checking to only those items which occur within a given rectangle. |
|||||
Posted: June 21, 2010 11:50 am | ||||||
Sphinx.
![]() |
FFT/iFFT: Once you're in frequency domain, it is very easy to do low/high pass filtering amongst other interesting things. But it is a rather expensive transform, which in the first place requires a doable bitmap based solution
About the IFS stuff.. is definitely high on my list too, but its a damn complicated situation trying to combine a projective design with a procedural ![]() About the distance transform: its not a transformation in the normal sense, it will render the inner and/or outer distances of a selection or binary shape. I did work out a partial solution with the min and max components, but it is size dependant and very memory hungry. I guess it too requires a good bitmap solution Next thing when I'm done with the 3D mandelbrot raytracer (lua is fighting hard back at me ![]() |
|||||
Posted: June 21, 2010 2:09 pm | ||||||
Kraellin
![]() |
fft and ifft are also used in photo restoration. it's a good way to eliminate patterned noise and paper textures picked up by a high resolution scanner.
If wishes were horses... there'd be a whole lot of horse crap to clean up!
Craig |
|||||
Posted: June 21, 2010 5:28 pm | ||||||
Skybase
![]() |
You know, if you took ThreeDee's grid script and masked out areas based on a random table of 0s or 1s you can get a rudimentary maze that won't be solvable, but works. I also write a python script for a game. It was in essence... 1. Create a random value via choice (0 or 1 or 2 or 3) create another random value set with only 0 and 1. 2. Create a MOD grid system (block out every other ups and downs and make each middle section editable) 3. Create the solution: given the condition that they must be continuous lines, if random value is 0 then turn left random value is 1 turn right (up and down so on). Save this on a 2D array. Do this until it hits the edge. 4. if the step already exists: Backtrack. 5. the rest: if the table is not touched fill the rest in. if 0 don't fill. if 1 fill. Honestly the worst pseudocode I ever written but it works in my head. ![]() |
|||||
Posted: June 21, 2010 9:06 pm | ||||||
Skybase
![]() |
Quick and dirty way I can think of is a set or randomly generated lines (with branching) with a significant amount of noise distortion set on the image. In other words: 1. Look for a hotspot on the map. Hotspot = the brightest area of the map. 2. Create a bunch of BRANCHING lines all converging at that hotspot. 3. Apply perlin noise distortion to the lines. <--- Probably a grayscale noise map. 4. Use the lines as A) a distiortion map. B) combined with difference??? The point is, once there is branching, it will look like erosion. Otherwise you'll get into things like simulating fluids via navier-strokes. ------
You mean this? http://local.wasp.uwa.edu.au/~pbourke...neous/dft/ |
|||||
Posted: June 21, 2010 9:30 pm | ||||||
Vladimir Golovin
Administrator |
You should definitely check this out: http://www.filterforge.com/forum/read...&MID=85737
Cellular automata are difficult to do with sample-based approach. The best approach would be to use a bitmap, but FF doesn't support bitmap-based scripting yet. |
|||||
Posted: June 25, 2010 5:10 pm | ||||||
Deskar
![]() |
Vladimir, the blur component are a automata cellular?
May be a modified version open to user to rescript the core of blur and obtain other CAs? I don't sure about this. Please tell me if I wrong. ThreeDee, chaos as Chaos Attractors. ![]() In Burke´s page are many good shapes http://local.wasp.uwa.edu.au/~pbourke/fractals/ May be are too raster for FF, but may be a few not... Sorry my bad english, I eat a korean tv handbook. ![]() To bit or not to bit |
|||||
Posted: June 26, 2010 12:40 am | ||||||
Totte
![]() |
I'm working on a simple scripting component that I know I've been wanting several times, a switch for up to 16 inputs that is randomly controlled by the Global Variation, which input it will feed out. Will make a similar component for Curves as well. These will come handy when making filters where you want random controlled output or layers and to get rid of all "variation 1", "variation 2" sliders that are just random.
I would really like a script control that can be hooked to grey inputs, to generate true random sliders etc... - I never expected the Spanish inquisition |
|||||
Posted: June 27, 2010 10:26 am | ||||||
CorvusCroax
![]() |
Well, there are lots of algorithms out there for erosion. They all involve looking at a pixel, calculating it's height compared to its neighbors, and then distibutuing it's excess height equally amongst its neighbors. ![]() "The total volume outlet S of a cell is given by the equation: ![]() where h is the highest difference to the neighbors, 0<r<1 is the resistance coefficient and a is the surface area of the cell." This strikes me as fairly slow, though. There are probably more clever ways to do it. Hydraulic erosion is more complicated, because involves influx and outflux, but here's a newer technique which seems quite fast b/c it's optimized for modern GPU. (The Mei paper) http://citeseerx.ist.psu.edu/viewdoc/...1&type=pdf Here's the authors' webpage: http://www-evasion.imag.fr/Publications/2007/MDH07/ A couple other links: http://oddlabs.com/download/terrain_generation.pdf http://cgg-journal.com/2002-2/03/index.htm Here's an implementation of the oddlabs ones, including code: http://www.gamedev.net/community/foru..._id=397681 |
|||||
Posted: June 27, 2010 1:40 pm | ||||||
Digital Smith
![]() |
ThreeDee you asked for cast shadows so here they are...
Cast Shadows Filter |
|||||
Posted: August 5, 2010 1:19 pm | ||||||
CFandM
![]() |
Oh yea I completely forgot about rotating image cubes.. ![]() Guess I will have to learn the basics of scripting first... ![]() ![]() Just not a lot of time to spare at the moment.. ![]() ![]()
cool ![]() Stupid things happen to computers for stupid reasons at stupid times! |
|||||
Posted: August 5, 2010 8:56 pm | ||||||
ThreeDee
![]() |
Oh yes, nice. |
|||||
Posted: August 10, 2010 11:08 am | ||||||
CorvusCroax
![]() |
Hey: I have another idea for a script component:
Simple pseudo-random number generator, which returns a new number every time the filter is run. The idea is to plug this into variation, but every time the filter is run. A lot of times, I want to use a filter on a BUNCH of images (like 100+), using Pshop batching. But I need them to all not look exactly the same. All they need is different variation. Is that possible using scripting? Seems like is should be simple. |
|||||
Posted: August 10, 2010 11:09 am | ||||||
ThreeDee
![]() |
Hi Corvus,
Yes, it should. The Script random number generator works that way currently, it produces a different result every time unless tied to the global Variation setting. (I just hope it doesn't get fixed in the next upd ate ![]() And you gave me another idea that might be useful: A slider randomizer. That is, you could plug in a Script component that would randomize any slider within a given range (another input se ts the range). It would be similar to the built-in "Randomize" Variation functionality, but with full user control, not just the three preset levels of randomization. |
|||||
Posted: August 10, 2010 11:22 am | ||||||
Skybase
![]() |
Hmm... how about ....
Watershed image segmentation? http://en.wikipedia.org/wiki/Watershe...cessing%29 Probably a bit... hard ![]() |
|||||
Posted: August 10, 2010 11:30 am | ||||||
ThreeDee
![]() |
Uhm, there IS a slight problem, which is that a Map Script can only generate an image output that plugs into a green input and the Curve Script a curve output that plugs into a blue input. Variation is a grey input, so you cannot plug a Script component there...
|
|||||
Posted: August 10, 2010 11:32 am | ||||||
Totte
![]() |
Thats why I've wished for a "grey"script output, would make my life much much much simpler, when you have sliders that should affect different inputs and you cannot use the "tone curve trick" to adjust those. - I never expected the Spanish inquisition |
|||||
Posted: August 10, 2010 11:40 am | ||||||
ThreeDee
![]() |
Might run into memory issues... Unless we get a bitmap component that you can run Scripts on, meaning if we could run a script ONCE for the whole image, not for every single render thread, it could be done. Currently you'd have to calculate the image as many times as there render squares. This makes some Scripts (at least) 64 times slower than they need to be. This is really making some effects hard. It is painfully slow to do, for instance, an Internal Average Color script, for you have to calculate the whole image for every render square. No wonder it isn't in the Components. But blessed be the day a bitmap component appears there. |
|||||
Posted: August 10, 2010 11:47 am | ||||||
CorvusCroax
![]() |
Huh... actually 'Minimum Spanning Forest' makes some decent mazes. ![]() |
|||||
Posted: August 12, 2010 12:07 am | ||||||
CorvusCroax
![]() |
Hey here's another idea for a script:
Continuousness check / Flood Fill: Basically just Photoshop's magic wand tool or the fill bucket, but in a FF node form. You give it an X and a Y and a tolerance. It returns black or white. (is continuous with point, or is not continuous) |
|||||
Posted: August 12, 2010 12:10 am | ||||||
Skybase
![]() |
Hmm...
How about scripts that do simple recursions or a feedback loop? You feed an image, it repeats the image on top of each other based on blending mode, size or whatever attribute. I'm sure you can do that with the bomber, but I find it slow and tedious to tinker with. Might as well have a component that just does it. |
|||||
Posted: August 14, 2010 10:22 pm | ||||||
Sphinx.
![]() |
I did some experiments in that direction, and yes you can easily make something simpler and faster than the bomber. Actually what motivated me is that noise octaves ("layers") in the noise components are blended and I wanted some sort of opaque style combining (its way faster than blending as you can stop sampling when you hit an opaque sample)
its not very complicated making such scripts, basically you need a table holding size, offset etc whatever you need to be unique per sample recursion. Then you loop n times where you fetch a sample and blend/mix/do your thing. I'd be happy to help out if you need help constructing something like this. |
|||||
Posted: August 15, 2010 3:59 am | ||||||
SpaceRay
![]() |
Yes this would be good and interesting Also would be good and useful to have a erosion component and script
Yes, I have requested a similar thing like this also in another thread Is it possible to have 3D boxes AND be able to ROTATE THEM in full? |
|||||
Posted: July 16, 2012 8:35 pm | ||||||
SpaceRay
![]() |
interesting ideas shows above that could be done
|
|||||
Posted: February 25, 2013 9:16 pm | ||||||
SpaceRay
![]() |
Any others cool, interesting and surprising ideas?
This is only reserves to all of you that know how to make scripts Good old times when there was much more activity in the forum by many forum users that many of them are missing now |
|||||
Posted: November 1, 2013 2:37 am | ||||||
ThreeDee
![]() |
Frequency-modulated random tessalation. That is, tessalation patterns which are more dense at darker areas of source image.
|
|||||
Posted: November 1, 2013 6:14 pm | ||||||
SpaceRay
![]() |
YES, this would something good and interesting, uberzev tried something like this with cubes but not for tesselation patterns |
|||||
Posted: February 7, 2014 4:01 am | ||||||
Crapadilla
![]() |
||||||
Posted: March 1, 2015 4:39 am |
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,533 Posts
+38 new in 30 days!
15,348 Topics
+73 new in year!
22 unregistered users.