FFCreator
Posts: 66 |
Question : How to simulate the "Result" component with other components of FF?
Background: I want to stack (cascade) 2 filters not by actual rendering in 2 steps (source image --> filter 1 --> rendering --> image 2 --> filter 2 --> rendering --> image 3). As an experiment I want to stack 2 filters by creating an new combination filter. This can be done in the FF editor (copy and paste the components) or by generating a new filterfile from the existing filter files (more advanced and complicated). Main advantages: the combi filter can have the controls of both "old" filters and presets of the filter combination and direct feedback in FF how the combi filter 'll look. Problem: If you combine a filter (filter 1, texture or effect type) with an Effect type filter (filter 2), basically you have to "replace" the "Image" component (= input) of filter 2 with the "Result" component (= output) of filter 1. But there can only be 1 "Result" component in a filter (at least in FF1 - FF6). If the filtertype of filter 1 is "Simple" you can use a workaround by reconnecting the signals on the "Source" input of the "Result" component of filter 1 to the components the "Image" component of filter 2 was connected. But if the filtertype of filter 1 is "Surface" the "Result" component of filter 1 has multiple inputs (Surface Color, Height, Reflectivity, Reflection Blur and Metallic); you have to choose beween one of the original input signals to connect for the workaround. So in this case the results 'll be different from the multiple rendering method. How can we simulate (or emulate) a "Result" component? With a combination of other FF components, with a custom script (for height and reflectivity / lightning calculations)? |
|||||||
Posted: July 24, 2017 5:36 pm | ||||||||
SpaceRay
![]() |
This answer will not probably help you but want to put it here if it may help in some way, because I wanted also to find a way to simulate or "copy" the result component in some way when using the surface result component so I made this thread here below Add new component emulating the "surface type" of the result component |
|||||||
Posted: July 27, 2017 4:29 am | ||||||||
FFCreator
Posts: 66 |
Thank you for the link. I 'm glad that I 'm not the only one that is strugling with this.
So let's analyse the most common filter stacking: Filter 1 is a Texture or Effect type filter and filter 2 is an Effect type filter. If filter 1 is a "Simple" filter, the Result component of filter 1 has only one "Source" input. In this case filter stacking can be done by reconnecting the signals of the "Source" input of the "Result" component of filter 1 to the components the "Image" component of filter 2 was connected. If filter 1 is a "Surface" filter, the Result component of filter 1 has the inputs "Surface Color", "Height", "Reflectivity", "Reflection Blur" and "Metallic". How to reconnect? 1. You can take one of the inputs, f.i. "Surface Color", to reconnect. But you 'll loose (light reflection) information of filter 1. 2. You can force filter 2 to become a "Surface" filter (if it isn't it already) and reconnect the corresponding "extra" inputs of the "Result" component of filter 1 (except "Surface Color") to the "Result" component of filter 2. So the inputs signals on the "Height", "Reflectivity", "Reflection Blur" and "Metallic" of the "Result" component of filter 1 are reconnected to these of the "Result" component of filter 2. But the output is (of course) still different from the multiple render method. If filter 2 was already a Surface filter with connected inputs, then the signals of the "extra inputs" of filter 1 and filter 2 should be combined (how?). 3. New script component that simulates the behaviour of the Result component? 4. ??? Other suggestions (without multiple rendering)? |
|||||||
Posted: July 27, 2017 4:04 pm | ||||||||
Skybase
![]() |
The straight up answer to this we can't simulate the result given the complexity of the output. There's a ton of things going on in that node alone from HDRI lighting, AO (if enabled), etc. For now its safe to say that the best method in the end is to stack filters and render something out one at a time. That isn't a happy answer but that's the realistic route.
I think there can be a way to fake it but it's pretty difficult to get the looks down given how many things the result node does. I can try to piece together something that FAKES the whole output though and maybe that's another avenue we can look at since the thread is about simulating the result node! Note: No promises here, it's already difficult enough handling tons of work. I hope somebody can pick that up or find some old thread that does what I was describing. |
|||||||
Posted: July 28, 2017 8:40 pm | ||||||||
FFCreator
Posts: 66 |
You are absolutely right, I discovered that myself too. But maybe it doesn't have to be technically 100 % "the same". The reason to combine 2 filters, at least for me, is more something like "I like the looks of this filter and this filter. If I cascade these filters and tweak some things, what would be the result?" But on the other hand the result must not be totally different from rendering in 2 steps.
That would be perfect!
Let's merge the knowledge of the Filter Forge community. Info I discovered so far this: 1 There are some clues of the internals in the FF help of the Result component. 2 The lightning model that is used seems to be based on the "Phong" lightning model. 3 The "Surface Color" input seems to refer to diffuse lightning. The "Reflectivity" and "Reflection blur" inputs seems to refer to specular lightning. 4 Some filters that deal with Phong and shading are: "Sphinx shader V0.2" (Library_4648-2 by SphinxMorpher) and "Materialiser" (Library_8492-1 by Mike Blackney). |
|||||||
Posted: July 29, 2017 2:47 am | ||||||||
FFCreator
Posts: 66 |
Info (2)
5 Filter Forge Help : Result component (Surface filter) 6 Filter Forge Help : Lighting Tab 7 Filter Forge Help : Anti-Aliasing 8 Filter Forge Help : Miscellaneous – Filter Forge's Sample Based Architecture 9 Explanation of Lighting, Phong and Vector manipulation: The Rendering Pipeline 10 Wikipedia Phong shading: Wikipedia Phong Shading 11 Basic Illumination Model in C: Basic Illumination Model in C 12 HDRI images explained (used by FF for calculating light from real world scenes): What is HDRI? |
|||||||
Posted: July 29, 2017 8:52 am | ||||||||
Indigo Ray
![]() |
In the lighting tab, you can add point source lights.
I made a filter a while ago that simulates this. I know I posted this somewhere before, but I can't find it, so here it is again. (the way I make the height map "Z" doesn't matter, what matters is everything else) Point Source Light.ffxml |
|||||||
Posted: July 29, 2017 8:11 pm | ||||||||
FFCreator
Posts: 66 |
Thanks for that, it looks this is a good starting point to simulate a point light. I'm still learning how we can pair the (ligting / shading) theory and the FF implementation of that. Info (3) 13 Mathematics of Lighting (and light types): Mathematics of Ligting Theory Global Illumination = Ambient Light + Diffuse Light + Specular Light + Emissive Light ![]() Ambient Lighting is constant lighting. It is constant in all directions and it colors all pixels of an object the same. It is fast to calculate but leaves objects looking flat and unrealistic. Diffuse Lighting depends on both the light direction and the object surface normal. It varies across the surface of an object as a result of the changing light direction and the changing surface numeral vector. It takes longer to calculate diffuse lighting because it changes for each object vertex, however the benefit of using it is that it shades objects and gives them three-dimensional (3D) depth. Specular Lighting identifies the bright specular highlights that occur when light hits an object surface and reflects back toward the camera. It is more intense than diffuse light and falls off more rapidly across the object surface. It takes longer to calculate specular lighting than diffuse lighting, however the benefit of using it is that it adds significant detail to a surface. Emissive Lighting is light that is emitted by an object; for example, a glow. Realistic lighting can be accomplished by applying each of these types of lighting to a 3D scene. To achieve a more realistic lighting effect, you add more lights; however, the scene takes longer to render. For non-metals, the color of specular reflection is generally the same as the color of the illumination (at least within the visible spectrum), but for metals this is not necessarily true. FF implementation 1. Height input is a virtual "Z" axis and used for calculating light and shadow. 2. Use of the Phong reflection model for calculating light and shadows (when pixels have different heights on the (virtual) "Z" axis). 3. To actually see shadows the Height (map) input must be connected with a map output that delivers different heights (black and white pixels), in the Light TAB the "Surface Height" must be > 0 and "Shadowing" in the Ambience settings (outer ring of the sphere) must be set different than "None". Result component inputs (Surface type): a. Surface Color b. Height (virtual Z axis) c. Reflectivity d. Reflection Blur e. Metallic Other parameters: (See Ligting TAB and filterfiles) f. Surface Height "Environment parameters" g. Source = scene / HDRI image (Environment preset) that is used for lighting h. Brightness i. Saturation j. Rotation k. RotationAxis "Ambience parameters" l. AmbientLight = ambient light color m. Shadowing (non, ambient occlusion or ambient + reflective occlusion) n. Occlusion settings - RayDirections o. Occlusion settings - TraceDistance p. Occlusion settings - RayJittering q. Occlusion settings - RayBounce r. Occlusion settings - AvoidStreaks s. Occlusion settings - DirectSamples t. Occlusion settings - ROQuality u. ArtisticSettings - BlackPoint v. ArtisticSettings - MidTones w. ArtisticSettings - WhitePoint "Parameters for every added light per light" x. Color y. Latitude z. Longitude aa. AngularWidthIndex ab. AffectDiffuseSpecular("Influence" in GUI) ac. Backlight? ![]() |
|||||||
Posted: July 31, 2017 3:48 pm |
Filter Forge has a thriving, vibrant, knowledgeable user community. Feel free to join us and have fun!
33,720 Registered Users
+8 new in 7 days!
153,546 Posts
+12 new in 7 days!
15,348 Topics
+70 new in year!
20 unregistered users.