Code Monkey home page Code Monkey logo

omniverse-ndi-extension's Introduction

mf.ov.ndi

An extension to enable NDI® live video input in Omniverse.

Getting started

Previous releases should still be supported in USD composer 2022.x

This plugin leverages the dynamic:// keyword which is currently a beta feature of Omniverse.

Using the extension

⚠️You should disable Render Settings > Raytracing > Eco Mode for the extension to work properly.

Enable the extension

In USD Composer :

  • Windows > Extensions.
  • Switch to THIRD PARY tab.
  • Install and enable the extension.

You may want to use example.usda in Create for your first test.

Extension window

If not opened automatically : Windows > NDI®.

preview

Window header

  • Create Dynamic Texture: Creates a new material and shader under /Looks with the associated configuration for dynamic texture rendering. The text field myDynamicMaterial allows to customize the identifier for the dynamic texture to register.
  • 🔄Discover Dynamic Textures searches through the USD stage hierarchy for any material with a dynamic:// asset source (like the one created by “Create Dynamic Material”). Will add a collapsible section for each unique id found
  • ⏹️Stop all streams stops the reception of the video stream for every dynamic texture. A material with a dynamic texture source will still display the last frame it received.

Dynamic material component

Each dynamic texture will be represented in a collapsible component. The title is the name of your dynamic texture.

  • ☑️ Indicates the health of the video feed.
  • NDI® feed combobox Select which NDI® feed to use for this dynamic texture identifier. This value is saved in USD as a custom property in the shader under ndi:source
  • ⏸️ Allows to start/stop the video feed.
  • 🖼️ Allows to switch the feed to Low bandwidth mode, saving performance by decreasing resolution for a particular feed.
  • 🗇 To copy to clipboard the identifiers of the dynamic texture Example dynamic://myDynamicMaterial

Resources

Known issues

  • Currently implemented with Python, performance could be greatly improved with C++ (but limited by DynamicTextureProvider implementation)
  • You can ignore warnings in the form of [Warning] [omni.hydra] Material parameter '...' was assigned to incompatible texture: '...'
  • You can ignore warnings in the form of [Warning] [omni.ext._impl._internal] mf.ov.ndi-... -> <class 'mf.ov.ndi...'>: extension object is still alive, something holds a reference on it...
  • You can ignore the first istance of [Warning] Could not get stage, because the extension loads before the stage is initialized

omniverse-ndi-extension's People

Contributors

agrosjea avatar fredericl-mf avatar t00n3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

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.