Autodesk Forge Viewer с использованием материала с текстурой изображения
Мне нужна помощь по использованию материала с текстурой изображения Использование файлов просмотра 2.9. Я вижу, что он использует версию 71 of three.js
Я создал собственную форму. Квадрат из вершин
Я хотел бы использовать материал текстуры изображения
var shininess = 50, specular = 0x333333, bumpScale = 1, shading = THREE.SmoothShading;
var imgTexture = THREE.ImageUtils.loadTexture( "textures/UV_Grid_Sm.jpg" );
imgTexture.wrapS = imgTexture.wrapT = THREE.RepeatWrapping;
imgTexture.anisotropy = 16;
var material = new THREE.MeshLambertMaterial( { map: imgTexture, color: 0xffffff, shading: shading } );
viewer.impl.matman().addMaterial("FloorMaterial", material, true);
...
// Convert Array to Vector Array and World Space
var vectorWorldArray = convertFloatArrayToVectorWorldArray(viewer,
matrixWorld, floatArray);
var shape = new THREE.Shape(vectorWorldArray);
var geometry = new THREE.ShapeGeometry(shape);
geometry.faces.push( new THREE.Face3( 0, 1, 2 ) );
geometry.faces.push( new THREE.Face3( 2, 3, 0 ) );
geometry.computeFaceNormals();
var mesh = new THREE.Mesh(geometry, material);
var scene = viewer.impl.scene;
// mesh.translateZ( 10 );
scene.add(mesh);
Текстура просто выглядит как все черное
Единственное, что появляется в chrome (Версия 52.0.2743.116 м) [.Offscreen-For-WebGL-0B70AB98] ПРЕДУПРЕЖДЕНИЕ О ПОДАЧЕ: нет текстуры, привязанной к устройству 0
Я знаю, что текстура существует
Существует ли более простой / правильный способ добавления материала текстуры изображения?
1 ответ
Решение
Похоже, Ламберту нужен свет, отличный от того, что приходит со зрителем
Я перешел на использование BasicMaterial, теперь моя текстура появляется.
var material = new THREE.MeshBasicMaterial( { map: imgTexture, color: 0xffffff, shading: shading } );