9

ゲームに家のモデルがあり、家のジオメトリのマテリアルがいくつかあります。家の壁の素材があり、レンガを表示するためのテクスチャマップ画像があります。

var mat = new THREE.MeshPhongMaterial( { 
    ambient: 0x969696,
    map: THREE.ImageUtils.loadTexture( 'textures/G/G0.jpg' ), 
    overdraw: true,combine: THREE.MultiplyOperation 
} );

上記のように、テクスチャマップはGL_CLAMP私が望むように表示されGL_REPEATます。

私は何をすべきか?

画像が表示されない場合は、こちらを確認してください。

4

3 に答える 3

13

完全に機能する例をhttp://stemkoski.github.com/Three.js/Texture-Repeat.htmlに投稿しました。

コード例の関連部分は次のとおりです。

// for example, texture repeated twice in each direction
var lavaTexture = THREE.ImageUtils.loadTexture( 'images/lava.jpg' );
lavaTexture.wrapS = lavaTexture.wrapT = THREE.RepeatWrapping;
lavaTexture.repeat.set( 2, 2 );
var lavaMaterial = new THREE.MeshBasicMaterial( { map: lavaTexture } );
var lavaBall = new THREE.Mesh( THREE.GeometryUtils.clone(sphereGeom), lavaMaterial );
scene.add( lavaBall );      
于 2012-07-04T12:16:35.883 に答える
4

そこに呼ばれTHREE.RepeatWrappingています。loadTextureデフォルトは(前のリンクのTHREE.ClampToEdgeWrappingctor 関数を参照)。を使用できるかどうかわかりませんcallback( JS では少し奇妙です (createdではなく、thiscreated を指しているように見えます))。サイン:ImageTexture

loadTexture: function ( path, mapping, callback ) {

ローカルでテクスチャに名前を付けて、ラップ モードを手動で設定することをお勧めします。

var t = THREE.ImageUtils.loadTexture( 'textures/G/G0.jpg' );
t.wrapS = t.wrapT = THREE.RepeatWrapping;

実際のコードを見ずにthreejsを使っているとは思えません...

于 2012-07-03T06:48:47.037 に答える