【问题标题】:Procedural Textures in Unity?Unity中的程序纹理?
【发布时间】:2017-07-09 07:41:26
【问题描述】:

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

【问题讨论】:

    标签: unity3d textures texture2d procedural-generation


    【解决方案1】:

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

    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。

    您可以在 Google 上搜索“纹理生成噪声”,并找到大量解释如何执行此操作的文章。

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

    【讨论】:

    • 我的意思更像是生成@Jon的算法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2014-12-31
    • 1970-01-01
    相关资源
    最近更新 更多