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++.
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.