ThreeJs的学习:贴图(三)BufferGeometry

本文详细介绍了如何使用Three.js中的BufferGeometry进行平铺贴图的实践过程,包括加载纹理、设置重复模式及调整UV坐标等内容,适用于WebGL场景构建。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值