Comments (4)
Can we get docs on how Resolve's OfxImageEffectPropNoSpatialAwareness
currently behaves?
I agree this is useful, and we should attempt to codify it in the standard.
from openfx.
/** @brief Indicates a plugin output does not depend on location or neighbours of a given pixel.
If the plugin is with no spatial awareness, it will be executed during LUT generation. Otherwise,
it will be bypassed during LUT generation.
- Type - string X 1
- Property Set - plugin descriptor (read/write)
- Default - "false"
- Valid Values - This must be one of
- "false" - the plugin is with spatial awareness, it will be bypassed during LUT generation
- "true" - the plugin is with no spatial awareness, it will be executed during LUT generation
*/
#define kOfxImageEffectPropNoSpatialAwareness "OfxImageEffectPropNoSpatialAwareness"
Here is the header information from Resolve's OpenFX "extras"
from openfx.
The criteria would seem to be: one input clip, at the current time (not multi-input, not temporal), where each output pixel's colour depends purely on [the parameters and] the colour of the input pixel at the same location (not an area operation like a blur, nor a position-dependent operation like a vignette).
It might also be useful to provide helper code for the host for generating a LUT image in-memory to pipe through their image pipeline.
I disagree, this sort of implementation would be very host-architecture-specific. I would expect that any host wishing to use this functionality would already have a mechanism for constructing a LUT from the input and output of an entire render pipeline, not simply to replace one plug-in.
There was concern expressed at the TSC that this could be seen as circumventing OFX plug-in licensing if it were to be encouraged as a "buy only one licence, then automatically replace the plug-in with a LUT on all your other seats" feature. I think it needs to be framed as a way to use plug-ins in an existing "reduce this render pipeline to a LUT as best we can" workflow that [some] hosts already offer.
from openfx.
The criteria would seem to be: one input clip, at the current time (not multi-input, not temporal), where each output pixel's colour depends purely on [the parameters and] the colour of the input pixel at the same location (not an area operation like a blur, nor a position-dependent operation like a vignette).
I think it's important to note that plugins (like ours) often do have spatial characteristics applied, but still want to allow the user to generate a LUT by getting only the non-spatial characteristics of our effect. We currently have a built-in LUT generator in our plugin, but sometimes the user wants to be able to combine our effect with their own grading and bake that all into a LUT. That is still doable but requires many manual steps by the user to pull off correctly.
Passing a parameter (perhaps via the clip) stating that the plugin should disable spatial effects for the current render pass would be enough, I think.
I disagree, this sort of implementation would be very host-architecture-specific. I would expect that any host wishing to use this functionality would already have a mechanism for constructing a LUT from the input and output of an entire render pipeline, not simply to replace one plug-in.
Sure
There was concern expressed at the TSC that this could be seen as circumventing OFX plug-in licensing if it were to be encouraged as a "buy only one licence, then automatically replace the plug-in with a LUT on all your other seats" feature. I think it needs to be framed as a way to use plug-ins in an existing "reduce this render pipeline to a LUT as best we can" workflow that [some] hosts already offer.
I understand the concern, but my proposal is that this should be an opt-in feature for plugins.
In Resolve, for example, by default "no spatial awareness" is false and therefore the plugin will not participate in the LUT generation process. Also, even the laziest "bad faith" user could always generate their own LUT image and capture the color pipeline of an effect anyway.
from openfx.
Related Issues (20)
- CMakeLists.txt should have a package target that packages all headers, libs, and samples
- CI should build with and without -DOFX_SUPPORTS_OPENGLRENDER HOT 1
- Submit Conan recipe to conancenter
- Add VFX Platform 2023 to CI build matrix
- Clarify why OfxMemorySuiteV1 should be used HOT 8
- New Icons need to replace old one
- Add `OfxParamTypeStrChoice`, a string-backed enum of choices HOT 21
- Conan & cmake build fails on second build on Windows HOT 2
- Deprecate MacOS-x86_64 install folder HOT 1
- Clip and Image Metadata HOT 21
- 1.5 Release Status
- Binary data property type (Paul?) HOT 1
- Binary data Parameters HOT 39
- Support/Plugins/ChoiceParams has a couple of errors HOT 4
- update install instrution and package opencl HOT 9
- Color Managed Color Parameter
- Deprecate kOfxParamHostPropSupportsBooleanAnimation
- Windows ARM64 and ARM64EC support HOT 1
- Deterministic per-frame RNG HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openfx.