在https://threejs.org/editor/中平铺纹理的正确方法是什么? 我用一种名为m1的材料创建了一个平面,并尝试将材质脚本编辑为:
function update( event ) {
m1.wrapS = texture.wrapT = THREE.RepeatWrapping;
m1.repeat.set( 2, 2 );
}
答案 0 :(得分:2)
这并不难,但你没有ui来访问这个参数。所以你需要做的是创建一个附加到任何对象的脚本(最好保持场景顺序,以便将它附加到材质上),它应该像:
// To access scene material we pick it's parent object
var myObject = scene.getObjectByName( "ObjectName" );
// We need to set the Wrappers like THREE.RepeatWrapping in order to make it happen.
myObject.material.map.wrapS = myObject.material.map.wrapT = THREE.RepeatWrapping;
// Now we only need to set a new map.repeat
myObject.material.map.repeat.set( 2, 2 );
function update( event ) {
}
正如您所看到的,代码未设置为 update(),因为如果您确实希望每三次更新中的材料都会发生变化,那么如果此值为不会改变。