我似乎找不到任何有关如何执行此操作的可靠信息,所以我想知道是否有人可以为我指出正确的方向。
我有一个大的精灵表,我们将其命名为textures.png。每个纹理都是 64x64 像素,我需要能够根据这些纹理创建图案。
createPattern() 是一个很棒的函数,但它似乎只需要两个参数:图像源和是否重复。如果您为每个纹理加载单个图像,这很好,但我想知道如何使用textures.png 来做到这一点。
我找到了这个答案https://gamedev.stackexchange.com/questions/38451/repeat-a-part-of-spritesheet-as-background但我不确定接受的答案是指generatePattern()方法,据我所知,这甚至不是画布方法。
提前致谢!
无论我做什么,我的纹理似乎都会被拉伸/缩放到我应用它们的网格的大小。我已经阅读了这个问题的很多答案,似乎没有一个解决方案可以为我解决问题,所以我发布了一个新的解决方案。只是一点信息,
这是我的代码
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) 我在r68上,我正在尝试找一个创建矩形金字塔的例子,我可以应用THREE.MeshFaceMaterial(),大多数示例看起来已经过时并且在我当前的构建中抛出错误.
我只需要能够
提前致谢!