收藏
回答

微信小程序使用threejs渲染,整个canvas都是漆黑的怎么办?

用的是 npm i threejs-miniprogram ,然后直接把里面的 build/index.js 复制出来了。(或者大佬们有没有什么文章推荐一下?找了很久没找到不包含widnow的loader包)

代码如下:

// 引入复制出来的index文件
import {createScopedThreejs} from '../../libs/index.js';
...
// 在 lifetimes 的 ready 里面执行
 const qeury = wx.createSelectorQuery();
      qeury.select('#c').node().exec(res => {
        let canvasId = String(res[0].node.id);
        // canvas = THREE.global.registerCanvas(canvasId, res[0].node)
        this.setData({
          canvasId
        })
        const THREE = createScopedThreejs(res[0].node);
        debugger
        scene = new THREE.Scene();


        const lightness = new THREE.HemisphereLight(0xffffff0x444444);
        lightness.position.set(01000);
        scene.add(lightness);
        const shadowLight = new THREE.DirectionalLight(0xffffff);
        shadowLight.position.set(02010);
        scene.add(shadowLight);


        const geometry = new THREE.BoxGeometry(505050);
        const material = new THREE.MeshBasicMaterial({
          color0x0000ff
        });
        const cube = new THREE.Mesh(geometry, material);
        scene.add(cube);
        const renderer = new THREE.WebGLRenderer();
        wx.getSystemInfo({
          success(res) {
            renderer.setPixelRatio(res.pixelRatio);
          }
        })
        renderer.setSize(res[0].node.width, res[0].node.height);
})

不知道为什么整个canvas都是黑的,

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

2 个回答

  • 养鱼呢?给我 何先生
    养鱼呢?给我 何先生
    2023-11-16

    没事了,render方法没有执行,而且执行顺序可能有点问题

    2023-11-16
    有用
    回复
  • 大山
    大山
    2023-11-15

    要实现什么功能?

    2023-11-15
    有用
    回复 1
    • 养鱼呢?给我 何先生
      养鱼呢?给我 何先生
      2023-11-15
      我是想引入一个glft的3d建模,能左右滑动旋转起来就行了,但是现在连模型都展示不出来,用内置的方法生成的模型也看不见。灯光和模型自己的颜色也都加上了
      2023-11-15
      回复
登录 后发表内容