Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Autodesk forge 贴花未显示在Autodesk Viewer中_Autodesk Forge_Autodesk Viewer_Autodesk Model Derivative - Fatal编程技术网

Autodesk forge 贴花未显示在Autodesk Viewer中

Autodesk forge 贴花未显示在Autodesk Viewer中,autodesk-forge,autodesk-viewer,autodesk-model-derivative,Autodesk Forge,Autodesk Viewer,Autodesk Model Derivative,使用Autodesk Viewer时,贴花似乎不会按预期显示。上面的图像贴花显示正确(未在Autodesk Viewer中渲染),下面的图像没有贴花(在Autodesk Viewer中渲染) 为什么会这样?如何使贴花在Autodesk Viewer中工作 源文件 这是我的代码示例。我在Forge上导入了STEP文件,并在node.js服务器上复制了RefdFile_1.png文件 var attenuationVertexShader =` varying vec2 vUv; vary

使用Autodesk Viewer时,贴花似乎不会按预期显示。上面的图像贴花显示正确(未在Autodesk Viewer中渲染),下面的图像没有贴花(在Autodesk Viewer中渲染)

为什么会这样?如何使贴花在Autodesk Viewer中工作

源文件


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

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) ;
    }) ;
}

您使用的是哪种文件格式?Forge默认情况下不会导入当前大多数格式的纹理,这可能是存在的问题。但对于Fusion360这样的少数文件格式,它将不起作用。有一个解决方法,你可以像上面所示,将纹理重新应用到fragId上。你在链接示例中解释的代码是什么行号?我正在使用位于此处的step文件@cyrille?有任何更新吗?我将为您编写一个示例-谢谢cyrille。你能不能用完整的工作代码示例链接到你的存储库,而不仅仅是一个片段?此外,你是如何提取
RefdFile_1.png
?嗨,西里尔,你能链接到包含你的工作代码示例的存储库吗?嗨@sabrehagen,我会的,但这周要去旅行-再给我几天时间