assurance-tunnel
assurance-tunnel
assurance-tunnel
assurance-tunnel

3DS Files, textures and importing into Isadora.


  • Tech Staff

    This is what I have so far.

    A cube, cylinder and an egg.

    Download the three files and the black gloss texture and keep them in the same folder.


    Files.



  • @skulpture

    many thanks. works perfectly. I owe you one. name it ! 

    btw forgot to ask for a cone-shape ... a cone and a cylinder should make a nice 3D arrow !

    fyi

    I am working on something that uses a ultra-short-throw (0.25) video-projection to the inside of a cylinder. My guess is that projecting onto a 3D virtual cylinder will do the necessary anamorphism to correct for the distortion of the projection. Will see that later today.

    cheers

    h


  • Tech Staff

    I have added a cone into the folder for you.


  • Beta Platinum

    @skulpture said:

    cube, cylinder and an egg

     There are a number of more complex shapes as textured 3D files prepared for use in Isadora linked to a previous forum thread: https://community.troikatronix...

    best wishes

    bonemap


  • Tech Staff

    @bonemap said:

    @skulpture said:
    cube, cylinder and an egg
     There are a number of more complex shapes as textured 3D files prepared for use in Isadora linked to a previous forum thread: https://community.troikatronix...
    best wishes
    bonemap

     Ah yes thank you @bonemap I have added them to my folder so people can download then also.



  • 3D heaven on the way !!!


  • Tech Staff

    @hairi said:

    3D heaven on the way !!!

     Have fun - please share your results. Would love to see them!



  • I will asap. (i'm on a holiday for a week). Meanwhile I developed a little GLSL actor that is similar to Matte++ but more flexible. It allows to move and zoom the image projected on the 3D model. Just copy and paste the code in the attached file into a GLSL actor. 

    cheers 

    h

     



  • do not know if attachments work. here's the code:

    uniform sampler2D iChannel0;
    uniform vec3 iResolution;
    uniform float iTime; // ISADORA_FLOAT_PARAM(src_zoom_x, xz, 0., 10., 1.0, "source image zoom horizontal");
    uniform float src_zoom_x;
    // ISADORA_FLOAT_PARAM(src_zoom_y, yz, 0., 10., 1.0, "source image zoom vertical");
    uniform float src_zoom_y; // ISADORA_FLOAT_PARAM(src_scroll_x, xp, -10., 10., -0.0, "source image scroll horizontal");
    uniform float src_scroll_x;
    // ISADORA_FLOAT_PARAM(src_scroll_y, yp, -10., 10., -0.0, "source image scroll vertical");
    uniform float src_scroll_y; // ISADORA_FLOAT_PARAM(dst_zoom_x, xs, 0., 10., 1.0, "destination image zoom horizontal");
    uniform float dst_zoom_x;
    // ISADORA_FLOAT_PARAM(dst_zoom_y, ys, 0., 10., 1.0, "destination image zoom vertical");
    uniform float dst_zoom_y; // ISADORA_FLOAT_PARAM(dst_pos_x, xpo, -10., 10., 0.0, "destination image position horizontal");
    uniform float dst_pos_x;
    // ISADORA_FLOAT_PARAM(dst_pos_y, ypo, -10., 10., 0.0, "destination image position vertical");
    uniform float dst_pos_y; // ISADORA_INT_PARAM(mask, msk, 0, 1, 0, "mask source image repeats");
    uniform int mask;
    // ISADORA_FLOAT_PARAM(blur, blr, 0., 10., 0.0, "blur mask");
    uniform float blur; // ISADORA_FLOAT_PARAM(transp_thres, tt, 0., 1., 0.0, "black to transparent thresh");
    uniform float transp_thres; void main(void) {
    vec2 uv = gl_FragCoord.xy / iResolution.xy;
    vec2 stretch = 1.0 / vec2(dst_zoom_x,dst_zoom_y);
    vec2 zoom = 1.0 / vec2(src_zoom_x,src_zoom_y);
    vec2 pan = (stretch - vec2(1.0)) / -2.0; // compensation for stretching
    vec2 pan2 = (zoom - vec2(1.0)) / -2.0; // compensation for stretching

    vec4 image = texture2D(iChannel0, (uv 
    * zoom
    + pan2)
    * stretch
    + pan
    + vec2(src_scroll_x,src_scroll_y) 
    + (vec2(dst_pos_x,-dst_pos_y) * -stretch)
    ).rgba;

    image.a = step(transp_thres,length(image.rgb));
    if(mask > 0){

    float left = (1.0-(dst_zoom_x)) / 2.0;
    float right = 1.0 - left;
    float bottom = (1.0-(dst_zoom_y)) / 2.0;
    float top = 1.0 - bottom;

    left = left + dst_pos_x;
    right = right + dst_pos_x;
    top = top - dst_pos_y;
    bottom = bottom - dst_pos_y;

    float blurr = max(blur / 10.0,1.0 / iResolution.x); // size of one pixel image = image*smoothstep(left,left+blurr,uv.x);
    image = image*smoothstep(right,right-blurr,uv.x);
    image = image*smoothstep(bottom,bottom+blurr,uv.y);
    image = image*smoothstep(top,top-blurr,uv.y);
    }



    gl_FragColor = image;
    }


  • @hairi

    At risk of not adding substance to the conversation, it just made me happy to see someone sharing GLSL code. Highlike. ;-)

    Best Wishes,
    Mark