【问题标题】:A couple of textures into one in Blender在 Blender 中将几个纹理合二为一
【发布时间】:2013-07-17 05:06:26
【问题描述】:

我在 Blender 中有一些模型。我愿意:

  1. 将几个不同的纹理连接成一个并保存为位图
  2. 为这些连接的纹理制作 UV 映射

我需要为 OpenGL 中的纹理模型解决这个问题。我有数据结构,可以将一个纹理绑定到一个模型中,所以我希望每个模型都有一个纹理。我知道我可以使用 Texture GL_TEXTURE_xD_ARRAY,但我不想让我的项目复杂化。我知道如何在 Blender 中进行简单的 UV 映射。

我的问题:

  • 我可以只在 Blender 中执行 1. 和 2. 阶段吗?
  • Blender 烘焙技术是我正在寻找的吗?
  • 是否有一些教程显示如何做到这一点? (针对这一特定问题)
  • 也许有人建议我另一种 Blender 技术(或 OpenGL 解决方案)

【问题讨论】:

    标签: opengl blender texturing uv-mapping


    【解决方案1】:
    1. 将几个不同的纹理连接成一个并保存为位图
    2. 为这些连接的纹理制作 UV 映射

    你的意思是生成纹理图集?

    我可以只在 Blender 中执行 1. 和 2. 阶段吗?

    没有。但它肯定是一个广受欢迎的插件。

    Blender Bake 技术是我正在寻找的吗?

    没有。 Blender Bake 使用渲染过程生成纹理内容。例如,您可能在一个静态对象上有一个纹理,您可以将全局照明烘焙到其中;然后,不是为飞行中的每一帧重新计算 GI,而是将纹理用作照明项的源(它的作用类似于缓存)。其他应用程序正在从 Blender 的程序材料中为游戏引擎生成纹理。

    也许有人建议我另一种 Blender 技术(或 OpenGL 解决方案)

    我认为纹理数组确实是最好的解决方案,因为它也不会对包装/重复的纹理造成问题。

    【讨论】:

    • 那么,最好的解决方案是纹理数组,我必须在 Blender 中为模型的每个纹理准备 UV 映射,并使用 GL_TEXTURE_3D_ARRAY 方法将所有纹理加载到 OpenGL 应用程序中?我是否必须为每个纹理使用 glActiveTexture() 并且着色器代码会更复杂(许多纹理采样器)?
    • @CppMonster:glActiveTexture 做了一些完全不同的事情:它允许您在多个纹理目标中加载多个纹理。这与纹理数组不同,在纹理数组中,一个纹理(目标)中有多个可用的 2D 图像。着色器代码实际上比使用多个纹理要简单得多。您会看到,您只需选择要由第三个纹理坐标组件使用的数组切片/层中的哪一个。所以你有 ST(==来自 Blender 的 UV)作为数组中的位置,第三个分量 R 指定层索引。
    • 您的回答已满。我知道我需要准备 OpenGL 代码和我的纹理(通过这篇文章和 SuperBible 第 5 本书),看来我的代码不需要我想的那么多更改。谢谢。
    【解决方案2】:

    另一种可能是使用投影绘画。 Blender 中的一个对象可以有多个 uvmap,如果导入它不会创建每个 uvmap,那么您可能需要手动对齐每个。然后创建一个新的 uvmap,将整个模型放置在一个图像上。

    在纹理绘画模式下,您可以使用投影绘画将一个 uvmap 中的材质用作画笔,以在新图像上绘画。

    【讨论】:

      猜你喜欢
      • 2014-10-05
      • 1970-01-01
      • 2016-04-27
      • 2019-02-07
      • 2022-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      相关资源
      最近更新 更多