【问题标题】:Autodesk forge viewer using a material with a image texture使用具有图像纹理的材质的 Autodesk Forge 查看器
【发布时间】:2016-12-20 08:56:12
【问题描述】:

我在使用具有图像纹理的材质方面需要帮助 使用 2.9 查看器文件。 我看到它使用了 three.js 的第 71 版

我创建了一个自定义形状。一个由顶点组成的正方形

我想使用图像纹理材质

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 m) [.Offscreen-For-WebGL-0B70AB98]渲染警告:没有纹理绑定到单元 0

我知道纹理存在

是否有更简单/正确的添加图像纹理材料的方法?

【问题讨论】:

    标签: autodesk-forge autodesk-viewer


    【解决方案1】:

    看起来兰伯特需要一盏灯而不是查看器自带的灯

    我切换到使用 BasicMaterial 现在我的纹理出现了。

    var material = new THREE.MeshBasicMaterial( { map: imgTexture, color: 0xffffff, shading: shading } );
    

    【讨论】:

      猜你喜欢
      • 2017-05-06
      • 2018-05-13
      • 2021-02-17
      • 2020-11-18
      • 2021-11-12
      • 1970-01-01
      • 2017-01-11
      • 2018-03-18
      • 2021-09-19
      相关资源
      最近更新 更多