begin process at 2013 06 19 05:47:23
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > WRAPPER DOTNET POUR GELATO

WRAPPER DOTNET POUR GELATO


 Information sur la source

Note :
Aucune note
Catégorie :Graphique Source .NET ( DotNet ) Classé sous :gelato, wrapper, nvidia, raytracer Niveau :Expert Date de création :31/12/2008 Date de mise à jour :25/02/2009 20:28:37 Vu / téléchargé :8 663 / 83

Auteur : maitredede

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


 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 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();
  • }
//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++.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

25 février 2009 20:26:11 :
Correction d'un petit bug
25 février 2009 20:28:37 :
Suppression d'un fichier

 Sources de la même categorie

Source avec Zip Source avec une capture COMPARAISON DE QUATRE MÉTHODES OPENGL POUR AFFICHER UN OBJET... par pgl10
Source avec Zip Source avec une capture POUR DÉPLACER DES OBJETS 3D DANS UNE SCÈNE WINDOWS 3D par pgl10
Source avec Zip Source avec une capture MESIMAGES : POUR AFFICHER OU DÉBRUITER DES IMAGES par pgl10
Source avec Zip Source avec une capture PLANNING D'EQUIPE par grephit
Source avec Zip APPLICATION DE DESSIN DE QUELQUES FIGURES par laguchori

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture UN RAYTRACER EN C++ AVEC ARBRE CSG POUR LINUX (PORTABLE WIN... par gwoin

Commentaires et avis

Commentaire de jeron le 18/09/2009 16:03:32

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

Commentaire de maitredede le 18/09/2009 16:10:57

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

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Moteur OpenGL avec NVIDIA [ par xabila ] Bonjour, Voil&#224; je suis entrain de faire un moteur3D pour un petit jeu avec des potes, et comme le moteur se veut ludique on le fait &#224; la fo Gestion des Chaînes MFC <-> Winform C++ [ par Patoch31 ] Bonjour, J'ai une application MFC, a laquelle je dois ajouter de nouvelle interface et autres outils de traductions de ces nouvelles interfaces. Ces n Wrapper des fonctions: pb avec ellipsis (les "...") [ par kmcl ] Bonjour,Je suis en train de développer un outil de test black-box de composants soft de type dll. L'une des exigences qui m'est faite est la possibili Wrapper c++ pour utilisation Bluesoleil API [ par zaxoum ] Bonjour à tous,Je tente actuellement de faire un wrapper C++/C.Net de l'api Bluesoleil (gère le bluetooth).Je suis malheureusement bloqué sur un probl encapsuler une DLL C++ [ par alain8550 ] Bonjour, J&#8217;ai une DLL écrite en VC++ par une tierce compagnie à laquelle je dois accéder en VB.Net ou C#. Je n&#8217;ai évidemment wrapper des classes [ par ccinfonews ] Bonjour à la communauté je recherche une aide charitable pour wrapper quelques classes afin qu'elles soient utilisables par une Dll écrite en C merc OpenGL RayTracer problème de reflection [ par atb73 ] Bonjour. Voilà, je suis débutant en OpenGL et après une prise en main, je me suis lancé dans la création d'un ray tracer. Je pars sur un truc très si


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales