java, gridshape and textures


    May 25 2008 | 9:16 am
    hi. I'm trying to apply a single texture(a picture file) to each one of these planes created in jit.gl.gridshape. I'm having trouble figuring it out. from the jitter tutorials i can't quite understand how to get the qtmovie into the jit.gl.texture object. A suggestion into the right direction would be greatly appreciated. best adam
    here's my code so far.
    var planes = 20; //number of particles
    //jit.window creation var mywindow = new JitterObject("jit.window","wallpaper"); mywindow.depthbuffer = 0; mywindow.idlemouse = 0;
    //matrix var mymatrix = new JitterMatrix(4,"char",320,240); //qtmovie var myqtmovie = new JitterObject("jit.qt.movie", 320, 240);
    //jit.gl.render creation var myrender = new JitterObject("jit.gl.render","wallpaper"); //use a 2d projection myrender.ortho = 2; myrender.erase_color = [0,0,0,1];
    //attempt 1 at addig a texture var mytexture = new JitterObject("jit.gl.texture","wallpapaper"); mytexture.texture = "mymatrix"; mytexture.name = "flowers";
    // create an array of [jit.gl.gridshape] objects randomly arrayed across the window var myplane = new Array(planes);
    //for statment to create the planes for(var i=0;i myplane[i] = new JitterObject("jit.gl.gridshape","wallpaper"); myplane[i].shape = "plane"; myplane[i].lighting_enable = 1; myplane[i].smooth_shading = 1; myplane[i].scale = [0.05,0.05,0.05]; myplane[i].color = [0.5,0.3,0.7,0.5]; myplane[i].position = [Math.random()*2.-1,Math.random()*2.-1]; myplane[i].blend_enable = 1; myplane[i].texture = "picture"; }
    //copied in function read(filename) // read a movie { if(arguments.length==0) { // no movie specified, so open a dialog myqtmovie.read(); } else { // read the movie specified myqtmovie.read(filename); } // initialize feedback matrix to all maximum values mymatrix.setall(255, 255, 255, 255); }
    // drive the renderer function bang() {
    myqtmovie.matrixcalc(mymatrix, mymatrix); //myqtmovie.matrixcalc(mytexture);
    // rendering block... myrender.erase(); // erase the drawing context myrender.drawclients(); // draw the client objects myrender.swap(); // swap in the new drawing }

    • May 26 2008 | 3:46 pm
      Although i do know Java, I know next to nothing about Jitter and Java, but from glancing at your code this line is using a special kind of paper for its drawing context:
      var mytexture = new JitterObject("jit.gl.texture","wallpapaper");
      Dunno for certain, but could be it, right?
    • May 27 2008 | 9:15 am
      On Sun, May 25, 2008 at 10:16 AM, adam synnott wrote:
      > > > //attempt 1 at addig a texture > var mytexture = new JitterObject("jit.gl.texture","wallpapaper"); > mytexture.texture = "mymatrix"; > mytexture.name = "flowers";
      Texture doesn't have an attribute "texture", since that would mean you're texturing a texture :) To get your matrix data into the texture use mytexture.matrixcalc() or something. I see you were attempting that before, but you have to call in on the texture, with the video matrix as the argument. I'm not sure if you can call it with jit.qt.movie as an argument directly.
      You matrix name is set to "flowers" ....
      > myplane[i].texture = "picture"; >
      while your plane is textured with "picture".
      And of course, like Bas pointed out, the context name of your texture has a typo.
      Cheers, Thijs