Unity 中的程序纹理?
Procedural Textures in Unity?
我主要是一个程序员,不太擅长绘图,所以我决定在 运行 时间以程序化的方式制作纹理,我的意思是每次都同时生成一些新鲜的东西是时候开始使用这个了 believable.How?在 Unity 中编程,如果这会有所帮助的话。
您可以通过执行以下操作在代码中创建纹理:
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() if you are looking to optimize, as Texture2D.SetPixel() 慢得多。
对于程序纹理生成,这是一个非常广泛的话题,涉及各种技术。通常,您会使用某种相干噪声生成器来生成纹理,例如 Perlin 或 Simplex。
您可以 google "Texture Generation Noise",并查找范围广泛的文章来解释如何执行此操作。
这个问题真的很宽泛,希望能帮助您入门。
我主要是一个程序员,不太擅长绘图,所以我决定在 运行 时间以程序化的方式制作纹理,我的意思是每次都同时生成一些新鲜的东西是时候开始使用这个了 believable.How?在 Unity 中编程,如果这会有所帮助的话。
您可以通过执行以下操作在代码中创建纹理:
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() if you are looking to optimize, as Texture2D.SetPixel() 慢得多。
对于程序纹理生成,这是一个非常广泛的话题,涉及各种技术。通常,您会使用某种相干噪声生成器来生成纹理,例如 Perlin 或 Simplex。
您可以 google "Texture Generation Noise",并查找范围广泛的文章来解释如何执行此操作。
这个问题真的很宽泛,希望能帮助您入门。