【章节概览】
这章介绍了纹理爆炸(Texture Bombing)和相关的细胞技术,它们能在Shader中增加视觉的丰富性,图像的多样性,并减少大块纹理图案的重复性。
【核心要点】
纹理爆炸(Texture bombing)是一种程序化技术,它把小块图像以不规则的间隔放置。有助于减少团案的失真。纹理爆炸的基本思想是把UV空间分为规则的单元栅格。然后使用噪声或者伪随机函数,把一个图像放在任意位置上的各个单元中。最终的结果是在背景上对这些图像的合成。由于要组合数以百计的图像,因此实际上这种合成(composite)图像的方法效率并不高。而程序化(Procedural)计算图像虽好,但是又不适合合成。这篇文章主要讲了图像合成和程序化生成这两种方法,可以发现他们各有优劣。
图片合成(如下图使用花瓣纹理)
只采样当前cell的结果:
将临近四个点都采样的结果:
程序化生成(如下例子生成圆形)
Example 20-3. Using a Procedurally Generated Circle
offset_t -= float2(0.5, 0.5) + (float2) random; fixed radius2 = dot(offset_t, offset_t); if (random.w > priority && radius2 < 0.25) {color = tex2D(randomTex, randomUV + float2(0.13, 0.4));priority = random.w; }
基于此还可以玩出很多花样,比如随机采样图像,纹理随时间移动,3D程序化爆炸等等
【关键词提炼】
纹理爆炸(Texture Bombing)
3D程序化爆炸(Procedural 3D Bombing)
Voronoi区域(Voronoi Region)