纹理拼贴 - 避免平铺外观?

时间:2010-10-11 02:46:28

标签: 3d textures

我正在开发一个可在不同尺寸屏幕上运行的应用程序,我必须生成一个纹理(如羊皮纸),它将填满屏幕的所有可用空间。

一个非常简单的方法是包含一个小的位图(256 x 256?)的纹理样本,并在所有可用区域重复它,但这最终会看起来平铺并且非常令人失望。

是否有任何方法可以生成看起来不平铺的大平铺纹理区域?

由于

3 个答案:

答案 0 :(得分:0)

我最好的建议(如果你去平铺路线)是找到一个足够小的纹理样本,以满足你的内存需求,但抛光到足以在平铺时看起来不“平铺”。当您平铺任何图像时,它将看起来是平铺的,除非边框可以在任何一侧无缝地相互流动。也就是说,对于在中间稍微变化的所有边的共同“边缘”可以在很大程度上使图像看起来不“平铺”。用羊皮纸这样的东西不应该太难,而且确实适用于天然瓷砖的东西,如砖块或混凝土。

如果你没有艺术天赋来拉开这样的东西,你可以在网上看到一些很好的在线内容(也是免费的!)。

另一种方法是使用高分辨率版本的图像并“拉伸”它以适应屏幕。分辨率越高,图像拉伸时的像素化越少。 (或者尝试类似于mip-mapping的东西,你可以存储几个不同分辨率版本的图像,然后根据屏幕尺寸选择最佳版本。)

答案 1 :(得分:0)

我没有尝试使用这些,但我对一些人用程序纹理所做的事情印象深刻。

答案 2 :(得分:0)

这是我设计的一个配方,用于在图像编辑器(Photoshop,Paint.net,GIMP)中制作适合平铺(即周期性)的随机纹理。

一些样本here - 我按照此程序制作了所有样本,没有其他图像编辑。

假设您要制作256x256图像。

  1. 以空白256x256图片开头
  2. 添加随机噪音。
  3. 放大画布,在每个方向上添加256像素的边距。你现在有了 768x768图片
  4. 将中心256x256图像复制到八个周围的正方形(此步骤是最笨重的,必须精确完成 - 您可以自动化它,例如,在Paint.NET中)
  5. 在完整图像上进行一些局部SI变换(如下所述)。
  6. 如果不漂亮,GOTO 5
  7. 裁剪图像,每个边距为256像素。 结果:可图块化的256x256图像。
  8. “局部SI(空间不变)变换”(SI类似于LTI滤波器中的'TI'部分)是任何图像变换(滤波,调整,效果),它会在某些确定性上改变每个像素值方法仅基于当前值和邻居像素,对于翻译不变。其中包括:

    • 任何颜色调整(亮度,对比度,色调,饱和度,水平曲线,均衡,分色)。
    • 标准的低频或高频滤波器,锐化和模糊,中值滤波器。
    • 局部效果:边缘检测,浮雕,浮雕

    这不包括“全局”效果(纹理渲染,空间扭曲)

    配方可以应用于不同的层,可以在任何“模式”中组合。

    某些步骤可以记录为宏或图像编辑器允许的任何步骤。

    这很有趣,只需尝试和使用效果和图层来制作一些有趣的纹理。