如何使用three.js编写正确的重复纹理

Lau*_*ard 10 textures repeat material three.js texture-wrapping

我搜索在模型上重复纹理.在所有的例子或问题上,我发现只有这样:

var lavaTexture = THREE.ImageUtils.loadTexture( 'images/lava.jpg' );
lavaTexture.wrapS = lavaTexture.wrapT = THREE.RepeatWrapping;
lavaTexture.repeat.set( 3, 3 );
var lavaMaterial = new THREE.MeshBasicMaterial( { map: lavaTexture } );
Run Code Online (Sandbox Code Playgroud)

我理解这一点,但是当材料写成这样:

Wood: new THREE.MeshPhongMaterial( {
   color: 0xffffff,
   specular:0xffffff,
   shininess: 10,
   map: new THREE.ImageUtils.loadTexture ( "models/macabann/chataigner.jpg"),
// not sure as right
   WrapS : THREE.RepeatWrapping,
   WrapT : THREE.RepeatWrapping,
   maprepeat : [2,2],

   envMap: textureCube,
   combine: THREE.MixOperation,
   reflectivity: 0.05
} )
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我会搜索如何以这种格式写出这个.谢谢你的回答.

Wes*_*ley 10

您希望在模型上重复纹理.为此,请遵循以下模式:

var loader = new THREE.TextureLoader();

var texture = loader.load( 'myTexture.jpg', function ( texture ) {

    texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
    texture.offset.set( 0, 0 );
    texture.repeat.set( 2, 2 );

} );

var material = new THREE.MeshPhongMaterial( {

   color: 0xffffff,
   specular:0x111111,
   shininess: 10,
   map: texture,
   . . .

} );
Run Code Online (Sandbox Code Playgroud)

编辑:更新为three.js r.84