I'm not working this week end (no Softimage), but I don't really get what is this image plane you're so enthousiast about.
Feel free to throw a screen grab (if you've got time).

Take care,

Olivier

Le 11/05/2013 19:46, Paul Griswold a écrit :
Wow that's awesome!

Yeah, in Fusion the ImagePlane3D is used to set up matte shots. You can feed it an image and it'll just give you a grid that's exactly the correct size/aspect to match the image & it also uses the alpha properly. It's great for quickly setting up an environment - you just load up trees, bushes, a treeline, etc.

I was thinking about it, and what would be really cool is if there was a way for ICE to read a bunch of images, create an array and then apply them to the ICE rectangle particle shapes individually. Basically the way you'd normally pick a group of objects for your instance shapes, but just with images.

Thanks!

Paul




On Sat, May 11, 2013 at 5:34 AM, Martin <[email protected] <mailto:[email protected]>> wrote:

    My mistake, it was xres and yres.

    And now that I have opened SI, I wrote something.

    If I haven't misunderstand what you need, you could do something
    like this:

    //-------------------
    //JScript

    // Load Texture
    var ImgFilePath = "Pictures\\TEST.tga";
    var newImg = SICreateImageClip(ImgFilePath)(0);
    xres = newImg.Source.xres.value;
    yres = newImg.Source.yres.value;

    // Create Grid
    var r = ActiveSceneRoot;
    var imgName =
    ImgFilePath.substring(ImgFilePath.lastIndexOf("\\")+1,
    ImgFilePath.lastIndexOf("."));
    var grid = r.AddGeometry("grid", "MeshSurface", imgName);
    grid.vlength = (yres / xres) * grid.ulength.value;

    // Apply Material
    ApplyShader("$XSI_DSPRESETS\\Shaders\\Material\\Lambert.Preset",
    grid, null, "", siLetLocalMaterialsOverlap);
    var Shader = grid.Material.shaders("Lambert");
    SIConnectShaderToCnxPoint(newImg, Shader.diffuse, false);
    var TP = CreateProjection(grid, siTxtPlanarXZ,
    siTxtDefaultPlanarXZ, null, "Texture_Projection", null, null,
    null)(1);
    SetInstanceDataValue(null, Shader+".Image.tspace_id", TP);
    grid.Material.name <http://grid.Material.name> = imgName + "_Mat";
    //-------------------

    It will create a grid, keep the grid U value and change its Y
    value to match the texture aspect ratio.

    Make a loop with FSO and your folder with your textures and do
    your 100 grids in seconds.

    regards,

    M.Yara


    On Sat, May 11, 2013 at 12:03 PM, Martin <[email protected]
    <mailto:[email protected]>> wrote:

        I haven't used Fusion so I don't know exactly what is
        ImagePlane3D but if you want to create a grid, put a texture
        and match the aspect ratio to texture, I don't think there is
        something like that out of the box but that should be easily
        scriptable by reading the imageclip's source resx and resy.
        (I'm not in front of a PC but I think it was something like
        that imageclip.source.resx)

        cheers

        Martin

        On 2013/05/11, at 3:31, Paul Griswold
        <[email protected]
        <mailto:[email protected]>> wrote:

        Softimage doesn't happen to have anything like Fusion's
        ImagePlane3D, does it?

        It's nothing more than a simple grid with an image mapped to
        it.  But the nice thing is, there's no need to create UVs or
        a material and the grid is automatically sized to match the
        aspect ratio of the image you're feeding it.

        I have a project where I need to create probably 100+ of
        these simple image planes, so it'd be fantastic of Soft had
        something like that.

        -Paul




Reply via email to