【问题标题】:Adding materials/textures to an existing THREE.Mesh (three.js)将材质/纹理添加到现有的 THREE.Mesh (three.js)
【发布时间】:2012-09-06 02:16:28
【问题描述】:

我正在寻找能够(从数据库或其他任何地方)提取图像并根据一些用户输入将这些图像叠加到 THREE.Mesh (three.js) 上的能力。我认为我需要做的是:

1) 从图像中创建具有纹理的新材质并添加到几何体中

2) 确定要叠加图像的面

3) 对于每个顶点,确定并分配图像的 UV 坐标

4) 将每个面的 materialIndex 更改为新材质

我只是不确定这是否可行以及如何对现有网格进行正确分配。任何帮助将不胜感激。

更新

有人知道这是否可能/更容易使用另一个库,例如 SceneJS?

【问题讨论】:

  • 如果你展示你尝试过的东西,你会得到更多帮助——最好是作为一个活生生的例子或 jsfiddle。
  • 这是一个 jsfiddle 试图做我上面提到的jsfiddle.net/YnuaZ/2
  • 我现在想知道是否可以为整个网格创建单个透明纹理,然后在适当的地方将图像“绘制”到纹理上。
  • @Jeff R. 你找到解决方案了吗?

标签: webgl three.js scenejs


【解决方案1】:

您不必创建新材质,只需创建新纹理并替换材质的纹理即可。然后你需要设置你需要的顶点的UV。然后将geometry.uvsNeedUpdate设置为true

【讨论】:

  • 图像的数量和每张将覆盖的面孔数量是未知的。我从整个模型的一种材料开始,然后需要对模型的部分进行纹理处理,因为图像是从我的服务器中提取的(根据用户请求)。这就是为什么我需要动态添加材质(我认为),除非我可以为一个材质设置多个纹理。
  • 图片数量有上限吗?
  • 理想情况下,没有最大值,但假设我继续将一张任意设置为 100 张图像。如果我设置一个限制可以吗?
  • 好的,但这仍然不能回答问题 - 如果我有一个网格(构造函数已经调用) - 我想向这个网格添加一个材料,我该怎么做?
猜你喜欢
  • 2012-11-15
  • 2014-01-08
  • 2018-03-12
  • 2013-07-30
  • 2023-03-19
  • 2018-09-22
  • 2020-02-15
  • 1970-01-01
  • 2021-11-21
相关资源
最近更新 更多