Текстуры исчезают из плоских сеток при переводе измерения z - PullRequest
0 голосов
/ 21 октября 2018

Я обнаружил, что когда я строю самолет Mesh с примененным к нему Texture, если я перевожу измерение z либо положительно, либо отрицательно (чтобы избежать z-бой), текстура исчезает.

Код, который работает (значение z не переведено):

var material = new THREE.MeshBasicMaterial({ map: texture, transparent: true, opacity: 0.5 });
var geometry = new THREE.PlaneBufferGeometry(1000, 1000);
geometry.translate( 2, 2, 0 ); // when the z value is 0 the stripe texture will show 
var stripe = new THREE.Mesh(geometry, material);
scene.add(stripe);

Код, который не работает (значение z переводится как положительно, так и отрицательно):

var material = new THREE.MeshBasicMaterial({ map: texture, transparent: true, opacity: 0.5 });
var geometry = new THREE.PlaneBufferGeometry(1000, 1000);
geometry.translate( 2, 2, 2 ); // when the z value is translated either positively or negatively (other than 0) the stripe texture will not show up
geometry.translate( 2, 2, -2 ); // this one doesn't work either
var stripe = new THREE.Mesh(geometry, material);
scene.add(stripe);  

Я использую OrthographicCamera с передним усечением 0 и задним усечением 2000, поэтому положительные значения должны отображаться .Когда я изменяю переднюю часть усечённого на -100 (хотя я слышал, что следует избегать отрицательного значения переднего усечённого, хотя я не уверен почему), тогда полосы do появляются, когда размер zэто значение, отличное от 0. Что здесь происходит ??

Обновление: Вот рабочая скрипка , где вы можете изменить значение z в функции переводаи убедитесь сами в этом.

...