Неправильно отображаются лица модели Collada в three.js

После импорта модели collada в three.js некоторые грани модели видны только изнутри модели, а не снаружи.

Как я могу исправить проблему с этими лицами?

Возможно ли, чтобы лица модели были видны с обеих сторон?

2 ответа

Причина, по которой он не работает должным образом, заключается в том, что в вашем файле установлен флаг double_sided:

<effect id="material_3_4_0-effect" name="material_3_4_0-effect">
   <profile_COMMON>
      ...
      <extra>
         <technique profile="GOOGLEEARTH">
            <double_sided>1</double_sided>
         </technique>
      </extra>
   </profile_COMMON>
</effect>

ColladaLoader three.js не ищет этот флаг и устанавливает doubleSided на материал так, как должен. Я подал ошибку для проблемы.

Чтобы исправить неправильную ориентацию граней, загрузите модель в программу трехмерного моделирования, такую ​​как Blender, и отразите нормали граней, которые отображаются неправильно.

Сетки Three.js имеют свойство двусторонней настройки, которое вы можете установить, что обычно позволяет отображать модель с гранями, видимыми с обеих сторон.

Вот краткий пример того, как загрузить меш коллады и включить двусторонний рендеринг.

var loader = new THREE.ColladaLoader();
loader.load('path/to/mesh.dae', loadModel);

function loadModel(geom) {
    var mesh = new THREE.Mesh(geom, new THREE.MeshBasicMaterial());
    mesh.doublesided = true;
    scene.add(mesh);
}

И живой пример: http://jsfiddle.net/r7Yq2/

Другие вопросы по тегам