FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF.dll - demandes ou suggestions de modifications ou ajouts
par pascal10000 Aujourd'hui à 16:47

» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 16:47

» track_bar circulaire
par Klaus Aujourd'hui à 13:54

» API Windows
par Klaus Aujourd'hui à 3:21

» Cartes de voeux, menus, etc.
par JL35 Hier à 17:48

» Mah-Jong européen new-look
par jjn4 Hier à 15:48

» a l'aide klaus
par Minibug Hier à 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Hier à 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Version instantanée du 30 juillet 2010

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Version instantanée du 30 juillet 2010   Ven 30 Juil 2010 - 19:55

Une version instantanée est la version actuelle du développement de PANORAMIC, elle vous permet d'utiliser les toutes dernières améliorations, sans attendre la sortie de la prochaine version.
Une version instantanée n'a pas de procédure d'installation (c'est un fichier zip contenant l'EDITEUR).
Les nouveaux mots-clés n'ont pas de coloration syntaxique dans l'EDITEUR.
Pour obtenir la version instantanée du 30 juillet 2010, cliquez sur Télécharger ce fichier
Voici les apports de cette version, par rapport à la dernière version instantanée du 17 juillet 2010:
--------------------------------------------------------------------------------

1 - nouvel objet 3D:
3D_SKYBOX N : crée une boite à 6 cotés de taille infinie représentant un décor pour le monde 3D (en général le ciel). Tout le monde 3D qui est créé se trouve à l'intérieur de cette boite. Cet objet 3D est immobile et recoit une texture par coté (le décor).
Il y a une contrainte: cet objet doit être le premier objet 3D créé.
Nouvelles commandes pour lui appliquer ses textures (une par coté):
3D_LOAD_TEXTURE_BOTTOM N,F$ : applique au coté bas de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
3D_LOAD_TEXTURE_FRONT N,F$ : applique au coté avant de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
3D_LOAD_TEXTURE_RIGHT N,F$ : applique au coté droit de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
3D_LOAD_TEXTURE_BACK N,F$ : applique au coté arrière de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
3D_LOAD_TEXTURE_LEFT N,F$ : applique au coté gauche de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
3D_LOAD_TEXTURE_TOP N,F$ : applique au coté haut de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$


2 - nouvel objet 3D:
3D_PLANE N : crée un plan dont la texture est tuilable: sa texture peut être répétée comme les tuiles d'un toit.
Par défaut, il a 4 tuiles (2 sur U et 2 sur V).
Cet objet peut:
- se positionner par les commandes classiques (3D_X_POSITION, 3D_Y_POSITION, 3D_Z_POSITION, 3D_POSITION),
- se tourner sur ses axes par les commandes classiques (3D_X_ROTATE, 3D_Y_ROTATE, 3D_Z_ROTATE, 3D_ROTATE),
- se dilater ou se rétrécir par les commandes classiques (3D_X_SCALE, 3D_Y_SCALE, 3D_Z_SCALE, 3D_SCALE). 3D_Z_SCALE est inactive (un plan n'ayant que 2 dimensions),
- recevoir une texture par la commande classique 3D_LOAD_TEXTURE. L'image de la texture se place sur une tuile (elle est donc répétée 4 fois sur le plan).
Nouvelles commandes pour répéter la texture:
3D_U_TILE N,T : nombre T de répétition de la texture sur l'axe U du 3D_PLANE numéro N (=nombre de tuiles sur U)
3D_V_TILE N,T : nombre T de répétition de la texture sur l'axe V du 3D_PLANE numéro N (=nombre de tuiles sur V)


3 - nouvelles commandes 3D pour créer un brouillard:
FOG_ON : crée un effet de brouillard dans le SCENE3D cible. Le brouillard est alors blanc et sa distance d'opacité est 1000 (un objet 3D de distance supérieure à 1000 de la caméra n'est plus vu).
FOG_OFF : retire l'effet de brouillard dans le SCENE3D cible
FOG_DISTANCE D : dans le SCENE3D cible, le brouillard rend invisibles les objets 3D situés à une distance de la caméra supérieure à D. Par défaut, D=1000 (les objets 3D situés à une distance > D de la caméra ne sont pas vus)
FOG_COLOR R,G,B : le brouillard dans le SCENE3D cible prend la couleur définie par les composantes R,G,B.


4 - l'inversion des lignes et des colonnes de GRID_WRITE et GRID_READ$ a été corrigée.
On a bien:
GRID_WRITE N,L,C,V$ : écriture de V$ dans la case L (ligne) C (colonne) du GRID de numéro N
V$=GRID_READ$(N,L,C) : lecture du contenu de la case L (ligne) C (colonne) du GRID de numéro N


5 - numéro des objets ayant subi un événement:
NUMBER_CLICK variable système, numéro du dernier objet cliqué (-1 à l'initialisation)
NUMBER_CHANGE variable système, numéro du dernier objet changé (-1 à l'initialisation)
NUMBER_KEY_UP variable système, numéro du dernier objet sur lequel une touche a été relachée (-1 à l'initialisation)
NUMBER_KEY_DOWN variable système, numéro du dernier objet sur lequel une touche a été enfoncée (-1 à l'initialisation)
--------------------------------------------------------------------------------
Exemples:
1 - brouillard:
Code:
DIM I%,S%
SCENE3D 1:FULL_SPACE 1
FOR I%=1 TO 200
3D_SPHERE I%,0.3
IF RND(2)<1
S%=1
ELSE
S%=-1
END_IF
3D_X_POSITION I%,S%*RND(10)
IF RND(2)<1
S%=1
ELSE
S%=-1
END_IF
3D_Y_POSITION I%,S%*RND(10)
3D_Z_POSITION I%,-1*RND(100)
NEXT I%
WAIT 1000
FOG_ON:FOG_DISTANCE 30
WAIT 500:FOG_OFF
WAIT 500:FOG_ON:FOG_DISTANCE 30
WAIT 500:FOG_OFF
WAIT 500:FOG_ON:FOG_DISTANCE 30
WAIT 500:FOG_OFF
WAIT 500:FOG_ON:FOG_DISTANCE 30
WAIT 1000
FOG_COLOR 255,220,220
WAIT 1000
FOG_COLOR 220,255,220
WAIT 1000
FOG_COLOR 220,220,255
2 - utilisation d'un 3D_SKYBOX:
Code:
dim key,angle,rayon
label boucle,pointe_camera
FULL_SPACE 0:SCENE3D 1:FULL_SPACE 1
3D_SKYBOX 1
3D_LOAD_TEXTURE_TOP 1,"SKY_TOP.jpg"
3D_LOAD_TEXTURE_LEFT 1,"SKY_LEFT.jpg"
3D_LOAD_TEXTURE_BACK 1,"SKY_BACK.jpg"
3D_LOAD_TEXTURE_FRONT 1,"SKY_FRONT.jpg"
3D_LOAD_TEXTURE_RIGHT 1,"SKY_RIGHT.jpg"
3D_LOAD_TEXTURE_BOTTOM 1,"SKY_BOTTOM.jpg"
angle=3.2
rayon=10
cam_x_position 0
cam_y_position 0
cam_z_position 0
gosub pointe_camera
CAPTION 0,"clic DROIT de la souris pour sortir"
boucle:
key=scancode
if key=37
angle=angle+0.01
gosub pointe_camera
end_if
if key=39
angle=angle-0.01
gosub pointe_camera
end_if
if key=2 then terminate
display
goto boucle
end

pointe_camera:
point_x_position rayon*sin(angle)
point_z_position rayon*cos(angle)
return
Les textures peuvent être téléchargées à dl.free.fr/hUOwu4iIq/SKY_BOX.zip

3 - numéro d'objet sur lequel on clique:
Code:
label affiche
on_click 0,affiche
button 10
caption 10,"cliquez"
on_click 10,affiche
button 20:left 20,80
caption 20,"cliquez"
on_click 20,affiche
end
affiche:
caption 0,"l'objet cliqué a pour numéro "+str$(number_click)
return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Klaus

avatar

Nombre de messages : 10249
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Version instantanée du 30 juillet 2010   Ven 30 Juil 2010 - 20:33

MERCI pour la correction L/C pour GRID, et MERCI pour les variables NUMBER_xxx ! Ca ouvre de nouvelles perspectives et facilite la programmation !

Je vois que tu t'es énormément appliqué pour le monde 3D. Il y en aura qui seront content ! Pour ma part, je vois que l'aspect "universel" n'est pas non plus oublié et je suis content.

J'espère que tu auras le temps de nous donner un moyen de savoir quelle ligne, colonne ou cellule de GRID a été cliquée, modifiée, key_down_ée etc. L'objet est génial, mais il est vrai que cela manque.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jjn4

avatar

Nombre de messages : 1625
Date d'inscription : 13/09/2009

MessageSujet: +++   Sam 31 Juil 2010 - 2:01

Super !!!
Et puis quelle vitesse de production !
cheers
J'ai essayé les programmes,
en particulier le skybox, c'est magnifique !
Un de ces 4, il faudra que je me mette à la 3D... !
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
bleunounet



Nombre de messages : 150
Date d'inscription : 26/10/2007

MessageSujet: Re: Version instantanée du 30 juillet 2010   Sam 31 Juil 2010 - 11:10

bonjour .
je viens d'essayer aussi, super le skybox et merci pour les exemple qui sont toujours les bienvenues ,bonne continuation jack
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5086
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Version instantanée du 30 juillet 2010   Sam 31 Juil 2010 - 13:30

Bravo et merci,

Sky_box, çà donne envie de se pencher sur la 3D.

Vive PANORAMIC ! cheers

A+

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Tecking



Nombre de messages : 114
Age : 29
Localisation : Toulouse
Date d'inscription : 30/05/2010

MessageSujet: Re: Version instantanée du 30 juillet 2010   Sam 31 Juil 2010 - 14:08

tout ça est excellant mais comme tu commence à me connaître, j'ajoute mon petit grain de sel :

Pour FOG_COLOR R,G,B et FOG_DISTANCE je pense que tu aurais pu réduire ces deux fonctions à FOG_COLOR R,G,B,A

Alpha étant d'habitude l'opacité on pourrait exprimer Alpha en distance.

Aussi, plus tard, pense-tu que tu étendra 3D_COLOR N,R,G,B à 3D_COLOR N,R,G,B,A

Alpha variant cette fois ci de 0 à 255.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Re: Version instantanée du 30 juillet 2010   Sam 31 Juil 2010 - 15:57

Le brouillard n'a rien à voir avec le canal alpha.
Il s'agit de notions différentes qu'on ne peut pas regrouper.

Je m'explique.
J'ai voulu que les commandes soient simples. C'est pourquoi j'ai mis une distance maximale de visibilité par FOG_DISTANCE. Mais, il y a aussi une distance minimale que je n'ai pas codé pour ne pas dérouter les utilisateurs. En fait, cette distance minimale est codée en dur et vaut 1.

Tout ça pour te dire qu'on pourrait très bien imaginer les 2 commandes:
FOG_DISTANCE_MAX M
FOG_DISTANCE_MIN N
où un objet:
1) n'est pas soumis au brouillard s'il se trouve à une distance de la caméra inférieure à N
é) est soumis au brouillard s'il se trouve à une distance de la caméra comprise entre N et M
3) disparait complètement dans le brouillard si sa distance est supérieure à M

Comment peux-tu obtenir ça avec le canal alpha, qui lui, agit sans tenir compte de la distance?

Comme il y a une confusion, et que tu ne sera sans doute pas le seul à faire la remarque, j'ai bien envie de retirer la commande FOG_DISTANCE et la remplacer par FOG_DISTANCE_MAX et FOG_DISTANCE_MIN pour la prochaine version.

De même; on peut changer la loi du brouillard. Ici, la loi est linéaire: le brouillard agit de manière proportionnelle à la distance, mais on peut programmer des lois exponentielles où un objet s'opacifie très rapidement avec la distance, et faire des commandes pour changer la loi d'opacité:
FOG_LINEAR
FOG_EXP
FOG_EXP2
FOX_LOG
Je les coderai plus tard.

Tout cela serait absolument impossible en jouant uniquement sur le canal alpha. Un SCENE3D n'a rien à voir avec un PICTURE.


Enfin, je voudrais ajouter une chose importante pour les utilisateurs qui pourraient être effrayés par ce débat, c'est que toutes ces commandes ne sont que des options.
Un utilisateur qui veut mettre du brouillard dans son monde 3D n'a qu'une commande à taper:
FOG_ON
tout le reste, c'est du réglage.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Tecking



Nombre de messages : 114
Age : 29
Localisation : Toulouse
Date d'inscription : 30/05/2010

MessageSujet: Re: Version instantanée du 30 juillet 2010   Dim 1 Aoû 2010 - 9:39

Pour 'Alpha' dans FOG_COLOR je prenais juste un nom de variable, je te l'accorde ça prète à confusion.
En même temps, faire varier la distance ne brouillard ne fait-il pas varier son opacitée?
Bref tout s'explique au moment ou tu parles de distance min et max.
Tu peux des lors oublier 'FOG_COLOR R,G,B,A'
d'ailleurs je ne pense pas utiliser FOG_DISTANCE en sachant cela.

En tout cas les nouvelles fonctionnalitées semblent impressionnantes et je pense pouvoir dire au nom de tous, bon courage jack.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Version instantanée du 30 juillet 2010   

Revenir en haut Aller en bas
 
Version instantanée du 30 juillet 2010
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» version instantanée du 22 mai 2010: redimensionner SPRITE
» PANORAMIC_IDE: version instantanée du 25 septembre 2010
» PANORAMIC_IDE: version instantanée du 20 septembre 2010
» Version instantanée 26 septembre 2014 : PANORAMIC V 0.9.26i2
» Version instantanée du 7 janvier 2015 : PANORAMIC V 0.9.26i5

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Ce qui est en cours ...-
Sauter vers: