我正在开发一个可在不同尺寸屏幕上运行的应用程序,我必须生成一个纹理(如羊皮纸),它将填满屏幕的所有可用空间。
一个非常简单的方法是包含一个小的位图(256 x 256?)的纹理样本,并在所有可用区域重复它,但这最终会看起来平铺并且非常令人失望。
是否有任何方法可以生成看起来不平铺的大平铺纹理区域?
由于
答案 0 :(得分:0)
我最好的建议(如果你去平铺路线)是找到一个足够小的纹理样本,以满足你的内存需求,但抛光到足以在平铺时看起来不“平铺”。当您平铺任何图像时,它将看起来是平铺的,除非边框可以在任何一侧无缝地相互流动。也就是说,对于在中间稍微变化的所有边的共同“边缘”可以在很大程度上使图像看起来不“平铺”。用羊皮纸这样的东西不应该太难,而且确实适用于天然瓷砖的东西,如砖块或混凝土。
如果你没有艺术天赋来拉开这样的东西,你可以在网上看到一些很好的在线内容(也是免费的!)。
另一种方法是使用高分辨率版本的图像并“拉伸”它以适应屏幕。分辨率越高,图像拉伸时的像素化越少。 (或者尝试类似于mip-mapping的东西,你可以存储几个不同分辨率版本的图像,然后根据屏幕尺寸选择最佳版本。)
答案 1 :(得分:0)
我没有尝试使用这些,但我对一些人用程序纹理所做的事情印象深刻。
答案 2 :(得分:0)
这是我设计的一个配方,用于在图像编辑器(Photoshop,Paint.net,GIMP)中制作适合平铺(即周期性)的随机纹理。
一些样本here - 我按照此程序制作了所有样本,没有其他图像编辑。
假设您要制作256x256图像。
“局部SI(空间不变)变换”(SI类似于LTI滤波器中的'TI'部分)是任何图像变换(滤波,调整,效果),它会在某些确定性上改变每个像素值方法仅基于当前值和邻居像素,对于翻译不变。其中包括:
这不包括“全局”效果(纹理渲染,空间扭曲)
配方可以应用于不同的层,可以在任何“模式”中组合。
某些步骤可以记录为宏或图像编辑器允许的任何步骤。
这很有趣,只需尝试和使用效果和图层来制作一些有趣的纹理。