之前学习了Face贴图,自定义着色器贴图等。
在这儿学习BufferGeometry的贴图。而且是平铺
var loader = new THREE.TextureLoader();
var texture = loader.load( "module/6.png" );
texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
texture.repeat.set( 0.008, 0.008 );
var geometry = new THREE.BufferGeometry();
geometry.attributes.normal = new THREE.Float32BufferAttribute([0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1], 3)
geometry.attributes.position = new THREE.Float32BufferAttribute( [0, 0, 0, 0, 300, 0, 300, 300, 0, 300, 0, 0], 3)
geometry.attributes.uv = new THREE.Float32BufferAttribute( [0, 0, 0, 300, 300, 300, 300, 0], 2)
geometry.index = new THREE.Uint16BufferAttribute([1, 0, 3, 3, 2, 1], 1)
var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial( { side: THREE.DoubleSide, map: texture } ) );
scene.add( mesh );
WebGL的提示信息
提示信息1:执行完后,会有下面这样的提示信息。不影响显示图片
提示信息2:如果把geometry2.attributes.uv的itemSize设为3,则会有下面的提示。如果设回2,就正常了,但是会有【提示信息1】的WebGL提示信息。
uv的itemSize设为2,还得先理解什么是uv