Я обнаружил, что когда я строю самолет 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 в функции переводаи убедитесь сами в этом.