Я хочу повторить обертывание текстуры в шейдере THREE.js.THREE.js повторить обертывание текстуры в шейдере
оригинальная текстура изображение:
Хочу повторить раз 4x4, который будет выглядеть так:
Но с помощью следующего кода, оказывается до:
Vertex шейдеров:
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
}
}
Может кто-нибудь сказать меня здесь не так?
Единственное решение, которое работает для меня с ShaderMaterial и пользовательской единой картой. – Jordan
У этого будут проблемы, хотя с картированием mip я думаю, почему другой способ не работает? – pailhead