2012-12-27 12 views
6

Domanda: È possibile capovolgere/specchiare una trama di sprite di Three.js?Three.js: è possibile capovolgere uno sprite?

Sfondo: L'uso del ramo DEV corrente di Three.js

risultati finora: ho try'd cambiare è rotazione 3d senza alcun effetto. Poi ho controllato il codice sprite e ho visto che la rotazione viene azzerato in questa linea in Sprite.js:

this.rotation3d.set(0, 0, this.rotation); 

La modifica dei valori ci non hanno avuto alcun effetto. Scavando più a fondo sono finito nel plugin SpriteRender in cui mi sono completamente perso.

La mia comprensione è che three.js usa gli shader per renderizzare gli sprite e che questo è un enorme vantaggio in termini di prestazioni. Quindi scrivere la mia implementazione di sprite usando facce semplici sembra la direzione sbagliata.

+0

Si può sempre fornire la propria 'ShaderMaterial' per tre sprite, ma sembra come un peso inutile. –

risposta

6

Okey, questo è un campo lungo, ma prova a impostare la scala dello sprite a -1 (nelle direzioni in cui vuoi capovolgerlo).

+0

Questo funziona. Elegante e semplice Grazie :) –

2

il modo più semplice per capovolgere una trama è in realtà di capovolgere l'immagine della trama prima di caricarla nella GPU.

+0

Questo è così schifoso, in realtà :) –

+0

Ma di gran lunga il modo più semplice per farlo, anche se devi farlo in runtime. – Gero3

+0

Se la mia risposta funziona (non sono sicuro e non sono in grado di testarlo proprio ora), direi. –

2

Proprio distacco come alternativa:

texture = new three60.THREE.Texture(video); 
texture.repeat.set(-1, 1); 
texture.offset.set(1, 0); 
+0

Questo ha funzionato per me con una texture video che si trovava sul lato posteriore di SphereGeometry. –

Problemi correlati