Code Monkey home page Code Monkey logo

Comments (4)

barretpj avatar barretpj commented on September 2, 2024

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.

gregcotten avatar gregcotten commented on September 2, 2024
/** @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.

barretpj avatar barretpj commented on September 2, 2024

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.

gregcotten avatar gregcotten commented on September 2, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.