Texture 3D buffer to videoplane


    Nov 05 2007 | 1:00 am
    Hello all,
    Im trying to store video data into a 3D buffer using jit.gl.texture so that the third dimension of the texture corresponds to a specific frame of the video. If this is possible two questions.
    How do you map a specific video frame to the third dimension of a the 3D texture?
    How can you refer to this third dimension inorder to render the corresponding frame as a 2D texture using jit.gl.videoplane?
    I've created a solution that uses jit.matrixset but it is not that efficient. Anywho any help would greatly be appreciated.
    t

    • Nov 05 2007 | 1:07 am
      andrew b posted a patch in the recent past that used 3d textures and a
      shader to do some time warping stuff. Currently in Jitter it is not
      possible to modify a specific 2D slice of a 3D texture, so this is not
      a good strategy for streaming footage until that functionality is
      present as uploading all the data of a 3D texture can cause frame
      drops. For more see his patch which is under the email title
      "[sharingmakesmesleepy]time warp"
      wes
      On 11/4/07, Tyler Nitsch wrote:
      >
      > Hello all,
      >
      > Im trying to store video data into a 3D buffer using jit.gl.texture so that the third dimension of the texture corresponds to a specific frame of the video. If this is possible two questions.
      >
      > How do you map a specific video frame to the third dimension of a the 3D texture?
      >
      > How can you refer to this third dimension inorder to render the corresponding frame as a 2D texture using jit.gl.videoplane?
      >
      > I've created a solution that uses jit.matrixset but it is not that efficient. Anywho any help would greatly be appreciated.
      >
      > t
      >
      >
      >
    • Nov 05 2007 | 3:49 pm
      Thanks.... I already checked out Andrews patch awhile ago must of forgot his comment on updating 3D textures. Very cool patch though!
      My work around for now involves creating a bank of textures t0, t1, t2..... and then making a circular buffer through indexing each texture and sending video content.
      I tried to use just one texture and changing the @name before assigning a new matrix but as soon as you change the name it seems the old texture '@name old' is no longer available. Is there someway of overriding this?
    • Nov 05 2007 | 3:56 pm
      No. You have to keep all instances around. I beleive I posted a
      javascript that makes a circular buffer out of 2D textures.
      wes
      On 11/5/07, Tyler Nitsch wrote:
      >
      > Thanks.... I already checked out Andrews patch awhile ago must of forgot his comment on updating 3D textures. Very cool patch though!
      >
      > My work around for now involves creating a bank of textures t0, t1, t2..... and then making a circular buffer through indexing each texture and sending video content.
      >
      > I tried to use just one texture and changing the @name before assigning a new matrix but as soon as you change the name it seems the old texture '@name old' is no longer available. Is there someway of overriding this?
      >
      >
      >
    • Nov 05 2007 | 5:09 pm
      Is there any way to add a slice to an existing 3D texture without
      uploading the whole 'cube'? This would afford huge speed gains.
      If I bind an empty 3D texture, can I use sampler3D, force the last 3D
      coord to be 'constant' for the frame and pop in a sampler2D/2dRect?
      Ive seen this technique before used outside of jitter, but I was under
      the impression (I believe I asked if 3D textures were supported, and
      thought the answer was no) that sampler3D is not supported? So one can
      have 3D textures, not 3D samplers in a shader?
      I somehow missed this thread until now as well. Awesome awesome patch.
      So, in short, can I bind a jit.gl.texture @dim 720 480 60 with a
      sampler3D within a jit.gl.shader / slab?
      I suppose I could have tried it in the time ive been writing this
      email. hah. Sorry. :)
      On Nov 5, 2007, at 10:56 AM, Wesley Smith wrote:
      > No. You have to keep all instances around. I beleive I posted a
      > javascript that makes a circular buffer out of 2D textures.
      >
      > wes
      >
      > On 11/5/07, Tyler Nitsch wrote:
      >>
      >> Thanks.... I already checked out Andrews patch awhile ago must of
      >> forgot his comment on updating 3D textures. Very cool patch though!
      >>
      >> My work around for now involves creating a bank of textures t0, t1,
      >> t2..... and then making a circular buffer through indexing each
      >> texture and sending video content.
      >>
      >> I tried to use just one texture and changing the @name before
      >> assigning a new matrix but as soon as you change the name it seems
      >> the old texture '@name old' is no longer available. Is there
      >> someway of overriding this?
      >>
      >>
      >>
    • Nov 05 2007 | 5:14 pm
      Nevermind. I somehow missed the shader in there that has sampler3D. I
      will shut up and rtfm, and report back when I have something cool
      working :P
      On Nov 5, 2007, at 10:56 AM, Wesley Smith wrote:
      > No. You have to keep all instances around. I beleive I posted a
      > javascript that makes a circular buffer out of 2D textures.
      >
      > wes
      >
      > On 11/5/07, Tyler Nitsch wrote:
      >>
      >> Thanks.... I already checked out Andrews patch awhile ago must of
      >> forgot his comment on updating 3D textures. Very cool patch though!
      >>
      >> My work around for now involves creating a bank of textures t0, t1,
      >> t2..... and then making a circular buffer through indexing each
      >> texture and sending video content.
      >>
      >> I tried to use just one texture and changing the @name before
      >> assigning a new matrix but as soon as you change the name it seems
      >> the old texture '@name old' is no longer available. Is there
      >> someway of overriding this?
      >>
      >>
      >>
    • Nov 05 2007 | 5:32 pm
      FWIW, 3D texture management is one of the things rumored to be
      investigated for the next major Jitter upgrade, so if you can stand to
      wait...
      Otherwise, the patch I posted should serve as a good general guide for
      people wanted to work with 3D textures within a slab context in Jitter
      until there are better methods.
      For people just looking to do a circular buffer video-delay effects,
      this will be best accomplished using a scripting language such as
      JavaScript or Lua. I believe both Wes and myself have posted examples
      of this in the past.
      Best,
      Andrew B.
      vade wrote:
      > Nevermind. I somehow missed the shader in there that has sampler3D. I
      > will shut up and rtfm, and report back when I have something cool
      > working :P
      >
    • Nov 05 2007 | 5:40 pm
      Thanks Wes for the pointers... I dug up those javascript examples. This is some good motivation to start using javascript more often. ... especially for multiple renderings of similar objects!
      Andrew, when I'm completely versed in the current functionality of Jitter then maybe I'll become impatient waiting for the next release ;-).
    • Nov 05 2007 | 5:44 pm
      Hi. Yeah i have a pretty decent javascript for a buffer of 2D
      textures, but im realizing now that I probably will have to delve into
      gl.lua to get 3D texture management so I can add slices to an existing
      3D texture without re-uploading the whole texture. Oh, always
      something new to learn. :P
      Thanks,
      On Nov 5, 2007, at 12:32 PM, andrew benson wrote:
      > FWIW, 3D texture management is one of the things rumored to be
      > investigated for the next major Jitter upgrade, so if you can stand
      > to wait...
      >
      > Otherwise, the patch I posted should serve as a good general guide
      > for people wanted to work with 3D textures within a slab context in
      > Jitter until there are better methods.
      >
      > For people just looking to do a circular buffer video-delay effects,
      > this will be best accomplished using a scripting language such as
      > JavaScript or Lua. I believe both Wes and myself have posted
      > examples of this in the past.
      > y
      > Best,
      > Andrew B.
      >
      >
      >
      > vade wrote:
      >> Nevermind. I somehow missed the shader in there that has sampler3D.
      >> I will shut up and rtfm, and report back when I have something cool
      >> working :P
    • Dec 17 2010 | 4:11 pm
      Hi,
      With things coming like kinect, is there any plan for real time 3D texture shader management in jitter ?
      Or I missed something?
    • Mar 21 2011 | 4:39 pm
      Would anyone have the andrew's Time warp patch ??
      Thx !
      Ad.
    • Mar 23 2011 | 4:25 pm
      no one ?
      Thx
      Ad
    • Mar 23 2011 | 7:35 pm
      I think this is it, from 09/2007
    • Mar 23 2011 | 10:04 pm
      As always thank you Andrew !!!
      Ad.