2015-07-22 4 views
1

Что не так в примере ниже?Почему текстурированные лица three.js выглядят искаженными при повороте?

Лица выглядят искаженными, когда они не параллельны окну просмотра.

http://jsfiddle.net/mneja2mr/

geometry = new THREE.CubeGeometry(10, 10, 10); 

    texture=new THREE.ImageUtils.loadTexture(dataUrl);           

    material = new THREE.MeshBasicMaterial({ 
     map: texture 
    }); 

    mesh = new THREE.Mesh(geometry, material); 
    scene.add(mesh); 
+0

вы определенно хотите использовать CanvasRenderer? вы можете использовать WebGLRenderer. – gaitat

+0

Пример работает с WebGLRenderer. Я чувствую себя глупо :-), но у меня такая же проблема на странице с WebGLRenderer, где я устанавливаю позиции вершин плоскости - я полагаю, мне не удалось сделать вершины копланарными из-за некоторого вращения ... Я разветвил существующий jsfiddle, чтобы проверить его, не заметив тип визуализации .. :-) – luxigo

+0

также обратите внимание, что ваша текстура не имеет значения 2, и, возможно, у Canvas renderer есть проблема с этим. Если это так, вы можете открыть проблему. – gaitat

ответ

0

CanvasRenderer не интерполировать атрибуты правильно для перспективных камер; это разбиение текстуры. Если вам нужно сделать с CanvasRenderer, быстрое исправление подразделить геометрии: http://jsfiddle.net/41g0ffb3/2/

geometry = new THREE.CubeGeometry(10, 10, 10, 10, 10, 10);