2013-10-03 35 views
17

Otrzymuję Matrix3.getInverse(): nie można odwrócić macierzy, wyznacznikiem jest 0 three.js 3976 błąd podczas próby skalowania obiektu kostki.Skalowanie obiektu w three.js

var object = new.THREE.Mesh(geometry, material) 
xScale = 0.1; 
object.scale.x = object.scale.y = object.scale.z = xScale; 

Czy ktoś może mi pomóc z tego.

+3

'object.scale.set (xScale, xScale, xScale)' – uhura

+2

Uhura oznaczało object.scale.set (xScale, yScale, zScale) – pkout

+2

@uhura Dlaczego jest to wymagane? 'object.scale' to' Vector3', więc powinien być modyfikowany dokładnie w taki sam sposób, jak (np.) 'object.position' ... W rzeczywistości użycie' set' nie rozwiązuje niczego (tylko próbowałem). – Bakuriu

Odpowiedz

0

Myślę, że możesz próbować użyć Matrix3, gdzie wymagany jest Matrix4. Przynajmniej w r61 biblioteki three.js, linia, do której się odnosisz, wyciąga z macierzy poza indeks 8 (tj. Macierz 16 elementów vs. element 9). Jeśli potrzebujesz dodatkowej porady, podaj kod i opis tego, co próbujesz osiągnąć za pomocą macierzy odwrotnej, powodzenia!

13

Matrix3.getInverse(): can't invert matrix, determinant is 0 zwykle bywa, gdy albo scale.x, scale.y lub scale.z są 0. Upewnij się, że nie jesteś skalowania obiektu 0.