0

使用Autodesk Viewer时,贴花看起来不像预期的那样显示。上面的图像的贴花正确显示(不在Autodesk查看器中呈现),并且下面的图像没有贴花(在Autodesk查看器中呈现)。贴图在Autodesk查看器中不显示

为什么会这样,以及如何在Autodesk Viewer中使用贴花?

源文件here

Decal showing

No decal showing

+0

?目前大多数格式的Forge默认都不会导入纹理,这可能是那里的问题。但是对于像Fusion360这样的少数文件格式。有一个解决方法,你可以重新应用纹理到fragId,就像这个[示例]所示(https://github.com/Autodesk-Forge/forge-rcdb.nodejs/blob/master/src/client/viewer.components /Viewer.Extensions/Viewing.Extension.Fader/Viewing.Extension.Fader.Core.js)。 – cyrille

+0

你在链接的例子中解释的代码是什么?我正在使用位于此处的步骤文件https://grabcad.com/library/audio-clock-generator-pcb-1 – sabrehagen

+0

任何更新@cyrille? – sabrehagen

回答

0

这里是我的代码示例。我在Forge上导入了STEP文件,并将RefdFile_1.png文件复制到了我的node.js服务器上。

var attenuationVertexShader =` 
    varying vec2 vUv; 
    varying vec3 vPosition; 
    void main() { 
    vUv = uv; 
    vec4 mvPosition = modelViewMatrix * vec4(position, 1.0); 
    gl_Position = projectionMatrix * mvPosition; 
    } 
    ` ; 

var attenuationFragmentShader = ` 
    varying vec2 vUv; 
    uniform sampler2D checkerboard; 
    void main() { 
    gl_FragColor = texture2D(checkerboard, vec2 (vUv.x * 0.1263, vUv.y * 0.166)) ; 
    } 
` ; 

var dbId =4 ; 
var fragId =0 ; 
var texturePath ="/RefdFile_1.png" ; 
var material =null ; 

oViewer =new Autodesk.Viewing.Private.GuiViewer3D ($("#viewer") [0], {}) ; // With toolbar 
Autodesk.Viewing.Initializer (options, function() { 
    oViewer.initialize() ; 
    oViewer.addEventListener (Autodesk.Viewing.GEOMETRY_LOADED_EVENT, function (event) { 
     oViewer.fitToView (true) ; 
     setTimeout (function() { oViewer.autocam.setHomeViewFrom (oViewer.navigation.getCamera()) ; }, 1000) ; 
     setTimeout (createTexture, 500) ; 
    }) ; 
    oViewer.setGroundReflection (false) ; 
    oViewer.setGroundShadow (false) ; 
    oViewer.load (myurn) ; 
}) ; 

function createTexture() { 
    var loader =new THREE.TextureLoader() ; 
    loader.load (texturePath, function (texture) { 
     texture.minFilter =THREE.LinearMipMapLinearFilter ; // THREE.LinearMipMapLinearFilter 
     texture.magFilter =THREE.LinearFilter ; 

     var uniforms ={ 
      checkerboard: { 
       type: 't', 
       value: texture 
      } 
     } ; 
     material =new THREE.ShaderMaterial ({ 
      uniforms: uniforms, 
      vertexShader: attenuationVertexShader, 
      fragmentShader: attenuationFragmentShader, 
      side: THREE.DoubleSide 
     }) ; 
     oViewer.impl.matman().removeMaterial ('shaderMaterial') ; 
     oViewer.impl.matman().addMaterial ('shaderMaterial', material, true) ; 
     var floor_mesh_render =oViewer.impl.getRenderProxy (oViewer.model, fragId) ; 
     oViewer.model.getFragmentList().setMaterial (fragId, material) ; 
     oViewer.impl.invalidate (true) ; 
    }) ; 
} 

enter image description here

您使用哪种文件格式
+0

谢谢cyrille。你可以用完整的工作代码示例链接到你的存储库,而不仅仅是一个片段? – sabrehagen

+0

此外,您是如何提取'RefdFile_1.png'的? – sabrehagen

+0

喜Cyrille,你可以请链接包含您的工作代码示例的存储库? – sabrehagen