Forum » » Création-Développement » » Microbe3D nouvelle version dispo
Posté : 06-01-2015 19:11 
tu as un exemple dans demo-arexx3 qui utilise les lights
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.00,0.50,0.00,1.00)  
; /* orange */
U3D_SetLight(Light,TRUE,Color1)
U3D_Translate(Light,-0.93,0.93,1.00,U3D_RESET)
Color2=U3D_Get(Scene,U3D_REXXMEMORY,16) &nbs
p; /* use 16 bytes (=4 floats) at memory position 16 in arexx reserved memory */
Light=U3D_Get(Scene,U3D_LIGHT,2)
U3D_RexxSetColor(Color2,0.50,0.40,1.00,1.00)  
; /* light blue */
U3D_SetLight(Light,TRUE,Color2)
U3D_Translate(Light,0.93,-0.93,1.00,U3D_RESET)
en fait les couleurs sont défininies en C avec un pointeur sur une couleur (cad 16 octets) : comme c'est difficile à faire
avec rexx aussi j'ai créé un bloc de mémoire pour arexx que l'on peut manipuler plus facilement
Ici la premiere light est à la pos 0 dans la rexxmemory la deuxiéme à la pos 16 etc...
Note: Une couleur est sous la forme de 4 valeurs float r g b a 32 bits soit 4X4=16 octets
Sur OpenScene si tu peut récupérer le pointeur de ta fenetre alors ça devrait marcher avec rxmui
Donne moi un bout de source arexx je verrai comment le faire
Dans l'ensemble regarde dans les sources pour voir comment marche une fonction : si t'as un utilitaire qui fait chercher les fichiers qui contiennent le texte "U3D_SetLight" alors ça aide
Alain
Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=2005&forum=14