2013-03-19 1 views
1

Je charge un fichier .obj dans un objet Object3D. Cela fonctionne bien et je peux le voir sur l'écran. Cependant, je voudrais créer l'impression de sprites tournants (lucioles, globes de foudre, ce genre de chose) à certains points au-dessus de l'objet.Attacher des nœuds/objets enfants à un Object3D dans trois.js

J'ai regardé la documentation de three.js sur les sprites et d'autres choses, et suis très impressionné par les capacités. Mais j'ai besoin d'un peu d'aide sur la façon de créer un "globe" autonome, avec des sprites évoluant dans leur propre système de coordonnées local, puis de déplacer ce "globe" autonome vers un point au-dessus du fichier obj. Est-ce que quelqu'un pourrait m'aider à commencer avec ça? (Je suppose qu'il se résume à, comment voulez-vous positionner un objet par rapport à l'autre dans threejs?)

Répondre

4

Vous devriez être en mesure de fixer simplement les spinnning sprites à l'aide de la fonction add():

//create an empty 'container'/Object3D 
var spinningSprites = new Object3D(); 
//add elements to it: 
for(var i = 0 ; i < numSprites; i++) spinningSprites.add(yourParticleObjectInstsance); 
//lastly add the whole container to the loaded model: 
youLoadedModel.add(spinningSprites); 

ci-dessus est un exemple, vous utiliserez probablement différents noms de variables, etc., mais l'idée est simple: utilisez add().

+0

Merci. Ne pas ressembler à un crétin, mais est-il un moyen d'ajouter l'objet spinningSprites au conteneur à une position particulière? La méthode three.js 'add()' ne semble pas fournir d'informations de positionnement? – larryq

+1

spinningSprites.position.set (x, y, z) – gaitat

+1

@larryq comme le souligne gaitat, utilisez la propriété position. Juste pour ajouter, gardez une trace des coordonnées locales en fonction de l'objet dans la hiérarchie que vous traduisez/déplacez. –

Questions connexes