Texture repeat with ShaderMaterials in three.js
我对均匀纹理及其重复存在问题,因为:
1 2 3 4 | tex.wrapS = THREE.RepeatWrapping; tex.wrapT = THREE.RepeatWrapping; tex.repeat.x=100; tex.repeat.y=100; |
它不起作用。 因此,我在网上搜索了一个解决方案,并在giuthub上找到了以下线程:
https://github.com/mrdoob/three.js/issues/787
threadstarter与我有同样的问题,但是不幸的是,答案的链接不再起作用。
我要重复均匀的纹理时该怎么办?
您是否正在编写自己的片段着色器? 如果是这样,您需要将UV坐标乘以重复值,例如
1 2 3 4 5 6 7 | uniform sampler2D baseTexture; varying vec2 vUv; void main() { gl_FragColor = texture2D( baseTexture, vUv * 100 ); } |
如果不是,则http://stemkoski.github.io/Three.js/Texture-Repeat.html包含一个纹理重复的示例,例如
1 2 3 4 5 | // 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 } ); |