收藏
回答

VKSession中模型部分纹理丢失,显示黑色

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug VKSession 微信iOS客户端 8.0.18 2.22.0
  1. 期望为右侧纹理,结果为左侧黑色
  2. 代码是在官方的vksession代码的基础上,修复gltf模型加载纹理问题,但是发现部分纹理会显示黑色(部分模型纹理可正常),https://file.ljcdn.com/bim-oss/20220304/1646383982124scene100.gltf;使用该模型(很普通的平面+普通纹理)很容易复现
  3. 纹理分辨率是要求的2的次幂*2的次幂
  4. 问题大致是 renderGL(frame){} 函数的问题,即为摄像头纹理绘制到canvas 导致模型纹理丢失
  5. 其实和gltf无关,和textureloader也无关,纹理其实已经正常加载了,但是renderGL会将该纹理冲掉


回答关注问题邀请回答
收藏

4 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    2022-03-18

    已知问题,会尽快修复

    2022-03-18
    有用
    回复 6
    查看更多(1)
  • 枫
    2022-11-26

    真的无语 最简单的模型 贴图纹理都变黑

    2022-11-26
    有用
    回复
  • Vegas柠檬🍋
    Vegas柠檬🍋
    2022-06-21

    这个情况我也遇到过,是通过给模型增加一个自发光然后重新导出修复的

    2022-06-21
    有用
    回复
  • 贩甜的雪子💫
    贩甜的雪子💫
    2022-04-02

    我也遇到了这个问题,怀疑是贴图格式导致的,我测了几个模型,显示黑色这个贴图是png格式的,能显示正常那个是jpg

    然后我再做阴影效果的时候发现,创建底部平面接受阴影设置就会让颜色正常显示!

    下面是用的透明阴影。你可以尝试一下是否能成

      var planeGeometry = new THREE.PlaneGeometry(100, 60, 10, 10);
      var planeMaterial = new THREE.ShadowMaterial();
      planeMaterial.opacity = 0.2;
      var plane = new THREE.Mesh(planeGeometry, planeMaterial);
      plane.matrixAutoUpdate = false;
      plane.matrix.fromArray(hitTestRes[0].transform)
    
      plane.opacity = 0
      scene.add(plane);
      plane.receiveShadow = true;
    

    ar加阴影的文章如下:有兴趣可以看一下https://blog.csdn.net/weixin_43805502/article/details/123913679

    2022-04-02
    有用
    回复 2
    • Null
      Null
      2022-04-02
      真实场景是渲染文字,用canvas2d生成图片,然后贴图到geometry上面,第二个场景是光标是图片,贴图到geometry上面。都是不应该去生成动态阴影的。AR场景里面不建议加动态阴影,增加很大的算力。
      2022-04-02
      回复
    • 青石
      青石
      2022-11-29
      png 变 jpg 好用
      2022-11-29
      回复
登录 后发表内容