Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我需要根据唯一的对象大小重复纹理_Javascript_Three.js - Fatal编程技术网

Javascript 我需要根据唯一的对象大小重复纹理

Javascript 我需要根据唯一的对象大小重复纹理,javascript,three.js,Javascript,Three.js,让我解释一下 我需要处理多个纹理,我知道如何处理,或者更确切地说,在处理时使用哪种方法 解决方法是在几何体上进行UV映射以重复纹理 问题是我不知道该怎么做,而THREE.js中关于UV映射的文档对我来说非常复杂 假设我有三个具有相同纹理的不同对象。以下是尺寸: (1,1,1)-我需要这个有2x2紫外线网格的东西。AKA在每个面上重复4次。 (1,2,1)-我需要这个在侧面有一个2x4 UV网格,而不是顶部或底部。 (3,1,3)-我需要在顶部和底部有一个6x6的UV网格,但不是侧面 我如何才能不

让我解释一下

我需要处理多个纹理,我知道如何处理,或者更确切地说,在处理时使用哪种方法

解决方法是在几何体上进行UV映射以重复纹理

问题是我不知道该怎么做,而THREE.js中关于UV映射的文档对我来说非常复杂

假设我有三个具有相同纹理的不同对象。以下是尺寸:

(1,1,1)-我需要这个有2x2紫外线网格的东西。AKA在每个面上重复4次。 (1,2,1)-我需要这个在侧面有一个2x4 UV网格,而不是顶部或底部。 (3,1,3)-我需要在顶部和底部有一个6x6的UV网格,但不是侧面

我如何才能不加载3个不同的纹理克隆,并在每个特定的几何体上使用UV贴图根据其各自的大小重复纹理


编辑:我已设置boxbuffergeometry的分段,但纹理不会基于UV重复。现在这是一个相当烦人的问题。我需要在几何体中设置纹理重复/分段/UV。

UV可以按如下方式缩放,假设您使用某种缓冲几何体。将UV缩放2倍将导致纹理平铺两次

var uvs = mesh.geometry.attributes.uv;

for ( var i = 0; i < uvs.count; i++ ) {

  uvs.setXY( i, uvs.getX( i ) * 2, uvs.getY( i ) * 2 );

}
var uvs=mesh.geometry.attributes.uv;
对于(变量i=0;i
完成此操作后,可以安全地合并共享材质的几何体,即使纹理重复了不同的次数


请参见,从three.js r96开始。

UV可以按如下方式缩放,假设您使用的是某种缓冲几何体。将UV缩放2倍将导致纹理平铺两次

var uvs = mesh.geometry.attributes.uv;

for ( var i = 0; i < uvs.count; i++ ) {

  uvs.setXY( i, uvs.getX( i ) * 2, uvs.getY( i ) * 2 );

}
var uvs=mesh.geometry.attributes.uv;
对于(变量i=0;i
完成此操作后,可以安全地合并共享材质的几何体,即使纹理重复了不同的次数


请看,从three.js r96开始。

我认为您的问题和上一个问题对于堆栈溢出格式来说可能过于开放了。。。考虑使用UV通常在建模工具中完成,结果导出到类似three.js的引擎中。你可以缩放UVS以迫使纹理对不同的几何图形有不同的重复,但是它可能需要很多代码来获得你在建模工具中得到的相同的结果……也许我应该考虑下一个问题,我没有意识到这一点。此外,我正在使用Blender处理更复杂的几何图形,但因为它是一个原始的立方体几何图形,所以我想在Blender中测试一下,Blender会有点过头,因为我在Blender中没有太多使用UV。我想你的问题和上一个问题对于堆栈溢出格式来说可能太开放了。。。考虑使用UV通常在建模工具中完成,结果导出到类似three.js的引擎中。你可以缩放UVS以迫使纹理对不同的几何图形有不同的重复,但是它可能需要很多代码来获得你在建模工具中得到的相同的结果……也许我应该考虑下一个问题,我没有意识到这一点。此外,我还使用Blender处理更复杂的几何图形,但因为它是一个原始的立方体几何图形,所以我想对它进行测试,Blender会有点过分,因为我在Blender中并没有太多使用UV。你们这些使用overflow的家伙真的知道你们在做什么!好极了!谢谢!我现在将把它变成一个函数……你们这些溢出上的家伙真的知道你们在做什么!好极了!谢谢!我现在将把它变成一个函数。。