【问题标题】:Texture tiling - avoiding the tiled look?纹理平铺 - 避免平铺外观?
【发布时间】:2010-10-18 11:22:48
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: 3d textures


    【解决方案1】:

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

    【讨论】:

    • +1 表示一个有趣的想法。但是,考虑到他们的背景图像听起来并不需要非常出色,因此 OP 实施起来可能过于复杂/耗时。
    【解决方案2】:

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

    如果你缺乏艺术天赋来完成这样的事情,你可以在网上找到一些很好的样本(也是免费的!)。

    另一种方法是只使用您的图像的高分辨率版本并“拉伸”它以适应屏幕。分辨率越高,图像拉伸时得到的像素就越少。 (或尝试类似于 mip-mapping 的方法,在其中存储图像的多个不同分辨率版本,然后根据屏幕尺寸选择最佳版本。)

    【讨论】:

    • 我在 2003 年左右使用了这些技术,想知道是否有任何新的更好的方法来做到这一点。你认为我可以加入像 Perlin Noise 这样的东西来获得更自然的外观吗?即使无缝瓷砖可以工作,它们有时仍然可以被眼睛检测到,让我感到难过。谢谢
    • 像您提到的程序纹理已经完成了一些非常酷的事情,所以是的,如果您可以为您提供更多功能!
    • 噪音是关键,即使在平铺时也是如此。 picasaweb.google.ca/lh/photo/… 有一个例子,它看起来非常自然、中性(即,你可以根据需要调整它)并且足够嘈杂,不会出现明显的重复。
    【解决方案3】:

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

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

    假设您要制作 256x256 的图像。

    1. 从一张 256x256 的空白图片开始
    2. 添加随机噪声。
    3. 放大画布,在每个方向添加 256 像素的边距。你现在有一个 768x768 图片
    4. 将中心的 256x256 图像复制到周围的八个正方形中(此步骤最繁琐,并且必须精确完成 - 您可以将其自动化,例如在 Paint.NET 中)
    5. 对完整图像进行一些局部 SI 变换(如下所述)。
    6. 如果不漂亮,请转到 5
    7. 裁剪图像,每个边距 256 像素。 结果:可平铺的 256x256 图像。

    “局部 SI(空间不变)变换”(SI 类似于 LTI 过滤器中的“TI”部分)是任何图像变换(过滤器、调整、效果),它以某种基于确定性的方式改变每个像素值仅在当前值和相邻像素上,相对于平移不变。其中包括:

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

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

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

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

    非常有趣,一些有趣的纹理可以通过尝试和使用效果和图层来制作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多