小编Roh*_*nde的帖子

通过 createPattern() 使用精灵表

我似乎找不到任何有关如何执行此操作的可靠信息,所以我想知道是否有人可以为我指出正确的方向。

我有一个大的精灵表,我们将其命名为textures.png。每个纹理都是 64x64 像素,我需要能够根据这些纹理创建图案。

createPattern() 是一个很棒的函数,但它似乎只需要两个参数:图像源和是否重复。如果您为每个纹理加载单个图像,这很好,但我想知道如何使用textures.png 来做到这一点。

我找到了这个答案https://gamedev.stackexchange.com/questions/38451/repeat-a-part-of-spritesheet-as-background但我不确定接受的答案是指generatePattern()方法,据我所知,这甚至不是画布方法。

提前致谢!

html canvas repeat sprite-sheet

5
推荐指数
1
解决办法
640
查看次数

如何在 Three.js 中重复纹理而不拉伸?

无论我做什么,我的纹理似乎都会被拉伸/缩放到我应用它们的网格的大小。我已经阅读了这个问题的很多答案,似乎没有一个解决方案可以为我解决问题,所以我发布了一个新的解决方案。只是一点信息,

  • 我的纹理都是 64x64 像素
  • 我正在预加载所有纹理
  • 我正在使用 Web GL 渲染器

这是我的代码

makeTestObject:function()
{
    var scope = this,
        tileGeometry = new THREE.BoxGeometry(TILE_SIZE , TILE_HEIGHT , TILE_SIZE),
        texture = new THREE.Texture(preloadedImageObject),
        textureMaterial = new THREE.MeshLambertMaterial({map:texture}),
        tile = new THREE.Mesh(tileGeometry , new THREE.MeshFaceMaterial(
        [
            textureMaterial, // +x
            textureMaterial, // -x
            textureMaterial, // +y
            textureMaterial, // -y
            textureMaterial, // +z
            textureMaterial // -z
        ]));

    texture.wrapS = THREE.RepeatWrapping;
    texture.wrapT = THREE.RepeatWrapping;

    tile.position.y = BASE_HEIGHT * 2;
    tile.castShadow = true;
    tile.receiveShadow = true;
    texture.needsUpdate = true;
    scope.scene.add(tile); …
Run Code Online (Sandbox Code Playgroud)

javascript textures texture-mapping three.js

4
推荐指数
1
解决办法
6126
查看次数

如何在three.js r68中制作矩形金字塔?

我在r68上,我正在尝试找一个创建矩形金字塔的例子,我可以应用THREE.MeshFaceMaterial(),大多数示例看起来已经过时并且在我当前的构建中抛出错误.

我只需要能够

  • 纹理每个面孔
  • 旋转它使矩形面位于-y位置

提前致谢!

javascript geometry three.js

2
推荐指数
2
解决办法
5759
查看次数