Подтвердить что ты не робот

Материал каркаса Three.JS - все полигоны против просто краев

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

Эта скрипка с использованием release 54 отображает только внешние края объекта, нарисованного с помощью каркасного материала: http://jsfiddle.net/ksRyQ/ или как изображено здесь, если это определенная платформа (я нахожусь на mac chrome):

enter image description here

С другой стороны, когда я запускаю один и тот же код локально, используя более новую версию r61, я вижу каждый край многоугольника, как в:

enter image description here

код в обоих случаях прост:

material = new THREE.MeshBasicMaterial({
    color: 0xff0000,
    wireframe: true
});

Я уверен, что смогу сделать куб из строк или что-то в этом роде, но я предпочел бы действительно понять проблему.

Любые подсказки? Есть ли настройка для этого или что-то, что можно изменить? Во-вторых, вы заметите, что прямо сейчас, когда код использует обработчик холста, хотя я планирую использовать средство визуализации webGL, но одно и то же явление верно для обоих (хотя есть и другие отличия).

4b9b3361

Ответ 1

Если вы хотите отобразить каркас заданного geometry, вы можете использовать этот шаблон:

var geo = new THREE.EdgesGeometry( geometry ); // or WireframeGeometry( geometry )

var mat = new THREE.LineBasicMaterial( { color: 0xffffff, linewidth: 2 } );

var wireframe = new THREE.LineSegments( geo, mat );

scene.add( wireframe );

WireframeGeometry будет отображать все ребра. EdgesGeometry будет отображать только жесткие ребра.

Также см. этот связанный ответ о том, как отображать как модель, так и ее каркас.

EDIT: обновлено до трёх .js.r.82