This example展示了如何建立自己的贴图:
function mipmap(size, color) {
var imageCanvas = document.createElement("canvas"),
context = imageCanvas.getContext("2d");
imageCanvas.width = imageCanvas.height = size;
context.fillStyle = "#444";
context.fillRect(0, 0, size, size);
context.fillStyle = color;
context.fillRect(0, 0, size/2, size/2);
context.fillRect(size/2, size/2, size/2, size/2);
return imageCanvas;
}
var canvas = mipmap(128, '#f00');
var textureCanvas1 = new THREE.Texture(canvas, THREE.UVMapping, THREE.RepeatWrapping, THREE.RepeatWrapping);
textureCanvas1.repeat.set(1000, 1000);
textureCanvas1.mipmaps[ 0 ] = canvas;
textureCanvas1.mipmaps[ 1 ] = mipmap(64, '#0f0');
textureCanvas1.mipmaps[ 2 ] = mipmap(32, '#00f');
textureCanvas1.mipmaps[ 3 ] = mipmap(16, '#400');
textureCanvas1.mipmaps[ 4 ] = mipmap(8, '#040');
textureCanvas1.mipmaps[ 5 ] = mipmap(4, '#004');
textureCanvas1.mipmaps[ 6 ] = mipmap(2, '#044');
textureCanvas1.mipmaps[ 7 ] = mipmap(1, '#404');
textureCanvas1.needsUpdate = true;
感谢您的答复。对于记录我想说,无论是画布或图像可以饲料作为mipmap。在我的情况下,问题是由于一些生成的mipmap很糟糕,mipmap金字塔的最后3个级别的大小没有正确的大小,所以整个纹理被视为黑色,作为正确的纹理被丢弃。 –