three.js如何设置canvas纹理尺寸

发布于 2022-09-06 03:09:35 字数 1158 浏览 16 评论 0

比如我有一个 通过 extrudeGeometry 生成的立体几何
然后有一个canvas纹理

function textures () {
    var canvas = document.createElement( 'canvas' );
    var ctx = canvas.getContext( '2d' );

    canvas.width = 30
    canvas.height = 30

    var colors = {
      border: '#3c3443',
      top: '#9d94a7',
      bottom: '#796e8c'
    }

    ctx.fillStyle = colors.border
    ctx.fillRect(0, 0, 30, 30)
    ctx.fillStyle = colors.top
    ctx.fillRect(2, 2, 12, 12)
    ctx.fillStyle = colors.top
    ctx.fillRect(16, 2, 12, 12)
    ctx.fillStyle = colors.bottom
    ctx.fillRect(2, 16, 12, 12)
    ctx.fillStyle = colors.bottom
    ctx.fillRect(16, 16, 12, 12)

    var canvasTexture = new THREE.Texture(canvas);
    canvasTexture.wrapS = THREE.RepeatWrapping;
    canvasTexture.wrapT = THREE.RepeatWrapping;
    canvasTexture.needsUpdate = true;
    
    return canvasTexture;
  }

把纹理加到这个几何材质上

var material = new THREE.MeshLambertMaterial({map: textures()})

最后生成的纹理很小
图片描述

怎么设置才能放大纹理呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遗心遗梦遗幸福 2022-09-13 03:09:36

通过设置uv可以改变纹理的缩放比例,修改geometry对象的faceVertexUvs,具体uv的设置方法可以参照three.js官方文档。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文