ThreeJs的学习:贴图(三)BufferGeometry

之前学习了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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章