Annonces Google
Serveur IRC
Serveur : irc.portlane.se
Canal : #AmigaNG
Activité du Site

Pages vues depuis 25/07/2007 : 25 375 468

  • Nb. de membres 187
  • Nb. d'articles 1 271
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Création-Développement »» Deux video de mes progs 3D

Deux video de mes progs 3D#1963

8Contributeur(s)
thelliersinisrusElwooddavebracoK-LSharynnzzd10hPseudaxos
3 Modérateur(s)
K-LElwoodcorto
K-L K-Licon_post
La taille des cuisses et des pieds ! C'est une mutante ! :-)
--
AmigaONE X1000/1,8 Ghz (A-Eon), Radeon RX560, 2 Go de Ram et OS4.1 FE
davebraco davebracoicon_post
On a du trop se focaliser sur une autre partie de son anatomie, je veux bien sur parler de ses cheveux... du coup on tombe dans un piège!
A1200PPC / Sam440ep / Sam460ex / X1000 / X5000
Sharynn Sharynnicon_post
Sympa en effet.
Mais cet effet de grosses jambes ne viendrait-il pas du fait que le calcul de profondeur de la perspective est inversé ?


Projet AmOS4 - Retour vers l'Amos sous OS4...

SAM440EP - A1200 3.1 de base
thellier thelliericon_post

En fait y a pas de perspective : je l'ai jamais mise comme Microbe3D sert (servait) surtout à animer de petits objets, logo tournant et autre. Mais effectivement sur un etre humain l'absence de perspective choque trop


Faut que je la rajoute


>sur winuae 68k pour trouver la bug arexx : c'est plus confortable en cas de crash
J'ai cherché 3 jours et j'y comprends rien: c'est comme si le lancement d'arexx venait bousiller les données déjà en mémoire de Microbe3D d'où le crash par la suite


J'ai mes propres routines d'allocation mémoire, tracées et avec des "walls", et je constate juste que sitôt que je suis (dans la première fonction Microbe3D lancée par) arexx les données sont corrompues à un endroit : un des blocs mémoire est merdé "spontanément" sans y avoir touché volontairement (par exemple les vertex-normals sont abimées sans avoir rien fait avec)


Le crash est ensuite causé par l'accés à ses données corrompues lors du nouveau rendu de la Scene (lecture des triangles) mais bien plus tard 


Mais c'est aléatoire : parfois tout est 100% ok si bien qu'il est dur d'avoir un log de l'erreur avec certitude


Alain


 


 

sinisrus sinisrusicon_post
tu pense que c'est la library qui est en cause ou ton rexx?
Si c'est ton rexx poste le ici avec zz (et d'autres) on peux peut être trouver le problème
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon Saphir HD7750 R7 250E - 2Go de ram
thellier thelliericon_post

Non non le rexx fait presque rien : c'est le même code que dans Demo-arexx.rexx qui charge le logo Amiga


Pour info: le modele "Juliet" de la vidéo fait
18083 triangles
9522 vertices
23596 vertex-normals
21 bones


ouupps c'est gros


Il vient de là
 http://tf3dm.com/3d-model/juliet-90917.html
Un site avec beaucoup de fichiers .obj qui peuvent être chargés dans Microbe3D
(les autres formats peuvent être convertis en .obj avec Blender ou autre. Mais avec plus ou moins de bonheur)



Alain

zzd10h zzd10hicon_post
Et comment tu l'appelles ce REXX, j'imagine que c'esr par SystemTags() ?
Tu as peut-être passê des tags qui ne vont pas. Peux-tu poster ta fonction d'appel ?
thellier thelliericon_post

Oui c'est System
mais après 3 jours de recherche, sans succès, je penche plutôt pour une
erreur de manque de pile ou de console (affichage massif du debug donnerait la bug ?) ou de ramlib ou qque chose comme ça...
Par contre System() lance bien le prog arexx
Puis l'erreur arrive entre l'appel de Microbe3D coté arexx et le début de la meme fonction coté Microbe3D
Je veut dire la mémoire est ok avant et bousillé sitot après
Pour l'instant j'ai laissé ça de coté... trop épuisant pour les neurones ...


Alain



/*=================================================================*/
/*
 * Synchronous external command (wait for return)
 * Uses your Input/Output unless you supply other handle
 * Result will be return code of the command, unless the System() call
 * itself fails, in which case the result will be -1
 */
void OSSystem(UBYTE* name)
{
struct TagItem stags[3];
ULONG result=0;


    stags[0].ti_Tag = SYS_Input;
    stags[0].ti_Data = Input();
    stags[1].ti_Tag = SYS_Output;
    stags[1].ti_Data = Output();
    stags[2].ti_Tag = TAG_END;
    result=System(name,stags);


 VAR(result)  
 Libprintf("OSSystem OK\n"); 
}



/*=================================================================*/


APTR U3D_Read(APTR Scene,UBYTE* filename)
  /* lire un fichier 3d, motion-capture ou rexx */
{


[...]



 if(format=='R')
  {
  Libsprintf(rxname,"C:/Rexxc/rx %s %ld",objname,Scene);
#ifdef OS4
  Libsprintf(rxname,"C:rx %s %ld",objname,Scene);
#endif
  OSSystem(rxname);
  return(NULL);
  }

thellier thelliericon_post

Petite image avec les textures en 1024x1024 et le bump : on pousse WaRp3D vers des limites de réalisme insoupconnées :-)


(Reste un petit problème sur les cheveux à régler : pas transparents)


 http://thellier.free.fr/Microbe3D-Juliet-bump-big.jpg


Alain

zzd10h zzd10hicon_post

Pour la commande System() as-tu vraiment  besoin de input et output ?


Pourquoi pas un truc tout simple comme ça en spécifiant juste le mode asynchrone à FALSE ?


int rc = SystemTags(commandREXX,SYS_Input,NULL,SYS_Output,NULL,SYS_Error,NULL,SYS_Asynch,FALSE,TAG_END);


if (!rc)


 printf("Well done, Alain !");


else


 printf("y a un truc qui ne tourne pas rond...");


 


Sinon, chapeau pour le réalisme de la nana !

Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme