2013-05-30 17 views
6

Sto utilizzando Three.JS r58 e mi piacerebbe ridimensionare un oggetto CubeGeometry sullo schermo.Ridimensionamento di un THREE.CubeGeometry in fase di esecuzione

Un approccio che ho provato è, quando si ridimensiona richiesta, rimuovere i cubetti effettivi e aggiungerne uno nuovo con le dimensioni aggiornate. Questo processo funziona ma rallenta notevolmente la visualizzazione. Vorrei sapere se c'è un modo per ridimensionare un CubeGeometry in modo dinamico usando Three.js piuttosto che rimuoverlo/aggiungerne uno nuovo. Un esempio in jsfiddle è apprezzato.

risposta

3

Chiamare .scale.set(x, y, z) sulla rete (vedere this ticket).

Inizialmente il scale è impostato su (1, 1, 1) (vedere il costruttore del Object3D, la classe padre di Mesh). Dovrai aumentare questi valori in base alla scala percentuale richiesta, nelle dimensioni richieste.

In this fiddle ho aumentare il cubo in tutte le direzioni del 50 per cento utilizzando .scale.set(1.5, 1.5, 1.5).

+0

Durante il ridimensionamento della mesh, ovviamente ... er .. ridimensiona la mesh, il problema è che quindi la scala degli oggetti e quindi il relativo sistema di coordinate degli oggetti è interessato. Pertanto, se si desidera ridimensionare la geometria dell'oggetto A, l'oggetto B aggiunto successivamente ad A è anch'esso malformato da tale scala. È davvero così che non puoi scalare la Geometria stessa? Per CubeGeometry puoi facilmente creare una nuova geometria quando necessario. Per la geometria oggetto 3D caricata (ad esempio dal file .stl) non è davvero un'opzione. –

+0

Ho sollevato questo problema qui (https://discourse.threejs.org/t/1021/10) e rilascerò una soluzione nel mio progetto (https://github.com/trusktr/infamous/tree/threejs). Per ora, la mia implementazione ricrea semplicemente la Geometria sulla modifica della dimensione (senza influenzare lo spazio delle coordinate di tutti i bambini). In quella discussione, ho menzionato l'idea di trattare una geometria simile a un Object3D con la sua trasformazione del mondo. Questo renderebbe il dimensionamento molto veloce. – trusktr

Problemi correlati