IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Three.js Modifier mode de d�placement


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2014
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par d�faut Three.js Modifier mode de d�placement
    Bonjour � tous, j'utilise actuellement la librairie Three.js pour faire des affichages de fichiers mais le mode de d�placement ne convient (du moins une partie), j'utilise le contr�leur TrackballControls.js mais la partie panCamera n'est pas optimale, je voulais faire en sorte que le centre de l'objet reste toujours le cente de rotation mais il est modifi� � chaque fois qu'on fait un pan. J'esp�re que c'est possible

    Voici la partie panCamera :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    this.panCamera = (function(){
     
    		var mouseChange = new THREE.Vector2(),
    			objectUp = new THREE.Vector3(),
    			pan = new THREE.Vector3();
     
    		return function () {
     
    			mouseChange.copy( _panEnd ).sub( _panStart );
     
    			if ( mouseChange.lengthSq() ) {
     
    				mouseChange.multiplyScalar( _eye.length() * _this.panSpeed );
     
    				pan.copy( _eye ).cross( _this.object.up ).setLength( mouseChange.x );
    				pan.add( objectUp.copy( _this.object.up ).setLength( mouseChange.y ) );
     
    				_this.object.position.add( pan );
    				_this.target.add( pan );
     
    				if ( _this.staticMoving ) {
     
    					_panStart.copy( _panEnd );
     
    				} else {
     
    					_panStart.add( mouseChange.subVectors( _panEnd, _panStart ).multiplyScalar( _this.dynamicDampingFactor ) );
     
    				}
     
    			}
    		}
     
    	}());

  2. #2
    Membre chevronn�

    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    311
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 311
    Par d�faut
    Tout l�int�r�t d�une sc�ne graphe r�side dans le fait de pouvoir exprimer une entit� 3D dans le rep�re d�une autre entit� par une hi�rarchisation matriciel !

    Comme tu sembles �tre novice (sans vouloir te vexer) avec la 3D, je vais tenter de t�expliquer le concept de sc�ne graph

    Par exemple un verre est pos� sur une table, il est alors attach� en que fils de Table, si le perso d�place la table le verre se d�placera automatiquement avec...
    ensuite si le perso attrape le verre dans �� main, pour que le verre suive les mouvements du perso, il suffit de d�tacher l�entit� verre de table pour l�attacher, en tant que fils, a l�entit� poign�e du perso , lui-m�me attach� � l�entit� coude , et ainsi de suite le long du squelette du perso.
    Si tu d�sires obtenir une vue � la troisi�me personne, tu as juste a attach� ta camera en tant que fils de l�entit� perso, la propri�t� position devient alors le vecteur d�offset par rapport � la position du personnage :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     camera.position = new THREE.Vector3( 0, 5, -10 );
    place la camera dans le dos du perso a une distance de 10 et a une hauteur de 5.

    Voil� si tu ma�trise ton arbre de matrices de ta sc�ne 3D, tu ma�triseras, alors, le rendu !
    Juste quelques rappels et conseils pour finir:
    • Le systeme de calcule matriciel n�est pas commutatif A * B != B * A, si tu pan avant de tiller tu n�obtiendras pas le m�me changement de rep�re que si tu tilt et ensuite tu pan !
    • Les entit�s 3D ( proto Object3D ), par d�faut, recompose la matrice 4x4 � partir des 3 angles d�Euler composant la propri�t� rotation ,et cela en utilisant la propri�t� eulerOrder, qui par d�faut est �gale a "XYZ" , il est pr�f�rable, pour �viter les surprise, d�utiliser l�ordre "YXZ", pour effectuer dans l�ordre : le pan (axe Y) , le tilt (axe X) et en dernier le roll (axe Z) , sinon y aussi les quaternions, a la places des angles, par les propri�t�s quaternion et useQuaternion.
    • N�h�site pas � cr�er des point de pivot dans ton sc�ne graph pour t�aider � la manipulation, en instanciant directement le proto Obect3D.


    Voilou bonne chance pour ton applis 3D !

  3. #3
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2014
    Messages
    14
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par d�faut
    Bonjour,

    J'ai d� mal m'exprimer, en fait au d�part l'image est centr� sur le centre de l'objet et donc la rotation se fait autour de ce point mais lorsque je fais un pan, donc une translation, la camera reprend comme axe de rotation le centre de l'�cran et non le centre de mon objet, j'aimerais donc pouvoir copier les coordonn�es du centre de l'objet au lancement de la page web et ensuite faire en sorte que toutes les rotations se fasse autour de cette axe et pas autour du centre de l'�cran.

    J'ai essay� lookAt, pushMatrix, popMatrix, modifier les targets de TrackballControls.js mais sans succ�s

Discussions similaires

  1. R�ponses: 6
    Dernier message: 06/06/2006, 14h16
  2. R�ponses: 3
    Dernier message: 11/01/2006, 12h01
  3. probleme avec zone liste modifiable en mode continu
    Par hellosct1 dans le forum Access
    R�ponses: 3
    Dernier message: 16/11/2005, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo