2014-07-13 12 views
10

Qual è la procedura migliore per ridimensionare i modelli 3d in Three.js (o altri renderer 3d)?Three.js - Scala il modello con scale.set() o aumentare la dimensione del modello?

Ecco un esempio che ho appena affrontato:

carico un modello e rendersi conto delle dimensioni del modello è troppo piccolo. Quindi ridimensiono la mesh usando mesh.scale.set(2,2,2); ed è una dimensione perfetta.

Quale azione devo intraprendere in questo scenario, lo lascio ridimensionato in questo modo (scalato in modo programmato) o torno al mio software di modellazione 3d e raddoppiamo le dimensioni del modello?

Grazie

risposta

17

Non è una questione di best practice ma di optimization. Se la mesh verrà sempre ridimensionata, è meglio se si esegue il ridimensionamento nel software di modellazione. Questa semplice affermazione mesh.scale.set(2,2,2); è una moltiplicazione di matrice che deve avvenire su ogni frame renderizzato. Ora forse la tua scena non ha molta geometria, nel qual caso non ti interessa. Ma come ho detto è una questione di ottimizzazione. Cosa succederebbe se la scena avesse 1000 mesh o 1000000. Quella moltiplicazione di matrice dovrebbe avvenire per ognuno di essi. Ottimizza quando puoi.

+8

gaitat - Questo non è corretto. 'mesh.scale.set()' viene chiamato una volta. Di default, 'mesh.matrix' viene comunque ricalcolato ogni fotogramma, indipendentemente dal valore della scala. – WestLangley

+3

Sì, ma presumo che anche nel javascript interpretato, moltiplicando per 1 è un no-op mentre moltiplicando per 2 non lo è. – gaitat

+0

Grazie mille! Questo è il tipo esatto di risposta che stavo cercando. – jskidd3

Problemi correlati