Modeste essai 3D
-
- Messages : 198
- Enregistré le : ven. 28 déc. 2007, 13:35
- Localisation : Hauts de seine
- Contact :
Modeste essai 3D
Bonsoir,
Rien à voir avec les démos des ténors JPD et Jean Cyprien.
N'ayant pas tout compris entre « Position Z », Zoom » et « Pan », je vous soumets un petit montage pour me dire si ma procédure est correcte.
Merci.
Rien à voir avec les démos des ténors JPD et Jean Cyprien.
N'ayant pas tout compris entre « Position Z », Zoom » et « Pan », je vous soumets un petit montage pour me dire si ma procédure est correcte.
Merci.
- JPD
- Messages : 2009
- Enregistré le : jeu. 17 mars 2005, 22:58
- Localisation : Champs-sur-Marne
- Contact :
Pour les pages qui tournent, rien à redire apparemment.
Pour le reste ne sachant ce que tu as voulu faire, je ne peux avoir d'opinion.
Le Zoom modifie la taille d'un objet mais ne le déplace pas, il reste sur le plan de départ.
La Zposition est la distance entre le plan parallèle à l'écran ou se situe le centre de l'objet et l'écran. Ce paramètre n'est influencé ni par la rotation des parents ni par les valeurs de zoom de ceux-ci. Je n'ai jusqu'à ce jour trouvé aucun intérêt à cette fonction, elle me semble totalement inutile voire nuisible. En s'éloignant, l'objet diminue de taille du fait du calcul de perspective
On peut utiliser de façon logique et efficace le pan pour déplacer un objet en profondeur, pour ce faire, mettre d'abord un parent orienté de 90° sur l'axe des X, mettre l'objet utile comme enfant et le décaler de -90° sur l'axe des X, ainsi l'objet utile est bien parallèle au plan de départ.
Pour déplacer l'objet utile suivant l'axe Z, c'est à dire en profondeur, il suffit de faire varier la valeur du pan vertical de l'objet utile. Des valeurs négatives l'éloigneront du plan d'origine à l'opposé de la position de l'observateur, des valeurs positives le rapprocheront de l'observateur (s'il n'y a pas rotation des parents, en cas de rotations cumulées des parents de 180°, ce sera l'inverse, ce qui est logique). Là aussi, l'objet en s'éloignant, diminue de taille du fait du calcul de perspective
Cette façon de procéder est bien plus cohérente et plus puissante que l'utilisation de la Zposition, car les effets des rotations et zooms des parents sont pris en compte. Je recommande à tous d'éviter cette fonction Zposition,
elle peut tout au plus être utilisée comme zoom avec correction de perspective, mais en moins pratique (avec quand même un bogue en moins dans le cas peu probable ou vous êtes en accéléré ou décéléré)
Nota à ce propos : les paramètres de rotation (linéaire, accéléré etc) jouent pour toutes les rotations, ceux des pans jouent sur la Zposition
Pour le reste ne sachant ce que tu as voulu faire, je ne peux avoir d'opinion.
Le Zoom modifie la taille d'un objet mais ne le déplace pas, il reste sur le plan de départ.
La Zposition est la distance entre le plan parallèle à l'écran ou se situe le centre de l'objet et l'écran. Ce paramètre n'est influencé ni par la rotation des parents ni par les valeurs de zoom de ceux-ci. Je n'ai jusqu'à ce jour trouvé aucun intérêt à cette fonction, elle me semble totalement inutile voire nuisible. En s'éloignant, l'objet diminue de taille du fait du calcul de perspective
On peut utiliser de façon logique et efficace le pan pour déplacer un objet en profondeur, pour ce faire, mettre d'abord un parent orienté de 90° sur l'axe des X, mettre l'objet utile comme enfant et le décaler de -90° sur l'axe des X, ainsi l'objet utile est bien parallèle au plan de départ.
Pour déplacer l'objet utile suivant l'axe Z, c'est à dire en profondeur, il suffit de faire varier la valeur du pan vertical de l'objet utile. Des valeurs négatives l'éloigneront du plan d'origine à l'opposé de la position de l'observateur, des valeurs positives le rapprocheront de l'observateur (s'il n'y a pas rotation des parents, en cas de rotations cumulées des parents de 180°, ce sera l'inverse, ce qui est logique). Là aussi, l'objet en s'éloignant, diminue de taille du fait du calcul de perspective
Cette façon de procéder est bien plus cohérente et plus puissante que l'utilisation de la Zposition, car les effets des rotations et zooms des parents sont pris en compte. Je recommande à tous d'éviter cette fonction Zposition,
elle peut tout au plus être utilisée comme zoom avec correction de perspective, mais en moins pratique (avec quand même un bogue en moins dans le cas peu probable ou vous êtes en accéléré ou décéléré)
Nota à ce propos : les paramètres de rotation (linéaire, accéléré etc) jouent pour toutes les rotations, ceux des pans jouent sur la Zposition
-
- Messages : 7558
- Enregistré le : ven. 14 avr. 2006, 06:59
- Localisation : Montauban 82
- Contact :
JP pour la zposition par rapport au zoom, j'ai noté une différence dans la vitesse d'éloignement. (test avec deux figures identiques mises côte à côte)
Elle est plus réaliste avec zposition (plus rapide au début et moins à la fin comme dans le cas d'un objet qui s'éloigne) qu'avec le zoom (ou c'est l'inverse), dans le cas d'un paramétrage linéaire bien entendu...
Elle est plus réaliste avec zposition (plus rapide au début et moins à la fin comme dans le cas d'un objet qui s'éloigne) qu'avec le zoom (ou c'est l'inverse), dans le cas d'un paramétrage linéaire bien entendu...
- JPD
- Messages : 2009
- Enregistré le : jeu. 17 mars 2005, 22:58
- Localisation : Champs-sur-Marne
- Contact :
- Jean-Cyprien
- Messages : 5319
- Enregistré le : mer. 04 févr. 2009, 13:49
- Localisation : Champagne sur Seine
- Contact :
Je crois que tu as bien compris.
Pour les premières vues, tu fais effectuer les mêmes mouvements à plusieurs objets. Pourquoi ne pas mettre ceux là dans un cadre, ou utiliser la possibilité parent/enfant pour n'avoir qu'un objet à s'occuper (le cadre ou le parent) et être sûr du bon synchronisme si tu veux changer quelque chose. Ca limite le nombre de points de contrôle à s'occuper, surtout s'il y a beaucoup d'objets. Y compris pour les valeurs du Zoom, Pan ...
Pour la dernière vue, je pense que c'est bien ce que tu désirais. Il y a plusieurs façon d'y arriver, et ce n'est pas celle adoptée par Jean-Pierre (et moi). Mais du moment que ça marche !
Pour simplifier les choses, et de façon à se que l'on se comprenne plus facilement avec Jean-Pierre, j'ai adopté ses conventions (il a généralement de bonnes raisons pour justifier ses choix), c'est à dire que je bascule mon écran de 90° avec l'angle X. Je place les objets comme si je les voyais au plafond, puis je redresse avec un cadre parent de -90 pour l'angle X. Cela permet de construire des objets importants.
Au lieu de l'angle X, tu as utilisé l'angle Y. Ce n'est pas plus compliqué. On arrive aux mêmes résultats. C'est juste plus difficile s'il doit y avoir échange d'avis entres nous, puisque l'un va penser X quand l'autre aura à penser Y.
N.B. Jean-Pierre t'as dit (presque) tout ce qu'il y avait à savoir à propos de Zpos, Zoom et Pan.
PS Je lis d'avis de Charlie. Je n'ai pas encore réussi à me faire une opinion bien nette de Zpos. Elle ne répond pas à ce que j'en attendais : je pensais qu'en se rapprochant de l'objet on pourrait en modifier suffisamment la perspective, mais sauf peut-être aux limites de ce qui est possible, et alors ça devient délicat, (en gros quand on se rapproche de -173) je n'ai pas trouvé une grande différence avec le zoom.
Pour les premières vues, tu fais effectuer les mêmes mouvements à plusieurs objets. Pourquoi ne pas mettre ceux là dans un cadre, ou utiliser la possibilité parent/enfant pour n'avoir qu'un objet à s'occuper (le cadre ou le parent) et être sûr du bon synchronisme si tu veux changer quelque chose. Ca limite le nombre de points de contrôle à s'occuper, surtout s'il y a beaucoup d'objets. Y compris pour les valeurs du Zoom, Pan ...
Pour la dernière vue, je pense que c'est bien ce que tu désirais. Il y a plusieurs façon d'y arriver, et ce n'est pas celle adoptée par Jean-Pierre (et moi). Mais du moment que ça marche !
Pour simplifier les choses, et de façon à se que l'on se comprenne plus facilement avec Jean-Pierre, j'ai adopté ses conventions (il a généralement de bonnes raisons pour justifier ses choix), c'est à dire que je bascule mon écran de 90° avec l'angle X. Je place les objets comme si je les voyais au plafond, puis je redresse avec un cadre parent de -90 pour l'angle X. Cela permet de construire des objets importants.
Au lieu de l'angle X, tu as utilisé l'angle Y. Ce n'est pas plus compliqué. On arrive aux mêmes résultats. C'est juste plus difficile s'il doit y avoir échange d'avis entres nous, puisque l'un va penser X quand l'autre aura à penser Y.
N.B. Jean-Pierre t'as dit (presque) tout ce qu'il y avait à savoir à propos de Zpos, Zoom et Pan.
PS Je lis d'avis de Charlie. Je n'ai pas encore réussi à me faire une opinion bien nette de Zpos. Elle ne répond pas à ce que j'en attendais : je pensais qu'en se rapprochant de l'objet on pourrait en modifier suffisamment la perspective, mais sauf peut-être aux limites de ce qui est possible, et alors ça devient délicat, (en gros quand on se rapproche de -173) je n'ai pas trouvé une grande différence avec le zoom.
- Henri Lion
- Messages : 234
- Enregistré le : jeu. 05 oct. 2006, 09:01
- Localisation : Ile-aux-Moines (56)
- Contact :
Bonjour,
C'est très bien de se lancer et d'essayer de faire avancer le scmilblick !
La prochaine étape serait de faire une rotation de 360°, à toi de jouer.
C'était l'objet de l'exercice SYDNEY 3D proposé et superbement réalisé par Jean-Cyprien.
Les travaux et les conseils de JPD (un petit pas pour lui ) ont fait faire un grand pas à l'humanipte
Henri
C'est très bien de se lancer et d'essayer de faire avancer le scmilblick !
La prochaine étape serait de faire une rotation de 360°, à toi de jouer.
C'était l'objet de l'exercice SYDNEY 3D proposé et superbement réalisé par Jean-Cyprien.
Les travaux et les conseils de JPD (un petit pas pour lui ) ont fait faire un grand pas à l'humanipte
Henri
- JPD
- Messages : 2009
- Enregistré le : jeu. 17 mars 2005, 22:58
- Localisation : Champs-sur-Marne
- Contact :
Henri Lion a écrit :Les travaux et les conseils de JPD (un petit pas pour lui ) ont fait faire un grand pas à l'humanipte
Vite dit Henri, pour être honnête, lors de certains contrôles concernant la 3D, j'ai du réviser mes notions de mathématiques vieilles de plus de quarante ans et jamais ou presque, utilisées, mon métier nécessitant des domaines différents de connaissances.
J'ai même appris quelque chose concernant la rotation des cubes, c'est dire.
-
- Messages : 198
- Enregistré le : ven. 28 déc. 2007, 13:35
- Localisation : Hauts de seine
- Contact :
- JPD
- Messages : 2009
- Enregistré le : jeu. 17 mars 2005, 22:58
- Localisation : Champs-sur-Marne
- Contact :
Michel_92 a écrit :Bonjour,
C'est positionZ qui me tracassait obtenant apparemment la même chose avec Zoom. J’ai noté que par convention, il faut utiliser X plutôt qu’Y.
Merci pour vos explications.
En fait, il y a une raison que je n'ai pas encore expliquée (c'est long à faire) c'est que PTE fait des rotations par rapport à l'espace objet sur X et Y dans l'ordre X puis Y (ce qui n'est pas la même chose que dans l'ordre Y puis X).
La rotation sur Z quand à elle se fait par rapport à l'espace observateur, choix apparemment anachronique mais finalement très pratique.
En choisissant X plutôt que Y, on a la certitude de ne pas être perturbé par une rotation accidentelle de l'autre axe, l'inverse ne serait pas vrai.
La seule différence entre Zposition et le zoom c'est le plan du centre de l'objet, mais comme j'ai essayé de faire comprendre, vaut mieux oublier le Zposition sans réel intérêt.
-
- Messages : 198
- Enregistré le : ven. 28 déc. 2007, 13:35
- Localisation : Hauts de seine
- Contact :
Bonsoir,
J'ai bricolé mon montage précédent, et j'ai encore besoin d'explications.
Je veux faire pivoter mes pages rouge et bleu de 360°.
Dans la vue 2, le rouge est devant le bleu pendant les premiers 129°..... il reste devant alors qu'il devrait être derrière, cela jusqu’à 230° de l’angle Y, ensuite il reprend la position normale. Pourquoi le rouge ne reste pas au plus près de l’axe de rotation et le bleu au plus loin ?
La vue 4 est identique à la 2, sauf que j'ai décoché « Afficher le verso » pour le rouge. Mais là, ce n'est plus réaliste le rouge disparaît trop tôt.
J'ai bricolé mon montage précédent, et j'ai encore besoin d'explications.
Je veux faire pivoter mes pages rouge et bleu de 360°.
Dans la vue 2, le rouge est devant le bleu pendant les premiers 129°..... il reste devant alors qu'il devrait être derrière, cela jusqu’à 230° de l’angle Y, ensuite il reprend la position normale. Pourquoi le rouge ne reste pas au plus près de l’axe de rotation et le bleu au plus loin ?
La vue 4 est identique à la 2, sauf que j'ai décoché « Afficher le verso » pour le rouge. Mais là, ce n'est plus réaliste le rouge disparaît trop tôt.
- JPD
- Messages : 2009
- Enregistré le : jeu. 17 mars 2005, 22:58
- Localisation : Champs-sur-Marne
- Contact :
La réponse est là.
Question : à quoi servent les 2 valeurs Zposition ?
Je me cite :
"La seule différence entre Zposition et le zoom c'est le plan du centre de l'objet, mais comme j'ai essayé de faire comprendre, vaut mieux oublier le Zposition sans réel intérêt."
Question : à quoi servent les 2 valeurs Zposition ?
Je me cite :
"La seule différence entre Zposition et le zoom c'est le plan du centre de l'objet, mais comme j'ai essayé de faire comprendre, vaut mieux oublier le Zposition sans réel intérêt."
-
- Messages : 198
- Enregistré le : ven. 28 déc. 2007, 13:35
- Localisation : Hauts de seine
- Contact :
- Jean-Cyprien
- Messages : 5319
- Enregistré le : mer. 04 févr. 2009, 13:49
- Localisation : Champagne sur Seine
- Contact :
j'allais répéter ... je vais trop vite
Je ne pense pas qu'il soit très facile pour un programme de suivre un objet pour s'assurer si sa trajectoire passe devant ou derrière un autre. Pas impossible, mais sûrement compliqué. Donc il y a peu d'espoir à mon avis.
Et peu d'utilité aussi pour un diaporama assez simple. Quand on sait faire des choses un poil plus compliquées, on apprend très vite ce genre d'astuce.
Certes, ça alourdit le nombre d'objet, mais PTE s'en sort à merveille.
Cordialement - Bonne journée
Je ne pense pas qu'il soit très facile pour un programme de suivre un objet pour s'assurer si sa trajectoire passe devant ou derrière un autre. Pas impossible, mais sûrement compliqué. Donc il y a peu d'espoir à mon avis.
Et peu d'utilité aussi pour un diaporama assez simple. Quand on sait faire des choses un poil plus compliquées, on apprend très vite ce genre d'astuce.
Certes, ça alourdit le nombre d'objet, mais PTE s'en sort à merveille.
Cordialement - Bonne journée
- JPD
- Messages : 2009
- Enregistré le : jeu. 17 mars 2005, 22:58
- Localisation : Champs-sur-Marne
- Contact :
Michel_92 a écrit :Merci JPD,
J'avais bien lu mais pas retenu. Penses tu que ça sera corrigé dans une version prochaine ?
Après avoir obtenu la fonction "Recto-verso", j'ai passé 8 jours à temps plein pour essayer de voir si ce problème était soluble (d'ou mon essai avec la figure se trouvant en début de PTE danse).
La réponse est, comme l'a dit Jean-Cyprien, non en l'état actuel car les calculs devraient se faire quasiment pixel par pixel pour 2 raisons au moins
1 On peut très bien avoir une image dont une partie est sous une autre et dont l'autre partie est au-dessus, ça pourrait se résoudre avec des calculs très complexes, mais pas simplement par le calcul de la Zposition du centre de l'image (ma première idée).
2 La seconde raison, rédhibitoire celle-là est le cas des objets PNG, PTE ne dispose pas de l'information de la taille ni de la forme de l'image utile, sauf à analyser pixels par pixel ce fichier (c'est quasi impossible), et donc mêmes les calculs complexes évoqués ci-dessus n'y ferait rien.
Seuls de véritables objets 3D le permettraient, mais il semble qu'aujourd'hui, du fait de DirectX il y ait trop d'imperfection (et exclu les objets semi-transparents).
Igor a évoqué le sujet sur Wnsoft, je vous le livre "brut de fonderie" :
Sorry, it's impossible due to restrictions of DirectX and even modern video cards. They don't support Z-buffer for images with alpha channel (32-bit textures) - all Text objects, Images with edge-antialising, Buttons.
All we can do in next versions - pseudo Z-buffer which will automatically sort order of objects taking in attention Z position of an each object in 3D space. However natural occlusions still impossible.
3D games use Z-buffer for 24-bit images (without semi-transparent areas) or use sorted tree of objects and a lot of mathematical calculations. It also produce visual defects in many cases.
As I heard DirectX 11 and future video cards will support Z-buffer for 32-bit images.
A retenir :
All we can do in next versions - pseudo Z-buffer which will automatically sort order of objects taking in attention Z position of an each object in 3D space
Tout ce que nous pouvons faire dans les prochaines versions : Un pseudo Z-buffer qui trierait automatiquement les objets en fonction de leur position dans l'espace, ce à quoi j'avais pensé, mais ne résoudra pas les cas cités ci-dessus. Je n'avais donc pas, de ce fait, demandé un tri automatique des objets (modifiable en cours de lecture d'une même vue) car ne permettant qu'une résolution très partielle pour un coût en puissance de calcul incompatible avec une bonne fluidité.
De surcroit le problème est très complexe du fait que les objets peuvent se trouver à plusieurs niveaux d'une même arborescence (tri en cours de calcul après avoir défini le centre de chaque objet en tenant compte de la valeur éventuelle du paramètres "Centre").
PS le test que j'ai fait sur le sujet comporte 60 faces mais dans la réalisation avec rotation, c'est 107 faces qui ont été utilisées (avec plein de keypoints), autant te dire que si j'avais imaginé une solution viable pour éviter ce travail de romain, j'en aurai immédiatement fait la suggestion à l'ami Igor.
- Henri Lion
- Messages : 234
- Enregistré le : jeu. 05 oct. 2006, 09:01
- Localisation : Ile-aux-Moines (56)
- Contact :
Michel_92 a écrit :Bonsoir,
J'ai bricolé mon montage précédent, et j'ai encore besoin d'explications.
Je veux faire pivoter mes pages rouge et bleu de 360°.
Dans la vue 2, le rouge est devant le bleu pendant les premiers 129°..... il reste devant alors qu'il devrait être derrière, cela jusqu’à 230° de l’angle Y, ensuite il reprend la position normale. Pourquoi le rouge ne reste pas au plus près de l’axe de rotation et le bleu au plus loin ?
La vue 4 est identique à la 2, sauf que j'ai décoché « Afficher le verso » pour le rouge. Mais là, ce n'est plus réaliste le rouge disparaît trop tôt.
Bonjour Michel, bonjour à tous,
J'ai apporté une solution à ton problème en suivant les instructions de JPD (merci à lui !) et qui m'ont permis de terminer le petit exercice Sydney 3D.
Henri
- JPD
- Messages : 2009
- Enregistré le : jeu. 17 mars 2005, 22:58
- Localisation : Champs-sur-Marne
- Contact :
Henri, je n'ai pu voir ton album, il n'y a pas les images nécessaires, mais au vu de tes explications, je pense que c'est la bonne solution.
Je réfléchis à une éventuelle proposition qui simplifierait la vie sur le sujet, mais il y aurait tout de même des valeurs à rentrer, comme je l'ai dit, il n'y a pas de solution miracle.
Je réfléchis à une éventuelle proposition qui simplifierait la vie sur le sujet, mais il y aurait tout de même des valeurs à rentrer, comme je l'ai dit, il n'y a pas de solution miracle.
-
- Messages : 198
- Enregistré le : ven. 28 déc. 2007, 13:35
- Localisation : Hauts de seine
- Contact :
-
- Messages : 198
- Enregistré le : ven. 28 déc. 2007, 13:35
- Localisation : Hauts de seine
- Contact :
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invités