Wrapper dotnet pour gelato

Soyez le premier à donner votre avis sur cette source.

Vue 9 672 fois - Téléchargée 316 fois

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

Ajouter un commentaire

Commentaires

Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

Les commentaires en anglais : réflexe... au taf, je bosse sur les codes sources en anglais...

A l'origine, j'avais commencé à coder ce wrapper pour utiliser Gelato comme moteur de rendu offline pour des images visibles depuis un site web... Et j'en ai profité pour apprendr le C++/CLI...

Je n'ai pas pu l'utiliser car je manque de temps et de connaissances en 3D...

Du coup, j'ai publié mon code pour ceux qui seraient tentés de l'améliorer...
Messages postés
29
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
25 juillet 2014
2
hello !!
j'avais fait également un programme c++ pour apeller gelato mais developper une application à partir de cela demande trop de travail bien que ce soit également un de mes buts seulement il existe des "wrappers" pour blender pyggelato version 15 par exemple qui permettent d'utiliser gelato à partir de blender, donc plus simple pour la 3d.Sion, ton code est simple et clair mais pourquoi les commentaires en anglais ?.N'oublie pas que avant de faire un rendu , le plus simple est de passer par un logiciel, ton wrapper serait pratique comme interface post-logiciel : je m'explique , aprés avoir fait une scène 3d, on pourrait utiliser un wrapper comme "render-queu" pour ne pas encombrer la mémoire avec un logiciel 3d et donc aller plus vite...

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.