收藏
回答

小程序中的webGL能够像小游戏中一样接入threejs这样的3D框架吗

最新版本小程序的canvas支持了webgl,但是由于小程序的限制,很难接入第三方js库来开发,想问下之后小程序的canvas能力能与小游戏对齐吗?或者支持像three.js这样的第三方3D框架?

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

4 个回答

  • 微信技术专员 - Rex
    微信技术专员 - Rex
    2019-09-07

    可以试试 https://github.com/wechat-miniprogram/threejs-miniprogram

    2019-09-07
    赞同 1
    回复
  • Yann
    Yann
    2019-10-20

    移植了 three.js 到小程序 https://github.com/yannliao/three.js, 可以简单直接接入,目前已经支持orbitControl, GTLFLoader和OBJLoader.  基本介绍可以看文章 https://developers.weixin.qq.com/community/develop/article/doc/00066c4b230b085051592292f5bc13

    2019-10-20
    赞同 2
    回复
  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    2019-05-15

    可以接入,但需要自行做下适配

    2019-05-15
    赞同
    回复 4
    • 朱宝国
      朱宝国
      2019-05-15

      好的

      2019-05-15
      回复
    • 行甫
      行甫
      2019-05-17回复朱宝国

      放弃吧,我试过了,没有window/document,console.log(this)都是undefined.一堆组件依赖全局的window. 推荐你用web-view

      2019-05-17
      回复
    • 朱宝国
      朱宝国
      2019-05-17回复行甫

      是的,没有全局变量,只能强行修改threejs,这个小程序得优化下

      2019-05-17
      回复
    • 行甫
      行甫
      2019-05-17回复朱宝国

      weapp-adapter生成的window也不行,缺失和api变动太大了.要么小游戏,要么web-view

      2019-05-17
      回复
  • 昱霖君คิดถึงคุณ
    昱霖君คิดถึงคุณ
    2019-05-15

    我尝试接入了一下,主要修改一下Texture加载图片的方式就可以用了。可惜开发者工具不支持调试,用手机调太麻烦了

    2019-05-15
    赞同
    回复 15
    • 朱宝国
      朱宝国
      2019-05-15

      不是很多dom的api不能用吗,这里是改weapp-adapter吗?但是小游戏提供的createImage等接口小程序里面又没有,这个怎么弄的呢?

      2019-05-15
      回复
    • 昱霖君คิดถึงคุณ
      昱霖君คิดถึงคุณ
      2019-05-15回复朱宝国

      var query = wx.createSelectorQuery();

      var node=query.select('#webgl').node();

      node.exec((res) => {

      var canvas = res[0].node;

      var gl = canvas.getContext('webgl');

      Renderer = new THREE.WebGLRenderer({ canvas: canvas, context: gl, antialias: true });

      });

      然后推荐用DataTexture,在wxml预先写一个canvas专门用来生成贴图的,然后利用wx.canvasGetImageData()将获取到的像素信息传入,例如new THREE.DataTexture(new Uint8Array(res.data), res.width, res.height, THREE.RGBAFormat);



      2019-05-15
      回复
    • 朱宝国
      朱宝国
      2019-05-15回复昱霖君คิดถึงคุณ

      好的,谢谢

      2019-05-15
      回复
    • silly
      silly
      2019-05-16回复昱霖君คิดถึงคุณ

      你好 按照你这个方法试了一下 但是因为three.js里面的canvas是要addEventListener的 这种DOM操作小程序不支持 所以好像还是不行

      2019-05-16
      回复
    • silly
      silly
      2019-05-16回复昱霖君คิดถึงคุณ

      报错信息

      2019-05-16
      回复
    查看更多(10)
登录 后发表内容