首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ThreeJS Turn纹理

ThreeJS Turn纹理
EN

Stack Overflow用户
提问于 2019-11-27 22:13:25
回答 1查看 41关注 0票数 0

我用画布创建了纹理,但我有一点小问题。我不能像在图像中那样旋转我的纹理。我该怎么做呢?

代码语言:javascript
运行
复制
   setTexture = (name, font = 20) => {    

      const canvas = window.document.createElement("canvas");
      canvas.width = 256;
      canvas.height = 128;
      const ctx = canvas.getContext("2d");

      ctx.fillStyle = "white";
      ctx.fillRect(0, 0, canvas.width, canvas.height);
      ctx.font = `${font}pt Arial`;
      ctx.fillStyle = "black";
      ctx.textAlign = "center";
      ctx.textBaseline = "middle";
      ctx.fillText(
          name || "unnamed",
          canvas.width / 2,
          canvas.height / 2
      );

      const texture = new THREE.Texture(canvas);
      texture.wrapS = THREE.RepeatWrapping;
      texture.repeat.x = -1;
      texture.needsUpdate = true;
      return texture;
  };

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-28 03:23:48

如果要旋转纹理,可以更新几何体中的UV,也可以使用texture.rotation修改器。

代码语言:javascript
运行
复制
const texture = new THREE.Texture(canvas);
texture.rotation = Math.PI; // 180 deg in radians

如果旋转未围绕所需的点旋转,则可以将texture.center设置为[0.0, 1.0]范围内的另一个值。

代码语言:javascript
运行
复制
const texture = new THREE.Texture(canvas);
texture.center = new THREE.Vector2(0.5, 0.7);
texture.rotation = Math.PI;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59072119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档