2015-01-13 5 views
2

Я в основном программист, не очень хороший рисунок, поэтому я решил обработать текстуры во время выполнения процедурно и тем самым я хотел бы генерировать что-то новое и свежее каждый раз, в то же время он должен выглядеть правдоподобным. начать с этого? Программирование в Unity, если это поможет.Процедурные текстуры в единстве?

ответ

3

Вы можете создавать текстуры в коде, делая что-то вроде этого:

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 Texture Generation Noise и найти широкий диапазон статей, объясняющих, как это сделать.

Этот вопрос очень широк, поэтому надеемся, что вы начнете.

+0

Я имел в виду больше как алгоритмы для генерации @Jon –