THREE.jsシェーダーでテクスチャのラッピングを繰り返したい。
元のテクスチャ画像は次のとおりです。
私はそれを4x4回繰り返したいのですが、これは次のようになります:
しかし、次のコードを使用すると、次のようになります。
バーテックスシェーダー:
varying vec2 vUv;
uniform float textRepeat;
void main()
{
// passing texture to fragment shader
vUv = uv * textRepeat;
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
}
フラグメントシェーダー:
varying vec2 vUv;
uniform sampler2D texture;
void main() {
// add origianl texture
gl_FragColor = texture2D(texture, vUv);
}
uniforms
JavaScriptファイルでtextureRepeat
は、時間を繰り返す必要があります。
uniforms: {
texture: {
type: 't',
value: THREE.ImageUtils.loadTexture('image/box.jpg')
},
textRepeat: {
type: 'f',
value: 8
}
}
誰かがここで何が悪いのか教えてもらえますか?