Messages 46 - 90 of 121
First | Prev. | 1 2 3 | Next | Last |
Vladimir Golovin
Administrator |
Which ones exactly? |
|||||||||
Posted: October 30, 2015 7:40 am | ||||||||||
Sphinx.
![]() |
Well, I'm not sure it makes sense really now that I think of it, but I was thinking about scale, distribution etc per octave, and not per layer |
|||||||||
Posted: October 30, 2015 7:57 am | ||||||||||
SpaceRay
![]() |
this Bomber+ will not appear in any beta version, and will only be available in the final version of FF 5.0 sometime next year?
If this is complex as it seems, and can have multiple combinations of components, I think it would be better to test it first and see if there could be some bugs so when releasing the final version is good and well done.
Thanks for the answer and details, it looks very interesting and useful, specially that you can use ANY number of source particles instead of 5, I really wanted to have that as you can build more things with more source images. |
|||||||||
Posted: October 30, 2015 8:03 am | ||||||||||
Vladimir Golovin
Administrator |
No, the new bomber won't make it into the beta. It will be released with the final release of 5.0 later this year.
I was thinking that as well, but it's still vague. I don't yet have a precise use case in mind. So, let's apply the Sacred YAGNI of Occam: if we can't come up with a use case, let's avoid adding additional complexity to an already complicated system. |
|||||||||
Posted: October 30, 2015 8:29 am | ||||||||||
Vladimir Golovin
Administrator |
(In other news, for Bomber+ we increased the maximum Density from 5 to 20).
|
|||||||||
Posted: October 30, 2015 9:41 am | ||||||||||
Skybase
![]() |
BOMBER PARTEY lol SpaceRay:
I would totally make a 100 source bomber. At this rate, it's possible. (Kinda joking here, don't take me serious. Although... My gut kinda says is it possible given the current at we can nest switches? Guess my question is what are the technical limitations.) |
|||||||||
Posted: October 30, 2015 10:28 am | ||||||||||
SpaceRay
![]() |
i wonder that if the new bomber+ is going to have lots of possible source images, the PROBLEM I See is HOW TO LOAD these images into bomber+?
You have to load 25 images, one by one in each setting slot? So you have to open 25 times the image selection? This would be awkward, boring and time consuming, at least for me And as Skybase said, if you would want to have 100 images, you would die before filling the 100 images slots by hand I can think that there could be a way for the filter to be able to SEL ECT A FOLDER and load all the images that are inside into each image slot of bomber+ so you would not have to load them yourself by hand. They would be loaded in the order that they are found in the folder, so first image goes on the first slot, second image, second slot filled, and so on. I do not know how difficult it could be to do this, but be able to pick files fr om a folder I think it can't be too difficult to include |
|||||||||
Posted: October 30, 2015 11:04 am | ||||||||||
Skybase
![]() |
Density / repeat values?? ? maybe? [edit] I mean... well... I just had a second thought: doesn't sound that useful. |
|||||||||
Posted: October 30, 2015 11:06 am | ||||||||||
Indigo Ray
![]() |
Since there's no more "Tint", does that mean the Bomber+ is HDR-out (no separate HDR mode)? (Your example images don't show the yellow lines for HDR inputs/outputs, I'm assuming the developers just haven't gotten to that part of the UI yet
![]() About the slave components: The loop slave components are visually useful since you can preview their output with the "Iteration (preview)" slider. But bomber slave components don't show any useful information because the bomber displays all of the particles at once. You don't need a "particle preview". It's just that seeing FF render a black square for each slave component can only confuse the user. For example, the rotation slave could look like this (notice the change in the downstream tone curve as well). Now we can clearly see how particle color = f(rotation). ![]() |
|||||||||
Posted: October 30, 2015 3:41 pm | ||||||||||
Vladimir Golovin
Administrator |
Bomber+ uses the same HDR / LDR swith as the old bomber.
The preview branch for these slave components isn't implemented yet.
The preview of slave components isn't just an arbitrary icon, it's a real example of what the slave would output. This is critical because it's used for previewing / debugging the subtree between the slave and the slave-accepting input of the master component. In case of Rotation, Scale, Center X / Y the output is a flat color (i.e. just a single value). As for the user confusion, I agree, and not just in this case, but for all slaves in general. Slaves are just not as easy to visualize, explain and understand as regular components. On the other hand, they allow users to do things that are simply impossible with regular components. |
|||||||||
Posted: October 30, 2015 3:55 pm | ||||||||||
Crapadilla
![]() |
What about Total Element Count? I assume ElementID outputs "HDR" integers, so its output would be hard to normalize without knowing the element total. On second thought, maybe the slave's Output Mode already does that? --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: November 1, 2015 3:00 am | ||||||||||
Crapadilla
![]() |
That would certainly help with working around certain particle pivot issues (see link posted above). ![]() I assume you consider that issue too niche a use case to warrant the inclusion of Particle Pivot X/Y controls in the Bomber? --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: November 1, 2015 3:06 am | ||||||||||
Crapadilla
![]() |
We'd probably need a specialized Color Control component to automate that: It would read fr om a numbered/frame-padded image sequence (as opposed to a single image like Color Control does) and choose its output according to the ElementID signal attached to its Selector input. That way, you only need to point FF to a path and filename once and be done with it. ![]() Also, such a component could open up FF for all sorts of artistic possibilities wh ere you're "condensing" a multitude of input images (or an animation) into a single output image. --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: November 1, 2015 3:47 am | ||||||||||
Vladimir Golovin
Administrator |
Total element count of what? Of the entire bomber? I'm afraid that's infinity ![]() Bomber, like any sample-based component, is essentially a function that returns color for any coordinates, be they within 0...1 range, or somewhere near the Alpha Centauri (though at such large values the floating point precision will start messing the numbers up), and the fact that it produces visibly distinct elements (i.e. particles) doesn't mean that their number is finite. |
|||||||||
Posted: November 1, 2015 9:19 am | ||||||||||
Vladimir Golovin
Administrator |
(Actually, I have an idea for another slave component for Bomber+, with an interesting use case, but I need to validate it first.)
|
|||||||||
Posted: November 1, 2015 9:23 am | ||||||||||
Crapadilla
![]() |
Ah, of course. Infinity. You're right. Although, for most images, it probably won't be infinite, but we have no way of knowing that prior to actually rendering the image.
Suggestion scrapped! ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: November 1, 2015 2:25 pm | ||||||||||
Indigo Ray
![]() |
After thinking some more, I see what you mean. In retrospect, my mock-up is much more confusing, especially when multiple slave components are involved. ![]() |
|||||||||
Posted: November 1, 2015 5:51 pm | ||||||||||
Crapadilla
![]() |
Ok, the super-random neural meandering continues... ![]() ![]() What about... vectors? For example: The vector that results from the transformation of a particle away from its initial position on the grid (via Offset V/H and Offset Chaos). Sort of like a motion/velocity vector. Maybe output the angle and length of that vector? Useful? Along the same lines: What about particle spin, i.e. the difference between a particle's "resting" rotation and "current" rotation value. Useful? Hooking those two values up to blur components in a particle's subtree for some motion blur effects? Viable? ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: November 2, 2015 4:05 am | ||||||||||
xirja
![]() |
![]()
Control! ![]() _____________________________________________________
http://web.archive.org/web/2021062908...rjadesign/ _____________________________________________________ |
|||||||||
Posted: November 2, 2015 9:43 am | ||||||||||
Vladimir Golovin
Administrator |
It's technically possible to export the Grid Center X / Y via slaves, and, given that you already have the actual particle Center X / Y, you can calculate the vector yourself. But:
I'm not sure I see a use case for this. On one hand, you guys will find a use case for anything. On the other hand, we're introducing a new system (slaves) into mainstream filter creation, so I'd prefer to keep it simple and clean to improve learnability - at least for now. |
|||||||||
Posted: November 3, 2015 2:52 am | ||||||||||
Vladimir Golovin
Administrator |
Isn't this precisely what the Rotation slave outputs?
Unfortunately, not viable due to the implementation of slave components: bitmap-based components kill metadata needed by slave components, so you can't use them in the subtrees between slaves and slave-accepting inputs. |
|||||||||
Posted: November 3, 2015 2:57 am | ||||||||||
Vladimir Golovin
Administrator |
It is a bit too niche, but that's not the main obstacle. The first obstacle is the complexity of particle-distributing code of the bomber. It uses a lot of optimizations, so introducing new logic into it should be done very carefully. Plus, it may disable some of these optimizations, thus making the bomber slower, even in the general case. And the second obstacle is conceptual: Pivot X/Y data belong to the particle, not to the bomber. I mean, there should be a way to specify these data per particle, and I currently see no way of doing that in a manner that is easy to understand for users. |
|||||||||
Posted: November 3, 2015 3:07 am | ||||||||||
Skybase
![]() |
Uhm... sudden thought. Can you nest a bomber in a bomber? That kinda sounds like ridiculous but it sounds like a potential issue.
|
|||||||||
Posted: November 3, 2015 4:10 am | ||||||||||
Crapadilla
![]() |
This is a bit off-topic, but are you planning to introduce slaves for other "well-established" components too? --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: November 3, 2015 5:25 am | ||||||||||
Vladimir Golovin
Administrator |
Skybase, they should nest perfectly fine. Bomber slaves use the same underlying infrastructure as Loop slaves, and Loops can be nested, see the Nested Loops section: https://www.filterforge.com/features/v...sions.html
And since bomber is not recursive, I don't think there will be any limitations to nesting - though I'll need to check that. (Note to myself: include an example of nested bombers into the release article and help). |
|||||||||
Posted: November 3, 2015 5:25 am | ||||||||||
Vladimir Golovin
Administrator |
Yes. Eventually we'll introduce slaves wherever they make sense. Another direction for improvement is making other components slave-friendly. For example, adding a mappable Phase input to Perlin Noise will get us a mappable equivalent of Variation, which you'll be able to connect slaves to. The obstacle to such wider introduction of slaves is that the GUI is currently lagging behind. We need a general way to tell users which inputs of the master component accept which slaves in their subtrees, that bitmap-based components won't work in slave-to-master connections, that connecting slaves to inputs that don't accept them doesn't make sense, etc. With Loops, we hard-coded all these warnings, but now we need to generalize them. |
|||||||||
Posted: November 3, 2015 5:57 am | ||||||||||
ThreeDee
![]() |
Speaking of usage cases:
Does this mean that the slave components outputs will be generalized, i.e. you'll be able to plug a (compatible) Bomber+ slave component into a Loop input? And would it make any sense to do so, meaning would the slave component of a Bomber+ be able to send a different output to a Loop input for each loop, or would it just use the first (or last) Bomber+ slave output value? |
|||||||||
Posted: November 4, 2015 8:53 am | ||||||||||
Crapadilla
![]() |
Looping a Bomber, then feeding the result into a Bomber+ whose slaves parametrically modify the Loop...
![]() Endless possibilities! ![]() ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: November 4, 2015 12:09 pm | ||||||||||
CFandM
![]() |
Head...Spinning...Looping. ![]() Stupid things happen to computers for stupid reasons at stupid times! |
|||||||||
Posted: November 4, 2015 12:50 pm | ||||||||||
Crapadilla
![]() |
It looks like the Bomber+ slave's output changes per particle ID called, while a Loop slave's output changes per Loop iteration. It should be possible to hook up a Bomber+ slave into a Loop, but I'm guessing that - for a given particle ID - the slave's output will remain constant during all iterations of the Loop. In essence, it looks like the Bomber+ will only be able to modify the Loop once per particle ID call, but probably not per iteration (since iteration is internal to the Loop). --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: November 6, 2015 3:27 am | ||||||||||
SpaceRay
![]() |
I wrote below in the quote that the new bomber+ will not be limited to the 5 source images, so then I think I could use now the WHOLE excellent ThreeDee Alphabet awesome letters or this other lovely and well done ThreeDee alphabet to feed the bomber+, so then I could include all the 26 letters at once.
Would I then have to put a slave for each source letter? or how it would work? So, if thi sis possible I could update my Alphabet creator filters ![]()
Infinite Creativity explosion ![]() ![]()
Thanks very much for your answer, I think that would be really good to have a new color control that could read automatically from a feed source, and that you could load them without having to do it manually one by one. If I had to load 40 images one by one manually in each color control, it would be awkward, boring and bad. Let´s hope that Vladimir can think something about this.
Sorry to ask this maybe silly question, but if bomber with Density 5 is already much crowded and have lots of particles, what would be at value 20? ![]() ![]() |
|||||||||
Posted: November 8, 2015 10:54 am | ||||||||||
Ramlyn
![]() |
When you use rather wide and balanced particles, such as squares and circles, Density 5 generally fills the screen. But if you squash these particles or anyway you use small/thin particles, then you may find that even with Density 5 you may get empty spaces.
It may also be possible that, as you said, the Density value will not be simply increased to 20. Maybe we will have also a better balanced control. Example : the maximum value increased to 10, but added other 10 middle values. Using the present sistem, it could look like 0.5, 1, 1.5, ....... 9, 9.5, 10. Now we only have 1,2,3,4,5. |
|||||||||
Posted: November 8, 2015 12:24 pm | ||||||||||
Skybase
![]() |
Based on what I can tell from the screen caps we have so far you basically would be nesting a couple of those new switch components with a random slave from the Bomber+. -- Am I even right on that? Kinda making assumptions from those images that were posted. |
|||||||||
Posted: November 8, 2015 5:53 pm | ||||||||||
Vladimir Golovin
Administrator |
No. The increase is just a simple plain straightforward increase. And yes, large values of Density crowd the screen utterly and completely ![]() |
|||||||||
Posted: November 9, 2015 2:50 am | ||||||||||
Vladimir Golovin
Administrator |
If the task is to make 26 different kinds of particles within a single Bomber, each of which is formed by a separate subtree, then yes, you first implement a 26-input switcher using any approach (for example via a hierarchy of Map Switches) then you plug a Bomber+ slave into its Selector input. |
|||||||||
Posted: November 9, 2015 2:56 am | ||||||||||
Vladimir Golovin
Administrator |
This is a much deeper and much more interesting problem than it seems on the first sight. What you want is not a specialized Color Control. You want fully general lists, the way they are done in functional programming. That is, you would have a Color Control that outputs a list of colors / images. But, as soon as you have lists, you'll want the usual machinery that is needed to handle them: sorting, splitting and merging, accessing elements, and the Holy Trinity of Map, Filter and Fold. And then you'll want lists of lists, lists of pairs of lists and integers, trees of lists of pairs of lists and floats, et cetera et cetera ad infinitum. Which leads us to what I'm currently working on in research and development mode. But that is another story. |
|||||||||
Posted: November 9, 2015 3:05 am | ||||||||||
Vladimir Golovin
Administrator |
Exactly. A slave component outputs different values depending on some aspect of its master component. A Loop slave output depends on the loop iteration, a Bomber+ slave output depends on the particle ID, a Result slave depends on the pixel coordinates, a Perlin Noise slave depends on the octave, a Bricks slave depends on the brick ID, etc etc.
What you said above is correct: in the attached example the color of each sun thingy (provided by Bomber's Randomizer) stays the same for each Loop iteration: ![]() |
|||||||||
Posted: November 9, 2015 3:37 am | ||||||||||
Vladimir Golovin
Administrator |
||||||||||
Posted: November 9, 2015 3:43 am | ||||||||||
Vladimir Golovin
Administrator |
Learnability of slave complnents and their relationship with their master is an important thing. Slaves are just too powerful to be relegated to the domain of Filter Forge academics dwelling in their ivory towers. We need to find a way to explain them to users, preferably via some user interface aids, rather than via help pages. Any ideas on how to explain them better?
One of the things that needs explaining is the fact that slave components should be connected to the subtree of the relevant slave-accepting input. For Loops, this wasn't a problem because a Loop has only one input and you simply had no choice but to plug the slaves into the right subtree. But with Bomber+ (and hopefully other masters we'll release with FF5.0) the situation is different: for example in Bomber the only slave-accepting input is Particle, but there is a lot of other inputs. How do we explain to the user that the slaves should (must?) be connected to the subtree of Particle? |
|||||||||
Posted: November 9, 2015 3:59 am | ||||||||||
Crapadilla
![]() |
Re: Loading image file lists via Color control
Well, with the "dumb" approach I imagine, I guess we won't need any generalized sorting machinery. In order for the image list loading to work, the user would be required to adhere to a certain file name formatting, like so: [filename].[framepadding].[extension] So the image list would be something like: my_particles.0001.jpg my_particles.0002.jpg my_particles.0003.jpg ... my_particles.0100.jpg The sorting is already inherent to this image file list, because it is done up front by the user. Now all the Color Control component needs is an additional control that tells it which of these numbered images to load for a given iteration/particleID. If an image does not exist for a certain number, the Color Control would just output a "!" error image. --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: November 9, 2015 4:04 am | ||||||||||
Vladimir Golovin
Administrator |
Dilla, the problem is not related to loading of multiple images, that is an UI / UX problem. The actual problem lies in feeding the loaded images into other FF components. I would not like to limit this thing to just Bomber+, I want it to be fully general.
|
|||||||||
Posted: November 9, 2015 4:14 am | ||||||||||
SpaceRay
![]() |
As I understand it from your answer Vladimir, you are telling a way to input ONE LETTER sel ected fr om the 26 available? Why would I need to use a input switcher? I mean to use all the 26 letters at the same time, all 26 feeding the bomber at once, and the result have all the 26 letters, instead of the usual 5 as it happens with the previous bomber |
|||||||||
Posted: November 9, 2015 4:21 am | ||||||||||
Skybase
![]() |
So basically for each time a particle is called, a letter is sel ected at random fr om a bank of images. [am I right?] Imagine asking the guy next to you for the next picture to load at random. You're the bomber, he's the selector. You're saying "hey, I want the next image, here's a random number." and the guy says "yeah, here's the image corresponding to that number" and you pick that up and you ask again for however many times necessary. |
|||||||||
Posted: November 9, 2015 4:23 am | ||||||||||
Crapadilla
![]() |
So you're envisioning a more generic system were all FF components would be capable of accepting lists of colors/images? For example, in that system, 3-Color Gradient and 5-Color Gradient would be replaced by a generic N-Color Gradient that would adapt to whatever the incoming list of colors/images would be? Or do you mean that the proposed image sequence loading Color Control would ONLY work within the scope of "slavified" components (currently Loop, Result and Bomber+), but not outside of it? [As in: What would the Color Control's output be if I connected it to a component outside of the Loop / Bomber+ structure?] --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||||||
Posted: November 9, 2015 5:05 am | ||||||||||
Vladimir Golovin
Administrator |
Yes. Ideally, I want a fully general system where the generality level is more comparable to that of full-blown functional programming languages than to simple dataflow languages such as Filter Forge and other similar node-based tools.
In my ideal system, you could connect a List of Colors only to inputs that accept List of Colors. You couldn't connect it to a plain simple Color - to do that, you'd need to extract one element from the List of Colors first, using any extracting method you want (access by specific element number, the last one, the first one, the biggest one, the third from the left etc). That is, you'll need a component that takes List of Colors and outputs a single Color. |
|||||||||
Posted: November 9, 2015 5:28 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
+31 new in 30 days!
15,348 Topics
+73 new in year!
345 unregistered users.