Я в основном программист, не очень хороший рисунок, поэтому я решил обработать текстуры во время выполнения процедурно и тем самым я хотел бы генерировать что-то новое и свежее каждый раз, в то же время он должен выглядеть правдоподобным. начать с этого? Программирование в Unity, если это поможет.Процедурные текстуры в единстве?
2
A
ответ
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 и найти широкий диапазон статей, объясняющих, как это сделать.
Этот вопрос очень широк, поэтому надеемся, что вы начнете.
Я имел в виду больше как алгоритмы для генерации @Jon –