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

Pages vues depuis 25/07/2007 : 33 786 850

  • Nb. de membres 193
  • Nb. d'articles 1 329
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Création-Développement »» Microbe3D nouvelle version dispo

Microbe3D nouvelle version dispo

3 Modérateur(s)
K-LElwoodcorto
thellier thelliericon_post

>U3D_SetSpecialMaterial(Object,Material,NULL,U3D_MATWIREFRAME )
Il faut que Object et Material soit définis
je veut dire ça applique l'effet à un Objet et Material particulier
  NumeroMat=0
Material=U3D_Get(Object,U3D_MATERIAL,NumeroMat);


>image de fond à l'envers
Curieux je croyais avoir corrigé cet erreur... tu travaille avec mes dernières données ? l'image est pas à l'envers?
(voir le nom de l'image dans le fichier .mtl correspondant)


>J'ai un problème lorsque je charge un nouveau .obj j'ai le cpu à 100%
C'est certainement le  U3D_GridWeld() qui bouffe le cpu
C'est une fonction très compliquée qui "simplifie" la géométrie de l'objet (enlève des points, des triangles, etc...)
Mais qui est utile pour la suite car après on manipule un objet plus "simple" (moins de faces, etc...) plus rapide à tracer


La bonne solution c'est de "simplifier" l'objet une fois pour toute (Mais attentions c'est destructif : cad c'est comme le jpg niveau 10 on perd des détails)
Faire une seule fois dans un script ceci
  Object=U3D_Read(Scene,'data/bear/bear.obj')                      
  U3D_Unitize(Object,2.0)                                
  U3D_GridWeld(Object,(1.0/300.0),0.001,0.001)           
  U3D_Write(Object, 'data/bear/bear2.obj')
Puis après utiliser bear2.obj dans les projets


Modifier aussi si besoin  le -Bear.bon avec wordpad en lui faisant charger le bear2.obj à la première ligne


Le 300 veut dire que les details de moins de 1/300éme de l'affichage de Microbe3D sont enlevés
Cad que si t'affichera un logo toujours dans un espace de 200x100 pixels alors il faut mettre 200


>quand ta une version sans le message de la stack
Pour la stack j'ai pas trop le temps mais tu peut lancer un script rexx avec juste le addlib au boot
 


Alain

sinisrus sinisrusicon_post
@Alain

J'ai testé :

NULL=0
U3D_SetSpecialMaterial(Object,Material,NULL,U3D_MATWIREFRAME)
en points
U3D_SetSpecialMaterial(Object,Material,NULL,U3D_MATPLOT)
ou normal
U3D_SetSpecialMaterial(Object,Material,NULL,U3D_MATSOLID)

- Les 3 ne fonctionne pas (j'ai testé dans ta demo2.rexx)

- J'ai essayer d'ajouter l'image de fond dans mon projet mais elle s'affiche à l'envers?!?

Material =U3D_Find(Object,U3D_MATERIAL,'mat_background')            /* got background picture ? */
U3D_SetSpecialMaterial(Object,Material,NULL,U3D_MATBACKGROUND)        /* so use it as background */
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon RX550 - 2Go de ram
sinisrus sinisrusicon_post
Ah oui ce poste m'avait échappé merci :-)
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon RX550 - 2Go de ram
thellier thelliericon_post
t'as pas lu 2 posts au dessus
sinisrus sinisrusicon_post
ben ça aussi ça marche sinon: U3D_SetLight(Light,1,Color1) 

sinon tu ma pas répondu pour les couleur c'est quoi la 4eme valeur? R,G,B, et ? 


--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon RX550 - 2Go de ram
thellier thelliericon_post
Petite précision :
En C les valeurs TRUE,FALSE,NULL sont des constantes standards (des mots clefs quoi...)
Par contre en rexx il faut penser à les définir
On peut pas trop faire autrement car mes fonctions peuvent aussi recevoir une valeur variable qui change donc je peut pas mettre un parametre "en dur"
EtatLampe=1;
U3D_SetLight(Light,EtatLampe,Color1)
EtatLampe=0;

U3D_SetLight(Light,EtatLampe,Color1)  /* éteint */

Alain
thellier thelliericon_post
La 4eme c'est A alpha la transparence mais sur les lampes ça sert à rien .... (mettre A a 1.0)

Oui on peut faire en fil de fer
NULL=0
        U3D_SetSpecialMaterial(Object,Material,NULL,U3D_MATWIREFRAME)
en points
        U3D_SetSpecialMaterial(Object,Material,NULL,U3D_MATPLOT)
ou normal
        U3D_SetSpecialMaterial(Object,Material,NULL,U3D_MATSOLID)

Alain

sinisrus sinisrusicon_post
pour la couleur c'est R,G,B,? et c'est quoi la 4 eme valeur?

Peut-on avoir un rendu fil de fer?
Message édité par : sinisrus / 07-01-2015 17:05
thellier thelliericon_post

TRUE est pas défini dans ton programme


J'ai aussi affiché les lights pour voir et c'est ok


========================================


/* Created with BuildOther v1.0 */
/* By Sinisrus ? 2014 */


if ~show('l',"Microbe3D.library") then addlib("Microbe3D.library",0,-30,0)


VanillaKey=0
TRUE=1;



/* U3D_SetValue(Scene,U3D_REXXDEBUG,TRUE) */
Scene =U3D_EasyOpenScene('Rexx Demo',300,300)



    Color1=U3D_Get(Scene,U3D_REXXMEMORY,0)          
    Light=U3D_Get(Scene,U3D_LIGHT,1)
    U3D_RexxSetColor(Color1,1.0,1.0,1.0,1.0)       
    U3D_SetLight(Light,TRUE,Color1)
 U3D_SetValue(Scene,U3D_SHOWLIGHTS,TRUE)


 


Object=U3D_Read(Scene,'data/AmiLogo.obj') /* load a 3D object */



U3D_Unitize(Object,2.0) /* fit to screen (ie -1.0 +1.0) */
U3D_Normals(Object,0.0) /* do simple face normals */


U3D_GridWeld(Object,(1.0/300.0),0.001,0.001) /* will remove the double points not visible on screen */



Instance=U3D_AddInstance(Scene,Object,'Instance') /* add to scene */



U3D_SetValue(Scene,U3D_FPSLIMIT,30)


/****************************************************************************** **/


echo 'Esc for quit '
do while(VanillaKey< 1)


U3D_Rotate(Instance,3.0,1.0,4.0,U3D_CHANGE) /* rotate logo */


U3D_DrawScene(Scene) /* draw all */
VanillaKey =U3D_QueryValue(Scene,U3D_VANILLAKEY) /* get keyboard value */
end



U3D_Delete(Scene)


call remlib("Microbe3D.library")
EXIT


 

sinisrus sinisrusicon_post
@Alain

Voici un exemple de code la couleur ne marche pas

/* Created with BuildOther v1.0 */
/* By Sinisrus ? 2014 */

if ~show('l',"Microbe3D.library") then addlib("Microbe3D.library",0,-30,0)

VanillaKey=0



/* U3D_SetValue(Scene,U3D_REXXDEBUG,TRUE) */
Scene =U3D_EasyOpenScene('Rexx Demo',300,300)


??? Color1=U3D_Get(Scene,U3D_REXXMEMORY,0)??????? ???? /* use 16 bytes (=4 floats) at memory position 0 in arexx reserved memory */
??? Light=U3D_Get(Scene,U3D_LIGHT,1)
??? U3D_RexxSetColor(Color1,1.0,1.0,1.0,1.0)?????? ? /* orange */
??? U3D_SetLight(Light,TRUE,Color1)



Object=U3D_Read(Scene,'data/AmiLogo.obj') /* load a 3D object */


U3D_Unitize(Object,2.0) /* fit to screen (ie -1.0 +1.0) */
U3D_Normals(Object,0.0) /* do simple face normals */

U3D_GridWeld(Object,(1.0/300.0),0.001,0.001) /* will remove the double points not visible on screen */


Instance=U3D_AddInstance(Scene,Object,'Instance') /* add to scene */


U3D_SetValue(Scene,U3D_FPSLIMIT,30)

/********************************************************************************/

echo 'Esc for quit '
do while(VanillaKey< 1)

U3D_Rotate(Instance,3.0,1.0,4.0,U3D_CHANGE) /* rotate logo */

U3D_DrawScene(Scene) /* draw all */
VanillaKey =U3D_QueryValue(Scene,U3D_VANILLAKEY) /* get keyboard value */
end


U3D_Delete(Scene)

call remlib("Microbe3D.library")
EXIT
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon RX550 - 2Go de ram
Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme