Wrapper dotnet pour gelato

Description

Voici le début d'un wrapper pour le raytracer Gelato en C++/CLI. Ce qui me permet d'appeler Gelato depuis du code C#.

Source / Exemple :


//Exemple en C#
using (ClsApi r = new ClsApi())
{
    r.ErrorManager.Error += OnError;

    // Set camera and image parameters
    string projection = "perspective";
    float[] shutter = { 0, 1 };
    int[] res = { 640, 480 };
    r.Attribute("string projection", projection);
    r.Attribute("float[2] shutter", shutter);
    r.Attribute("int[2] resolution", res);
    r.Attribute("float fov", 45);

    // Specify an output image
    r.Output("test2_greencyl.tif", "tiff", "rgba", "camera");

    r.World();    // Signal the end of the camera section

    // Set an ambient light
    r.Parameter("float intensity", 0.01f);
    r.Light("amb1", "ambientlight");

    // Set a point light
    r.PushTransform();
    r.Translate(2, -1, 11);
    r.Light("pt1", "pointlight");
    r.PopTransform();

    // Set a color attribute
    float[] C = { 0, 1, 0 };
    r.Attribute("color C", C);

    // Set specular-highlight color
    float[] specCol = { 1, 1, 1 };
    r.Parameter("color specularcolor", specCol);
    r.Shader("surface", "plastic");

    // Motion-blurred transformation
    r.Motion(2, 0.0f, 1.0f);
    r.Translate(-0.1f, -1f, 12f);   // corresponding to time 0
    r.Translate(0.1f, -1f, 12f);    // corresponding to time 1

    r.Rotate(50, 1, 0, 0);
    Samples.GeenCyl_make_nurbs_cylinder(r);

    r.Render();
}

Conclusion :


C'est mon premier projet C++/CLI, je publie le source pour les personnes qui souhaiteraient faire un wrapper entre dotnet et du C++.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.