Vladimir Golovin
Administrator |
As a historical accident, the current Filter Forge is built around the notion of filter. After all, it was conceived in early 2000s, the heyday of Photoshop filters, after the success of Kai’s Power Tools. It was easier to ‘sell’ the concept of Filter Forge to the public: one filter to rule them all.
However, for me, and probably for many of you, the real purpose of Filter Forge is to build not just universal filters, but specific bitmaps and sets of bitmaps, with resolution and other parameters known in advance. So let’s explore a Filter Forge specific notion for a project: it’s a task that involves resources (bitmaps for inputs), filters, chains (or even trees?) of filters, and export bitmaps, of different resolutions and settings. In this concept, a filter is just a part of the project, along with all these resources. A project may include one or more filters, which may be universal / reusable or they may be intended to be used only within this project. (a filter that works as intended only on some resolutions or background images doesn't make much sense as a filter per se, but it may make perfect sense as a part of a project). I was particularly impressed by the implementation this concept in Sketch, a trending vector design app, basically an Adobe Illustrator made for 2016, not for 1996. It offers Artboards (basically vector sub-documents-in-a-document) and Pages to organize them. I recently commissioned UI design for a mobile app for a hobby business of mine, and the designer managed to pack the entire design -- about a dozen screens, each with a dozen states and variants, plus multiple separate UI elements -- into a single Sketch file. The second obvious implementation of the concept of a project is Microsoft Visual Studio and similar IDEs: source files, resources, build config etc. So, I’d like to ask you: 1. Do you feel that this notion of a project is relevant to your workflow? 2. Would you like to see it implemented in Filter Forge? 3. Would you be willing to sacrifice some convenience of the traditional FF workflow for this? 4. What are project items? Filters, embedded images etc.? 5. What's your typical project? An image with particular dimensions and contents? A filter? A set of textures? In general, what are your thoughts on this? Edit: I reflected on this for a while and now I think that this is a central question, the single most important question that can be raised about an app. What does an app do? What the app enables you to do? What’s its output? How does the app facilitate this output? These questions are at the core of the identity of Filter Forge, or, more likely, its successor. I now think that the notion of a project is one of the pillars of the future Filter Forge sequel (the other two being Turing-completeness and GPU support). And there’s another question: considering the concept of projects, how does Filter Forge, as a tool, fit into art pipelines? How does it accept stuff at its input and produces stuff at its output? Note to self: see UNIX philosophy. Also: Project = directory of files? Also, in light of all this, what is the new central concept of Future Filter Forge? For example, Filter Forge has filters and a filter library, but what would its successor have in place of it? Projects and project library? |
|||||
Posted: October 28, 2016 9:42 am | ||||||
Crapadilla
![]() |
From the PoV of a DCC pipeline for 3d assets, FF is just one very specialized application among many. Even when looking just at the texturing aspect of a digital asset, FF only covers SOME of the tasks required in that area. For example: FF does not provide either painting or vector capabilities. As such, FF can be a powerful tool within the texturing toolbox, but it certainly isn't the application capable of creating ALL of a project's texture elements, or even the place to put them all together. That place is reserved for applications like Mari or Substance Painter, etc. Would it make sense to introduce the notion of a project to FF? Maybe. That "project" would probably always be a very small subset of a bigger project outside the scope of FF though. My take on this: User folders are probably enough for any pressing project organization needs within FF. There is no question that this organizational aspect could be better, but personally, I feel that it is good enough. I'd rather FF stuck to its original identity and expanded upon its strengths - procedural image generation - rather than venture beyond that scope. [ On a sidenote: This is also why green-ification and slave-ification have me super-excited, but dragable presets leave me rather cold. They are icing on the cake, but really, it's the cake that I want even more delicious! ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: October 28, 2016 1:55 pm | ||||||
Crapadilla
![]() |
This makes me wish FF was a plugin for Nuke, because that's exactly how I'd envision a "project" workflow for it... node-based, fully animateable, with the FF part being "render" nodes in the graph that call specific filters/presets. In this vision, an FF project would simply be a Nuke script. ![]() Essentially, I envision the FF project workflow as an FF renderer "encapsulated" within a compositing-app like environment. Read nodes would be your resources, write nodes your outputs. You could chain filters (i.e. FF renderer nodes) in any arbitrary way, and reproduce the "procedure" thus defined for multiple time-varying media inputs. Of course, this would mean that the workspace "surrounding" the FF renderer nodes will require basic compositing functionality, masking, color corrections, etc. Luckily, FF already has many of these... inside the Filter Editor. If we take this one step further and imagine a Project Editor that is functionally/visually identical (mostly) to the Filter Editor, a Filter would just be a seamlessly explorable Group component in that Project Editor workspace. One could imagine that most components would still be available in that new top-level workspace, but interactivity would suffer if too many complex filters were chained together. There would certainly have to be some way of "caching" intermediate filter results for this to be viable. Also, we would need a new breed of Resource (i.e. read & write) components that actually "remember" their file sources and destinations. Furthermore, one could imagine that this top-level workspace provided animation functionality (i.e. a timeline) and batch render capability. However, FF does not provide many standard compositing app functions like painting, spline-based masking, etc, so it would be a looooooong way to make that Project Editor feature-complete. IMHO, FF would be better served if it opened itself up for integration into standard compositing applications. --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: October 28, 2016 3:13 pm | ||||||
Skybase
![]() |
That sounds pretty cool, but I usually think of FilterForge as more like a "go-to toolbox" more than project-focused sets of stuff. However, in the past when I was working on large scale projects, I did use FilterForge to process texture assets so it resulted in some kind of batch-processing a bunch of UV-ed 3D textures. In particular, if anything, many of my projects ask to process tons of images or texture files using some kind of workflow oriented filter. For example, in the project I was involved in, we wanted all the textures to resemble something van gogh would paint so I developed a filter that outputs that style. In the end, I just wished that it can process a bunch of images at once in some form or fashion.
![]() Image above is something that was made by aba a while back with his (her?) batch renderer program. It has the sort of GUI I was imagining. I think this is what Crapadilla's trying to describe but more nuke-like? I'm honestly a bit unsure about the concept overall since the whole scope of a "project" is very focused to specific user groups. Yet FilterForge seems more of a generalized tool that fits almost any workflow at this point. |
|||||
Posted: October 30, 2016 1:20 am | ||||||
Crapadilla
![]() |
Yes. Essentially, a "project" in FF could be such a node graph, defining successive filter operations on one or several input images. An FF "project" would enable users to... 1. make any complex sequence of filter operations repeatable, so that it can modified later or be re-used on different images or sequences of images. 2. composite and post-process the results of different filters. 3. provide a node-graph-based 'record' of creative filter explorations (like a macro-recorder, but in node-graph form). 4. batch process images or sequences of images. 5. animate filter parameters over time to create animations. In conclusion, the introduction of a "projects" system to FF could bring with it the realization of several long-standing feature requests, so it is certainly interesting to discuss this notion. --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: October 30, 2016 10:18 pm | ||||||
Vladimir Golovin
Administrator |
Dilla, could you please enumerate these requests, without going into much detail? |
|||||
Posted: November 1, 2016 9:58 am | ||||||
Crapadilla
![]() |
Well, provided that "project" system came in the form of a new 'top-level' node-graph layer that is sitting 'above' the current Filter Editor's top layer (as described above with my Nuke plugin idea), then that system could mimic/duplicate functionality seen in compositing systems.
This system could make possible the following feature requests: - Using the result of a filter as the input to another filter. - Post-process a filter result. - Composite multiple filter results. - In essence, this provides an elegant solution to the inelegant workflow of having to load a filter result as the current image to do additional processing on it. With the addition of a timeline, additional features would become possible: - Processing of image sequences. - Animation of filter parameters. --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 1, 2016 11:25 am | ||||||
Crapadilla
![]() |
Obviously, this kind of "project system" is still limited in appeal due to FF's specialization on pure proceduralism - it does not provide paint or vector capability.
I feel that, for an FF "project system" to really become attractive to users, FF must broaden it's capabilities beyond pure proceduralism, thus making it more appealing to stay within FF for most of the tasks required by the project. Otherwise, FF will remain a provider of 'art' elements as opposed to the tool where most of a project's time is spent. Due to this limitation, and the long road to overcome it, I suggested that FF open itself up for integration into compositing applications, because those already provide excellent frameworks for the organization of various external media sources and render plugins into coherent projects. FF as an OpenFX plugin for Nuke for example would be amazing. --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 1, 2016 11:32 am | ||||||
Betis
![]() |
Just wanted to chime in and say this is a very interesting topic and I am siding heavily with Dilla here on his ideas.
Roses are #FF0000
Violets are #0000FF All my base are belong to you. |
|||||
Posted: November 1, 2016 7:07 pm | ||||||
Vladimir Golovin
Administrator |
A real solution for all of these would be to remove the distinction between a filter and a component, which would involve 1) demoting the Result / Shader component to the status of a regular component, and 2) implementing Lighting Environment as a control, or even a separate type. This way, there would be no difference in composing a filter and composing filters. Obviously, refactoring the current FF architecture to support this unified architecture would be pure hell. A workable solution which can be implemented in current FF would indeed require a separate node-based environment. |
|||||
Posted: November 2, 2016 6:28 am | ||||||
Vladimir Golovin
Administrator |
I agree with both, and I can say that FF (and FF sequel) will stay true to its roots - I don't think we'll venture into painting or vector editing. I just need to come up with better examples of what I meant by 'project'. |
|||||
Posted: November 2, 2016 6:30 am | ||||||
Crapadilla
![]() |
[My emphasis] Exactly! This is probably what I was clumsily attempting to convey by...
![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 2, 2016 10:13 am | ||||||
CorvusCroax
![]() |
I agree with 'dilla:
-1. Do you feel that this notion of a project is relevant to your workflow? NO. Filter Forge is just one of several tools I use. And they are wildly diverse. I don't see FF being able to bridge all those things in a relevant way. -2. Would you like to see it implemented in Filter Forge? NO. I'd much rather see simple BATCHING / ANIMATION and BATCH SAVING OF MAPS (diffuse map, normal map, etc). Those things would have a major improvement on my workflow, and make FF relevant to a whole bunch of other activities. -3. Would you be willing to sacrifice some convenience of the traditional FF workflow for this? Emphatically no. -4. What are project items? Filters, embedded images etc.? Images(mostly .PNG, AI, and PSD), 3d models, video files, occasionally an Adobe Color Palette file. -5. What's your typical project? An image with particular dimensions and contents? A filter? A set of textures? Oh man... a whole computer game worth of varied assets. Typically textures are around 512x512, but as large as 8k wide for geography. Some of them are unique, but many of them are variations on a theme. But they could be a group anywhere from 4 or 5 to several hundred. -In general, what are your thoughts on this? I'm glad you are thinking about our workflow. But, as stated above, I'd really rather have you improve the core function of making images, and saving them by (BATCHING / simple ANIMATION and BATCH SAVING OF MAPS) A little bit more on why this matters: BATCHING / simple ANIMATION Simply being able to batch a series of steps, using a set of curves, would be a huge benefit. It means that I could just say 'go from preset x to preset y' and 'use this curve'. This would be good for making animations, but also just creating content in a series, like a series of 10 textures that have have one color pattern, then do 10 more with another. Totte's external batch tool is not good enough by itself. There needs to be a UI for it; I shouldn't have to code to do a simple batch. I mean, not to put to fine a point on it: FWIW Genetica's implementation looks pretty good: http://spiralgraphics.biz/genetica/he...mation.htm ![]() ![]() ![]() ![]() I would much rather be able to do this sort of thing in FF, and not have to deal with AE or anything else. I've had to cobble together workflows using a series of base images, and then batch-run FF on them. But...not ideal. BATCH SAVE MAPS Many people have asked about this, and it is a standard feature in almost every 3d application, that I'm not sure why it isn't already in Filter Forge. Not having it really makes FF less useful for me. SRSLY. Another workflow issue for me is: SELF ILLUMINATION MAP Again, this is an interoperability thing. Right now, I've been jerry-rigging this in FF, all behind a switch. It would be great to have this work in FF like all the other programs, and be able to influence lighting. Sorry if I sound whiny ... I feel like FF is really close to being an awesome image automation tool / production tool. But it needs some of the of these key workflow pain points solved. |
|||||
Posted: November 2, 2016 8:03 pm | ||||||
Crapadilla
![]() |
Fully agree with Corvus here. Currently, when looked at as a pipeline tool, FF lacks in several important ways: 1. Convenient processing of multiple images / image sequences. 2. Convenient saving of multiple images / image sequences. 3. Convenient saving of render maps. If FF wishes to play better within art pipelines, both input from and output to the pipeline need to be streamlined. Keyword: batch render. And yes, I fully agree with Corvus again here: 1. A command-line batch-render is a royal PITA to deal with. There should be a GUI, and it should be inside FF. 2. Yes, batch render should allow for animations, preset A to B to C to ... , using user-defined interpolation curves. Now, don't get me wrong: I find the idea of a future FF sequel having a project-style workflow built into its very architecture rather fascinating, but in FF's current shape and form (and given its specialization), this notion appears to be much less useful. My vote: First and foremost, make FF even better at what it does best (i.e. procedural image generation), then make it more convenient in how it plays within pipelines (i.e. image input & output). --- Crapadilla says: "Damn you, stupid future FF sequel that makes it so we can't have nice things NOW!" ![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 2, 2016 10:11 pm | ||||||
Vladimir Golovin
Administrator |
(A side note: animation scares me. Mostly because animation is not just user-defined parameter curves combined with the ability of batch processing image sequences. I think I'm mostly afraid of temporal anti-aliasing, no matter stochastic or not. It's trivial to implement for floating-point parameters, but how do I implement it for checkbox / intslider parameters?)
(Or can I leave this to users, who will just render a 5x longer frame sequence then compress it into 1x time using their video editing tools? That would allow them to emulate non-stochastic temporal supersampling. Will that be enough?) |
|||||
Posted: November 3, 2016 5:41 am | ||||||
CorvusCroax
![]() |
If I understand what you mean; I guess I'd expect checkbox parameters to be able to be plugged into a curve, and <50% = OFF, >50% = ON. Same thing with intsliders, they just get normalized against 0-100 of the curve. This would be a feature, so you can have a 'random noise' curve, => 'random' on/off of your checkbox. I'd assume that you have to do something to make a control 'animated'. Perhaps some controls are not able to be animated.(?)
Yeah, I think you can just leave it to users. I keep referring to this feature as BATCHING / simple ANIMATION, because most of the time what I need are simply a sequence of stills. Batching is the real tool here, animation is just an adjacent bonus (IMHO). It would be neat-o to render out .GIFs and nice smooth .MPEG's straight out of FF, but a batched series of images is what we mainly need. I have my own frames to video converters that go w/ my workflow. (Vanilla Pshop will do some, actually.) |
|||||
Posted: November 3, 2016 8:13 pm | ||||||
Crapadilla
![]() |
Didn't mean to imply that implementing animation would be trivial, but merely that it is something that FF should have, and that it should be taken into consideration when laying the foundations of FF's successor. --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: November 11, 2016 9:36 am | ||||||
Chris Goldthorpe |
This is an interesting thread. I've also been looking for something that was suggested by Crapadilla, the ability to create the frames for an animation by running a script that repeatedly adjusts the parameter of a filter and saves after each adjustment.
Being able to create recipes which use multiple filters would also be very useful. |
|||||
Posted: November 11, 2016 7:06 pm | ||||||
Vladimir Golovin
Administrator |
(Speaking of the notion of a project - I think I have an idea how to explain it visually, with an infographic. Now, if only I could get my daughter to draw me a pony and some nice hand-drawn particles for the fairy dust.)
![]() |
|||||
Posted: November 13, 2016 6:05 am | ||||||
Vladimir Golovin
Administrator |
This is coming in FF7.0. Check out the image I posted in the neighboring thread on Tabs. |
|||||
Posted: May 1, 2017 12:35 pm | ||||||
Crapadilla
![]() |
Yup. Seen it. This is great news!
![]() --- Crapadilla says: "Damn you, stupid redundant feature requests!" ;) |
|||||
Posted: May 2, 2017 11:52 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,531 Posts
+36 new in 30 days!
15,347 Topics
+72 new in year!
24 unregistered users.