Unity中的程序纹理?

时间:2015-01-13 19:06:14

标签: unity3d textures texture2d procedural-generation

我主要是一个程序员,不是很擅长绘图,所以我决定在程序运行时以纹理方式制作纹理,并且我的意思是每次生成新的和新鲜的东西,同时它看起来应该是可信的。如何开始这个?在Unity中编程,如果这将有所帮助。

1 个答案:

答案 0 :(得分:4)

您可以通过执行以下操作在代码中创建纹理:

public Texture2D CreateTexture()
{
    int width = 100;
    int height = 100;

    texture = new Texture2D(width, height, TextureFormat.ARGB32, false);
    texture.filterMode = FilterMode.Point;

    for (int i = 0; i < width; i++) {
        for (int j = 0; j < height; j++) {
            texture.SetPixel(j, Height-1-i, Color.red);
        }
    }
    texture.Apply();
    return texture;
}

如果您希望优化,可能需要查看Texture2D.SetPixels(),因为Texture2D.SetPixel()要慢得多。

对于程序纹理生成,这是一个非常广泛的主题,有各种技术。通常,您可以使用某种相干噪声生成器来生成纹理,例如Perlin或Simplex。

您可以谷歌&#34;纹理生成噪音&#34;,并找到解释如何执行此操作的各种文章。

这个问题非常广泛,希望能帮助您入门。