Pages vues depuis 25/07/2007 : 25 371 480
Index du forum »» Création-Développement »» Microbe3D nouvelle version dispo
>Si c'est pas trop de taff tu pourrais me faire tout les exemples en arexx?
Euh , non .
J'ai déjà trop souffert avec arexx ces derniers temps ... arexx me sort par les yeux ...
En plus je vois pas l'intérêt de tout convertir il vaut mieux piocher les effets dans le source de demo-view
Voici ce que font les demos
demo-simpler: charge/tourne un logo = prog simple
demo-window: idem mais dans une partie d'une fenetre perso
demo-clock: charge des objets, crée des instances hierarchiques, les anime selon l'heure courante
demo-harm: charge des objets, crée des instances hierarchiques comme un bras, l'anime avec la souris et touche i
demo-map: charge des objets,crée une map, la remplit de tiles comme un damier
demo-map-heli: idem ajoute un objet helicoptere au dessus et l'anime avec la souris
demo-boing: crée à la main un objet avec microbe3D (un boing) le tourne, affiche un background
demo-bones: crée à la main des bones sur un objet crée des instances hierarchiques comme un serpent, l'anime avec la souris et touche i
demo-fonts: à partir d'un seul objet et 4 textures crée plein d'objets (un objet par lettre), les mets dans une map selon un texte, anime
demo-view: charge/edite/modifie/sauve des objets 3D et motion-capture
demo-arexx1: idem demo-simpler
demo-arexx2: charge un objet ours, en crée 2 instances, les anime avec 2 motion-captures
demo-arexx2: charge un objet bimbo, en crée 1 instance, la positionne et change 2 lights,l'anime avec une motion capture
demo-arexx4: idem demo-map
data/-Add-AmigaLogo.rexx idem que demo-simpler mais comme plugin executable depuis demo-view
>vivement un support de la 3d pour pouvoir en profiter vraiment
Il te faudrait une carte 3D déjà supportée pour ta becane
Alain
APTR U3D_OpenScene(APTR win, APTR bm, UWORD x, UWORD y, UWORD width, UWORD height,ULONG flags);
> c'est bien pour mettre une image de
fond?
Non ça veut dire que tu as créé toi meme
une "struct bitmap" nommée bm
une "struct window" nommée win
et que tu les fournis toi meme à Microbe3D pour qu'il trace dedans
Cad que Microbe3D va tracer dans bm puis ce sera copié à l'endroit x y de la fenetre
Ca sert pour une appli déjà existante ayant déjà une fenêtre pour que Microbe3D puisse y tracer à une endroit donné .
bm est facultatif = si t'en donne pas un il en allouera un tout seul
Dans ton cas ça servirait uniquement si tu récupérais le pointeur de ta fenetre de ton appli rexx et voulait y tracer qque chose en 3D à un endroit x y
>ça veux dire quoi? je ne suis pas sur de comprendre tu veux dire que cette fonction
n'affiche pas directement la preview 3d dans une fenêtre comme l'autre fonction?
Ca veut dire que c'est une fonction plus "manuelle" à mettre en route que tu doit savoir gérer une fenetre et les évenements qui s'y passent (souris,clavie)
Avec EasyOpenScene par contre Microbe3D va ouvrir sa propre fenetre,allouer la bitmap et gérer la souris et le clavier = utilise donc plutôt cette fonction pour débuter :-)
Alain
Note:
Pour mettre une image de fond on fais ainsi (mat_girl est ici une des textures définies pour l'objet3D dans le fichier .mtl)
Material =U3D_Find(Object,U3D_MATERIAL,"mat_girl"); /* girl material */
U3D_SetSpecialMaterial(Object,Material,NULL,U3D_MATBACKGROUND); /* as background */
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