Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

3D-CRADE WIRE MODELER


Information sur la source

Catégorie :Graphique Classé sous : 3D, Modeler, Script, infographie, wire Niveau : Initié Date de création : 03/06/2008 Date de mise à jour : 03/06/2008 10:15:57 Vu / téléchargé: 3 040 / 237

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
3D-Crade est un petit modeleur de 3D filiforme basé sur un système de commandes développé entre fin 2003 et fin 2005. Bien sûr il est très loin d'égaler des modeleurs tels que POV ou Blender.
Toutefois son utilisation à la particularité d'être quelque peu originale puisqu'il permet de créer des scènes 3D en utilisant des commandes que l'on peut utiliser en ligne ou en batch afin de créer des scripts de constructions.
Cette approche que je trouvais, et que trouve toujours, amusante nous renvoi en quelque sorte au début de la programmation graphique des années 80. Sauf qu'ici on peut utiliser des commandes réalisant des objets 3D, plutôt que des commandes réalisant des objets 2D.

Body Sculptor à quant à lui été réalisé sur les bases de 3D-Crade (la unit Scene3D pour être précis). Il s'agit d'un pantin que l'on peut manipuler et que l'on peut importer dans 3D-Crade afin de construire des scènes filiformes contenants des personnages et des objets 3D. En décalquant (ou en imprimant) là scène et en ajoutant quelques traits de crayons (et avec beaucoup d'imagination) il est possible de créer des cases de BD plus ou moins réussie (tout dépend de votre talent).
 

Source

  • 3D-Crade et Bodysculptor sont des projets open source sous license MPL.
  • Les manuels utilisateurs des deux projets sont inclus avec les sources, ainsi que la licence MPL, vous pouvez donc réutiliser les classes de base de 3D-Crade pour vos propres projets.
  • Les deux projets sont nommés de la manière suivante:
  • - 3D-Crade - Project1.dpr
  • - BodySculptor - BodySculpt.dpr
3D-Crade et Bodysculptor sont des projets open source sous license MPL.
Les manuels utilisateurs des deux projets sont inclus avec les sources, ainsi que la licence MPL, vous pouvez donc réutiliser les classes de base de 3D-Crade pour vos propres projets.

Les deux projets sont nommés de la manière suivante:
- 3D-Crade - Project1.dpr
- BodySculptor - BodySculpt.dpr

Conclusion

3D-Crade n'utilise pas DirectX ou openGL ce qui implique une limitation de performance, toutefois, si vous êtes intéressé par DirectX, le projet 3ve devrait vous amuser un peu plus (à découvrir sur ma page perso, car il n'est encore qu'au stade de prototype, les sources seront toutefois bientôt disponibles, plus de détails sont disponibles sur mon site). Je compte déposer le projet sur Codes-Sources, toutefois je considère qu'il n'est pas assez avancé pour l'instant.

3D-Crade étant basé sur du scripting, il n'est pas forcémment intuitif, je vous conseille d'exécuter le script d'exemple : /Script/steinway.3ds. Pressez <F9> une fois 3D-Crade démarré et choisissez le fichier. Le script sera exécuté automatiquement.

PS:Je sais que 3D Studio utilise aussi 3ds comme extension, je ne l'ai su que par la suite, à mon sens, 3ds signifiait simplement 3D-Script.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

03 juin 2008 10:13:37 :
Ajout d'une référence à un exemple + Capture écran.
03 juin 2008 10:15:57 :
typo

Commentaires et avis

signaler à un administrateur
Commentaire de cantador le 03/06/2008 17:20:38

Bonsoir jyce3d,

Je souhaiterai tester le programme et pas de chance la commande :
_sphere(0,0,0,20,20,20) dans la fenêtre de script

ne marche pas..

A moins qu'il y a quelque chose à faire avant ou après..

signaler à un administrateur
Commentaire de jyce3d le 03/06/2008 18:03:42

Bonsoir  Cantador,

Euh non, juste taper <enter> après avoir entré la commande, je viens de recompiler le projet, et la commande semble fonctionner, la syntaxe que tu as utilisé est la bonne.

As-tu un message d'erreur quelconque affiché dans la fenêtre d'output (la fenêtre noire)?

A+,

jyce3d.

signaler à un administrateur
Commentaire de cantador le 03/06/2008 19:12:55

Eh non pas de message et j'ai bien tapé entrée
(j'ai lu la doc..)

signaler à un administrateur
Commentaire de jyce3d le 03/06/2008 20:04:50

Re Cantador,

Je viens de revérifier à nouveau, j'ai retéléchargé le projet et ai fait un copier/coller de ta commande. Ca paraît ok.

Toutefois, il y a quelques temps j'avais découvert un problème lié au regional settings (par défaut j'utilisais le '.' comme séparateur décimal), toutefois c'est un problème que j'avais déjà corrigé et j'ai retesté ce cas de figure et ça semble ok aussi.
Toutefois, c'est peut-être un cas de figure que je ne connais pas...

Ce qui m'étonne c'est que tu n'aies rien dans la fenêtre d'output...
Car le code qui détecte une possible commande est le suivant:

procedure TForm3.txtCommandKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
  var   status:string; i :integer;
        sCommand,sContent:string;
begin
if Key=13 then
begin
  fOutput.Clear;
  if fStatement.Parse(txtCommand.Text,sCommand,sContent)=PARSE_OK then status:='-->DONE' else status:='-->FAILED';
  mmooutput.Lines.Add(txtCommand.text+status);
  if fOutput.count>=1 then
   for i:=0 to foutput.count-1 do
    mmooutput.Lines.Add(foutput[i]);
  txtCommand.Text:='';

  FrmMain.RefreshView;
end;
end;

Au minimum tu devrais avoir le nom de la commande + '--->FAILED'.

Sans vouloir abuser de ton temps, pourrais-tu essayer la commande suivante:
list_var()
Normalement tu devrais voir s'afficher la liste des variables.
Sinon, est-ce que bodysculpt.dpr fonctionne ?

A+

Jyce3d.

signaler à un administrateur
Commentaire de cantador le 03/06/2008 20:57:44

Les deux projets s'ouvrent correctement, mais
rien sur les commandes script..
Je pense que cela provient de ton environnement qui n'est pas reproduit correctement..

et si on attendait d'autres commentaires ?

signaler à un administrateur
Commentaire de SOUMIA le 04/06/2008 00:33:32

ca marche pour moi aussi

très beau travail, bravo

signaler à un administrateur
Commentaire de cantador le 04/06/2008 09:11:56

@soumia :

As-tu testé les commandes script ?
Vois-tu la sphère apparaître sur la commande précitée ?

signaler à un administrateur
Commentaire de sky7rip le 04/06/2008 16:20:57

La sph?re fonctionne pour moi :) (Delphi2007).

signaler à un administrateur
Commentaire de cantador le 04/06/2008 16:56:04

@jyce3d

Delphi2007 voilà l'explication..
Mais comme ce n'était pas précisé dans ta présentation..
Même si ce n'est un projet .Net, çà serait bien de préciser la version de ton outil.

Après Lazarus, voilà un autre flag à prévoir..

signaler à un administrateur
Commentaire de cantador le 04/06/2008 17:00:43

@florenth :
par contre j'ai des exceptions

çà vient du fait qu'à ce moment la forme n'est pas créée (nil)

en revanche sous D7, moi, je n'obtiens rien (?!)

signaler à un administrateur
Commentaire de jyce3d le 04/06/2008 18:08:30

@Soumia : merci !

@Florenth: Oui, j'avoue que ça m'a pris assez bien de temps, enfin ceci-dit, c'était pour moi une bonne idée de projet pour tenter de comprendre un peu mieux Delphi, la 3D et la POO.
Pour les Exceptions, c'est vrai que j'ai la mauvaise habitude de ne pas cocher l'option "Notify on language exception"... Mais c'est vrai que j'aurais pu faire un assert sur l'existence de la form plutôt que de l'étouffer dans un try..except... Mia Culpa.

@Cantador: En réalité ce prog à été développé en Delphi 5, toutefois il fonctionne tout aussi bien en Delphi 2007 (j'ai testé sous les 2 versions).
Euh !? Que veux-tu dire par je n'obtiens rien ? Pas d'exception ou pas de Sphere ?

Au fait quel OS utilises-tu ? J'ai testé sous Win2k et WinXP, je n'ai jamais testé sous Vista...

A+,
jyce3d

signaler à un administrateur
Commentaire de cantador le 04/06/2008 19:13:23

Au fait quel OS utilises-tu ? J'ai testé sous Win2k et WinXP, je n'ai jamais testé sous Vista...

xp sp2 et Delphi7

Euh !? Que veux-tu dire par je n'obtiens rien ? Pas d'exception ou pas de Sphere ?

ni l'un, ni l'autre !

signaler à un administrateur
Commentaire de barbichette le 09/06/2008 08:03:43 9/10

Cantador, chez moi aussi ça marche bien... (sous WinXP et D7)
J'ai pas eu le temps de tout tester mais en tout cas, j'ai une sphere, un cube, ou encore un piano...

Bravo à jyce3d

Barbichette

signaler à un administrateur
Commentaire de jyce3d le 09/06/2008 09:03:56

@Cantador: J'ai été assez occupé ce wk, toutefois, d'après ce que tu m'expliques (pas de message de status, et pas d'exception lorsque tu presse enter), il m'apparait que la touche enter n'est peut-être interprétée correctement.

Pourrais tu modifier la Unit3.pas (ligne 67), en remplaçant la procedure TForm3.txtCommandKeyDown par celle-ci:
procedure TForm3.txtCommandKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
  var   status:string; i :integer;
        sCommand,sContent:string;
begin
showmessage(IntToStr(Key));
if Key=13 then
begin
  fOutput.Clear;
  if fStatement.Parse(txtCommand.Text,sCommand,sContent)=PARSE_OK then status:='-->DONE' else status:='-->FAILED';
  mmooutput.Lines.Add(txtCommand.text+status);
  if fOutput.count>=1 then
   for i:=0 to foutput.count-1 do
    mmooutput.Lines.Add(foutput[i]);
  txtCommand.Text:='';

  FrmMain.RefreshView;
end;
end;

Lorsque tu presseras enter, une dialog box devrait t'afficher le contenu ASCII de la touche pressée. Si c'est différent de 13 (ce qui serait normalement étonnant) c'est qu'il y a un truc bizarre.

@Barbichette: merci.

Voilà A+,
jyce3d

signaler à un administrateur
Commentaire de cantador le 09/06/2008 13:53:06

merci jyce3d en fait je viens de m'apercevoir que l'évènement
OnKeyDown n'est pas activé à l'ouverture..
mais maintenant, j'ai une violation d'accès sur :
if str[length(str)] <> ')' then dans unit CustomParser;
peut-être des compos dont j'ai pas la bonne version..
je pige pas..

signaler à un administrateur
Commentaire de jyce3d le 09/06/2008 23:48:02

Salut Cantador,
C'est étrange que l'évènement OnKeyDown ne soit pas activé, j'espère qu'il n'y a pas d'autres évènements non activés...

pour le "if str[length(str)]<>')'", normalement tu ne devrais pas avoir une violation d'accès mais une exception qui devrait te dire ceci : "TCustomParser::ExtractCommand:paranthese missing".
Car 3D-Crade considère que toute commande doit contenir des paranthèse, même si la commande n'a pas d'argument (je sais ça fait un peu C comme approche, même si on est très loin du C ;-) ). Donc comme premier test de validation de la commande, je vérifie déjà que la fin de ligne se termine par ')' si ce n'est pas le cas c'est que la syntaxe est déjà fausse et je remballe une exception (je sais c'est assez brutale comme méthode, mais c'est assez efficace). C'est aussi le cas si tu tapes simplement Enter.
Le parser de "3ve" est un peu moins tatillon sur l'usage des paranthèses (et aussi un peu plus précis sur les test de paranthèses ouvertes ou fermées).
Le mieux serait de retirer la ligne showmessage(inttostr(key)); si tu l'avais ajoutée et de retester avec une commande normale (comme _Sphere(0,0,0,20,20,20) ou list_var() ).

Les sources n'ont pas été modifiées ou mélangées, je les ai tester juste avant de les poster, et je n'ai rien modifier depuis dans les sources postées.
Ceci dit, je ne comprends pas pourquoi certains évènements ne sont pas activés !?

A+
jyce3d

signaler à un administrateur
Commentaire de cantador le 10/06/2008 11:32:52

rien à faire..le runscript direct marche mais la commande dans la fenêtre non (en replaçant l'évènement)
étrange non ?

signaler à un administrateur
Commentaire de jyce3d le 20/06/2008 14:04:39

Salut Cantador,

Très étrange en effet, et j'avoue ne pas voir d'où cela peut venir, car je suis incapable de reproduire le problème sur ma version. Il me faudrait plus d'information pour pouvoir avoir une idée claire.

Mais le fait que certains évènements ne soient pas activés est déjà en soit pour le moins bizarre.

A+,
Jyce3d.

signaler à un administrateur
Commentaire de cantador le 21/06/2008 14:09:48

Effectivement c'est curieux..
et poutant je n'ai pas de souci avec mes applis..

Peut-être existe t-il des patchs sous D7 que je n'aurai pas installés ou des versions de dll de tes librairies qui ne seraient pas à jour sur mon poste
??

signaler à un administrateur
Commentaire de jyce3d le 21/06/2008 15:36:41

Salut Cantador,

Honnêtement, sur une opération aussi triviale qu'une capture d'évènement clavier, je ne pense pas que ce soit un problème de patch ou de dll (mais je peux me tromper).

Ceci dit, sans vouloir abuser de ton temps, aurais-tu la possibilité de tenter de mettre un break-point, dans la fameuse procédure : procedure TForm3.txtCommandKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
et de voir ce qu'il te dit ?
D'une part si il rentre dedans, d'autre part si tu éxécutes pas à pas voir où il bloque ?

Autre question, lorsque tu démarres l'applis, tu a bien les trois axes du repère orthonormé ?

A+
Jyce3D.

signaler à un administrateur
Commentaire de cantador le 21/06/2008 17:54:34

bon, j'ai bien débuggé..
les trois axes apparaissent bien.
l'évènement n'est pas présent à l'ouverture.
après mise en place, le prog entre bien dans le OnKeyDown et si on poursuit jusqu'au bout :
Le plantage se produit dans CustomParser à la ligne :
if str[length(str)]<>')' then
avec une Violation d'accès.

signaler à un administrateur
Commentaire de cantador le 22/06/2008 13:14:38

@ florenth:
décoches toutes les cases "débugging" et "(IO|Range) check" :

rien ne change..

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

DELPHI et 3D [ par sebrs1 ] Qu'est-ce que vous me conseillez pour faire de la 3D en delphi, parce que entre delphiX qui est pas compatible avec delphi6, glscene où il n'y a aucun Conseil pour Moteur 3D [ par dami ] Bonjour a tous .Je développe actuellement un jeux de stratégie 3D temps réel. J'ai décidé d'importer les objects via un loader 3ds que j'ai fais, je l script inno pour installer Interbase [ par lnicos ] tout d'abordje tiens à dire que j'ai regarder les sujets du forum traitant de ce sujet, mais je n'ai pas réussi à le faire marcher chez moi.Ds mon app script d'installation innosetup pour IB [ par lnicos ] Tout d'abord, je tiens à vous dire que j'ai déjà cherché sur ce forum et d'autres d'ailleur, et que je n'ai pas trouvé de solution qui marche. J'ai es Création Moteur 3D avec gestion des objets en XML [ par NeO78 ] Salut tous le monde , je recherche des personnes intéressées par la création d'un moteur 3D avec gestion des fichiers objets en XML. Exécuter script PHP via Delphi ? [ par plituc ] Bonjour,Je dispose d'une application Intranet développée en PHP/Mysql. Je souhaite à présent réaliser cette application en Delphi tout en conservant l vbs et delphi [ par manu00 ] Bonjour,j'aimerai savoir comment faire pour lancer un script.vbs (visual basic script) via mon futur programme en delphi..??MerciM. JE CHERCHE UN MOTEUR 3D POUR DELPHI! [ par nono009 ] Voilà je recherche un moteur 3d pour delphi (gratuit si possible)Opengl ou directXMerci d'avancea+ protéger ou licencier mon logiciel ? [ par weldoo ] voila je vien de finir mon soft et je voudrai savoir commen mi prandre pour limiter les degasss des crackeur....je cherche un script delphi a inclure Comment importer/voir un fichier 3d studio [ par Armkreuz_Spiderz ] Bonjour, je me demande si il y a une facon simple d'importer un fichier 3d de 3d studio max dans mon application? et si possible aussi permettre la ro


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.