Optimization 使用不同UV的单个对象的多个材质

Optimization 使用不同UV的单个对象的多个材质,optimization,three.js,3d-model,Optimization,Three.js,3d Model,问题的史前史: 链接到相关(关于在某些编辑器中的UV展开,如下面提到的模型的3dsmax) 我有一个单一项目的模型。它是从3DS Max导出的(带有纹理坐标) UVW和对象的屏幕截图。UVW的无用部分分组在右上角 我将此纹理用作凹凸贴图(调整大小以减少问题中的位置,原始大小为512x512) 此模型使用THREE.objmtloader加载,并使用threejs在浏览器中呈现。当然,如果我需要重用此贴图来添加另一个需要对象所有部分的纹理,则此纹理和UVW将变得无用 现在,请不要离开3DS M

问题的史前史:

链接到相关(关于在某些编辑器中的UV展开,如下面提到的模型的3dsmax)

我有一个单一项目的模型。它是从3DS Max导出的(带有纹理坐标)

UVW和对象的屏幕截图。UVW的无用部分分组在右上角

我将此纹理用作凹凸贴图(调整大小以减少问题中的位置,原始大小为512x512)

此模型使用
THREE.objmtloader
加载,并使用threejs在浏览器中呈现。当然,如果我需要重用此贴图来添加另一个需要对象所有部分的纹理,则此纹理和UVW将变得无用

现在,请不要离开3DS Max,因为这个问题与在那里构建模型无关

现在让我们想象一个立方体(简单地说就是
THREE.BoxGeometry
),它存在于场景中的某个地方(
scene.add(立方体);

我想在立方体的左边画一个图像。在右侧,我需要放置一个凹凸贴图,在顶部将是一个
光照贴图
。另一方面,纹理贴图可以以某种方式组合或只是空的-我想这不是关键点

像这样:

但在这种情况下,每张地图只占可用位置的1/16。像这样:

当然,可以移动一些块,每个贴图将获得高达1/9的可用空间,但是我需要每个纹理的良好质量,所以像这样为每个纹理使用整个块(1/1)将是非常好的

例如,纹理可以是512x512,凹凸贴图可以平铺(请参见史前图像)

问题是:

  • 要使用每个纹理的所有可用空间,我需要执行哪些步骤
  • 什么技术可以帮助实现这样的结果
  • 最佳实践/指南/建议/文章链接/示例-指向正确方向的内容
是否可以对单个对象使用多个不同的UWV来添加不同的纹理

Three.js材质基本上支持最多2个UV通道,但无法控制给定纹理使用哪个通道。第一个通道用于平铺纹理(漫反射、粗糙度等)。第二个用于不可平铺(AO、光照贴图)

也就是说,使用自定义几何体和自定义材质,可以使用任意多个UV通道。唯一的限制是着色器中可用的最大属性(至少8个)

3DS Max对UV通道的数量也没有限制

主要问题是以同样支持多个UV通道的格式导出/导入模型。不要

是否可以仅对部分模型使用UWV以避免空间浪费


您可以简单地为不需要纹理的零件使用不同的材料

我更新了一个问题,以退出3dsmax和obj格式。请您指向一篇文章/文档或添加一些关于多材质/多UV的示例,好吗?