Author Topic: Redistribution dans une appllication externe.  (Read 5046 times)

0 Members and 1 Guest are viewing this topic.

fcarat

  • Thug
  • *
  • Posts: 11
Redistribution dans une appllication externe.
« on: August 17, 2008, 06:54:59 PM »
Bonjour,

Je viens vers vous apres avoir écumé le forum dans tous les sens sans avoir trouvé la réponse à ma question...

Je plante le décor.
Nous avons pris Demoniak 3D pour une application externe.
Après avoir mis ses propres objets sur un plan en 2D dans notre appli, nous voulons offrir le choix a l'utilisateur de voir son résultat en 3D... d'ou Demoniak 3D.
Le logiciel crée (sur la version FREE pour le moment, j'attend la licence PRO...) un fichier XML contenant tous les éléments de la scene 3D et lance Demoniak 3D... et, l'utilisateur, peut voir son résultat en 3D... Jusque la tout fonctionne super bien !

Sauf que... nous venons d'acheter la licence PRO pour être en marque blanche (Aucun autre logo sur l'image... même celui de demoniak).
Mais la version pro, n'étant pas distribuable, et ne faisant que des fichiers binaire, nous pose probleme.
En fait, nous aimerions pouvoir utiliser la version pro... mais toujours avec le principe de fichier XML... Même si l'utilisateur peut voir le code source. En fait, ce n'est que celui de son propre parc immobilier.

La question : Peut-on continuer à utiliser le principe de fichier XML (autogénéré par notre appli) en version PRO depuis notre appli, puis lancer Demoniak 3D PRO(toujours via l'appli) et comment distribuer Demoniak 3D dans nos applis, vu ce dernier n'est pas distribuable.

Le player de la version pro... le permet-il ?

J'avoue que c'est un peu flou...

En tout cas, je vous remercie énormément par avance pour vos réponses. ;)
« Last Edit: August 19, 2008, 12:41:41 AM by fcarat »

Steph3D

  • Capo Regime
  • ***
  • Posts: 399
Re: Redistribution dans une appllication externe.
« Reply #1 on: August 17, 2008, 08:36:52 PM »
Heu... suis pas sur d'avoir tous compris, en général se que cherche les utilisateurs, c'est de masquer leurs sources aux clients sans avoir le logo, et en pouvant coder leur scène opengl sans avoir à toucher au C++

Mais bon, moi j'ai pas la version pro chez moi vu que j'ai fait que des démonstrations publiques avec démoniak, et que la je suis plus occupé à voir pour faire un vrai logiciel 3D avec mes propres idées, alors j'ai jamais eu besoin d'utilisé le format binaire pour être sur de son fonctionnement exact.

Jérôme avait fait un tutoriel la en gros ça marche avec un player.

http://www.ozone3d.net/blogs/demoniak3d/?p=84

En toute logique si la version pro à son module redistribuable qui permet d'être entièrement modifié par n'importe qui sans avoir besoin de dem, alors il n'y a plus de logiciels pro :neutral: Ça serait comme donner librement sa copie de 3DS Max avec notre modélisation aux clients...

Quel est l'intérêt au client de voir le XML ?  Si c'est bien ça que j'ai crus comprendre ? surtout qu'il existe pleins de moyens plus ou moins simples d'afficher une scène en 3D sans utiliser forcément d'XML

Demoniak est déjà une surcouche logicielle de création de scène en XML pour le moteur oZone, et démoniak pro crée en plus un fichier binaire non XML lisible par le moteur. Format évidemment propriétaire, sinon ça en reviendrait à en faire un freeware  :frown: Mais bon, il faudra demander plus de détail a Jérôme.

Enfin, vos besoins me semblent assez inhabituels, ou j'ai pas tous compris...  :oops:

fcarat

  • Thug
  • *
  • Posts: 11
Re: Redistribution dans une appllication externe.
« Reply #2 on: August 17, 2008, 09:31:22 PM »
Re bonjour Stephane,

Je comprend bien votre point de vue, mais ce n'est pas vraiment la question...

 :arrow: En fait, je pensais que la version pro était la meme que la version free... mais sans le logo en bas a gauche de l'écran... Mais pareil dans son fonctionnement. Je n'avais pas vu que le fichier était binaire au final.

En allant sur le lien indiqué, j'ai lu ceci "la version PRO est livrée avec un player de scènes Demoniak3D (Demoniak3D_Player.exe). Ce player ne peut lire qu’une scène en format binaire."... et moi, j'ai besoin de travailler en XML. Vu que notre appli, recupère les objets ulitisés dans la scene 3d sur le pc de l'utilisateur et crée un fichier XML (toujours sur le pc du client...) et lance le player Demoniak en vue d'initialiser la scene 3D correspondant au besoin du client.

D'ou la question, comment utiliser le player pro... en xml et non en binaire. (vu que ce dernier ne peut etre créer que sur le pc de développement.). Mais visiblement, cela risque d'être impossible.

Sinon, vous allez me dire, il reste encore la possibilité d'utiliser la version free de Demoniak, mais aurevoir la marque blanche...

Note : Même si l'utilisateur peut voir le code source final que nous utilisons pour la création de la scene en 3D, nous importe peu...

Ca me parait pas facile !  :coop:

« Last Edit: August 17, 2008, 09:59:18 PM by fcarat »

Steph3D

  • Capo Regime
  • ***
  • Posts: 399
Re: Redistribution dans une appllication externe.
« Reply #3 on: August 17, 2008, 10:17:31 PM »
Ben la on travail comme d'habitude en XML, il y a qu'une fois le travail fini qu'on exporte en binaire h3d juste pour le player redistribuable en plus qu'il n'y a pas dans la version free, sinon c'est la même chose (?)

Demoniak est un logiciel pour créer des scènes 3D temps réel, qui pour le moment à défaut d'avoir une interface comme un virtool ou autres, utilise une description XML. Mais comme tout logiciel, il n'a pas était conçus pour être redistribué gratuitement avec un autre logiciel, si c'est ça que vous cherchez à faire ?

Pour faire simple, disons que le player et à démoniak, ce que la vidéo est à 3ds max, le visuel de sortie, mais aucunement le logiciel dons la licence est attachée à l'acheteur. Enfin, c'est comme cela que moi j'interprète son système, qui me parait évident, après j'espère qu'il sera rentré demains pour donner plus de précision.

fcarat

  • Thug
  • *
  • Posts: 11
Re: Redistribution dans une appllication externe.
« Reply #4 on: August 18, 2008, 09:20:57 AM »
Merci pour votre réponse Stéphane.

J'ai bien compris le principe du player... Pour note, je fais de la 3D depuis pas mal de temps (C4D, 3DS, Blender), et de la programmation depuis pres de 15 ans. Je me suis mis en 'débutant'... sur Demoniak...

Il est important de comprendre que je ne souhaite pas faire de jeux ou autre avec demoniak et encore moins, redistribuer le travail de votre équipe, mais bien une application qui récupère des infos (chez le client) en vue de lui créer une scene 3D correspondant à ses données avec le PLAYER de Demoniak 3D...

 :arrow: J'ai planché sur le cas, une bonne partie de la nuit... et la solution la plus simple serai de faire un appel a un fichier externe...

Reformulons la question différemment : Est il possible dans le version h3d, d'inclure par appel externe, un fichier XML qui serai directement créer chez le client (par notre appli) et ensuite lancer le player ? Si oui, quel serai la commande qui me permettrai de charger un fichier externe XML ?

... Comme un include en C++... ou encore l'accès a un fichier 3DS ou OBJ... mais en XML.

Nous sommes bien d'accord, que nous souhaitons seulement travailler avec le player. Reste juste a faire appel a ce ficheir externe contenant la scene 3D du client.

Si cela n'est pas possible, nous ne pourrons malheureusement pas travailler avec Demoniak 3D... et nous repartirons sur notre idée de base, l'OpenGL.

Merci pour votre réponse.

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2343
    • oZone3D.Net
Re: Redistribution dans une appllication externe.
« Reply #5 on: August 18, 2008, 09:43:53 AM »
Hello franck et désolé pour cette reponse tardive.

Une solution à ton problème consisterait à charger dynamiquement le modèle 3D depuis LUA. Le code principal de l'application Demoniak est en XML et appelle un script LUA externe:

Code: [Select]
<demoniak3d>
...
...

<script name="LoadModel" filename="loadModel.lua" run_mode="EXECUTE_ONCE"  />
...
...
</demoniak3d>

Cette façon de faire permet d'exporter le code principal en binaire et d'utiliser le player pour le charger. Ton application immobilière doit juste créer dynamiquement un fichier "loadModel.lua" qui contiendrait un code du type:
Code: [Select]
...
...
MODEL_LOADING_OPTION_DEFAULT = 7;
modelId = HYP_Model.Load("AppFolder/model3d.3ds", MODEL_LOADING_OPTION_DEFAULT);
...
...

Ce code LUA est lisible sur la machine du client mais dans ton cas ce n'est pas grave.

Je pense que ça devrait fonctionner. Fais des essais et tiens nous au courant.

Steph3D

  • Capo Regime
  • ***
  • Posts: 399
Re: Redistribution dans une appllication externe.
« Reply #6 on: August 18, 2008, 09:59:40 AM »
Bonjour Frank,

ben moi c'est un peu la même chose, mais inversé, c'est plutôt 15 ans d'infographie, et de la prog depuis pas mal de temps. Ah encore un qui a connu l'évoque Atari vs Amiga  :mrgreen:

Pour le fichier, si ça marche pour le LUA, alors on peut, peut-être aussi utiliser le format de fichier XML spécial pour les objets de WALK non ? style HYP_Model.Load("AppFolder/model3d.xml", MODEL_LOADING_OPTION_DEFAULT);  :idea:

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2343
    • oZone3D.Net
Re: Redistribution dans une appllication externe.
« Reply #7 on: August 18, 2008, 10:03:13 AM »
Pour le fichier, si ça marche pour le LUA, alors on peut, peut-être aussi utiliser le format de fichier XML spécial pour les objets de WALK non ? style HYP_Model.Load("AppFolder/model3d.xml", MODEL_LOADING_OPTION_DEFAULT);  :idea:
euh... j'ai pas tout compris, c'est quoi les objets de WALK? Tu parles du plugin WAK peut etre?

Steph3D

  • Capo Regime
  • ***
  • Posts: 399
Re: Redistribution dans une appllication externe.
« Reply #8 on: August 18, 2008, 10:40:11 AM »
Bah oui, il génère bien un format objet sous forme XML (qu'on peu forcement modifier) Vue que Frank cherche le moyen d'exporter ses objets de son logiciel en XML lisible par Dem, et que c'est exactement se que tu fais avec Max.

fcarat

  • Thug
  • *
  • Posts: 11
Re: Redistribution dans une appllication externe.
« Reply #9 on: August 18, 2008, 11:50:12 AM »
Cooollll ! Merci à vous deux,  :angel:

Je pensais bien qu'il y avait une solution à mon probleme... Vous êtes trop fort !

Des que j'arrive au studio, je teste ca en urgence.

Ce qui fait, je pourrais utiliser Demoniak 3D en marque blanche, avec le chargement de fichier externe contenant la scene 3D du client...

Je ne sais que dire, mis à part, UN GRAND MERCI !

Je teste ca cet aprem, et je vous tiens au courant...

Encore MERCI A VOUS DEUX.

Franck.

Pour note : J'adorai l'AMIGA... (D'ailleurs, j'en ai un dans mes cartons à la maison  :roll:)


fcarat

  • Thug
  • *
  • Posts: 11
Re: Redistribution dans une appllication externe.
« Reply #10 on: August 19, 2008, 12:38:41 AM »
Avant tout, un grand merci à vous deux pour vos réponses avisées !

J'ai réussi à insérer mes fichiers externes (créer par mon appli), simplement en utilisant '<include lib="Appli.xml" />'... et ça marche vraiment très bien !

En fait le fichier principal contient le code suivant...

Code: [Select]
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

    <demoniak3d version="1.0">

       <include lib="Appli.xml" />

    </demoniak3d>

Le fichier Appli.xml, est donc autogénéré par notre appli... contenant la scène 3D du client... et cela fonctionne très bien !

Je l'ai également tester en *.lua, mais c'est beaucoup moins pratique...
Le résultat ne me satisfait pas encore... mais le monde ne sait pas fait un jour... et notre appli non plus !
Il reste encore pas mal de boulot... mais c'est en de bonne voix !

Pour note, j'ai réalisé cette nuit, ma première scène 3D, faite avec des fichiers externes, autogénérés...

Soyez indulgent la qualité finale de la scène...







Pour note : La scène ci-dessus, ne reflète absolument pas le résultat final de notre appli... ce n'est qu'un test !

Je sais qu'il n'y pas de textures (en fait très peu...), les lumières ne sont pas tops, etc... Mais ce n'était pas le but de l'exercice ! Mais bien celui de ce balader dans la scène 3D (Du client...).

De plus, j'ai une excuse, je travail avec Demoniak 3D, que depuis quelques heures...  :P

Merci pour vos excellents conseils !  ;)

Franck.
« Last Edit: August 19, 2008, 12:52:05 AM by fcarat »

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2343
    • oZone3D.Net
Re: Redistribution dans une appllication externe.
« Reply #11 on: August 19, 2008, 07:36:56 AM »
bravo pour le coup de l'include, je n'y avais pas pensé. Mais je crois qu'il va y avoir un problème car tout le XML (y compris celui des includes) se retrouve dans le format binaire après export. Seuls les scripts LUA ou GLSL externes sont laissés intactes.

Vivement d'autres screenshots  :clap:

fcarat

  • Thug
  • *
  • Posts: 11
Re: Redistribution dans une appllication externe.
« Reply #12 on: August 19, 2008, 04:23:46 PM »
Re,

Effectivement, je viens de refaire des tests en version Pro, et les xml joints sont automatiquement ajouter au fichier h3d...  :transpi:
Après quelques heures a m'arracher les cheveux... je vais travailler en LUA...
 :arrow: Les inconvénients sont nombreux... notement, la lourdeur du LUA. A comparer de l'XML, on est a mille lieux !
 :arrow: Les avantages sont aussi présents... notement dans la possibilité de placer ou l'on veut par programmation, tout objet (3DS) sur la scène. Les fonctions sont nombreuses (trop peut etre), ce qui offre un choix plus vaste au programmeur... mais bonjour la galère !

Pour note : J'ai éssayé le GLSL, et ce serai encore plus lourd pour nous... il ne faut pas oublier, que c'est une application externe qui crée le fichier automatiquement... et la, la tache serai trop lourde à programmer.

En fait, on refais le point dans quelques heures, le temps pour moi d'assimiler le LUA... Vous remarquerez, que je ne baisse pas les bras si facilement !  :P
Merci encore pour vos conseils ! :byebye:

Steph3D

  • Capo Regime
  • ***
  • Posts: 399
Re: Redistribution dans une appllication externe.
« Reply #13 on: August 19, 2008, 05:16:29 PM »
Pour le LUA, le bon truc c'est de se faire une petite Lib de création avec des fonctions perso, histoire de simplifier les choses par la suite.