-1
私は手続き型地形生成システムに取り組んでいます。私はそれが低いポリ効果を持つようにしたかったのです。私は色のためのテクスチャを使用してみましたが、それは私が探していたものではありませんでした。代わりに私は三角形の色を個別に割り当てることに決めました。私はそれに問題があります。mesh.colorsが機能しません。メッシュは白です
メッシュを作成するためのコードです。
public Mesh CreateMesh()
{
Mesh mesh = new Mesh();
mesh.vertices = vertices;
mesh.triangles = triangles;
mesh.uv = uvs;
Color[] colours = new Color[vertices.Length];
for (int i = 0; i < triangles.Length; i++)
{
int vertIndex = triangles[i];
if (i % 3 == 0)
{
colours[vertIndex] = Color.green;
}
}
mesh.colors = colours;
if (useFlatShading)
{
mesh.RecalculateNormals();
}
else
{
mesh.normals = bakedNormals;
}
return mesh;
}
私は一時的にColor.greenを使用しています。ここでは、低ポリ効果を与えるためにフラットシェーディングに使用しているコードを示します。
void FlatShading()
{
Vector3[] flatShadedVertices = new Vector3[triangles.Length];
Vector2[] flatShadedUvs = new Vector2[triangles.Length];
for (int i = 0; i < triangles.Length; i++)
{
flatShadedVertices[i] = vertices[triangles[i]];
flatShadedUvs[i] = uvs[triangles[i]];
triangles[i] = i;
}
vertices = flatShadedVertices;
uvs = flatShadedUvs;
}
誰も問題を見ることができますか?もしそうでなければ、私は自分のコードをもう一度検索し、それを理解しようとします。
ありがとうございます!
EDIT:フラットシェーディングはBEFORE CreateMeshと呼ばれ、新しい頂点とuvはメッシュ自体に割り当てられる前に計算されます。
どういう意味ですか?エラーはありますか?何を手に入れましたか、何を期待しましたか?今度は色の配列全体を色で塗りつぶしてそこから行くべきです。 – ElDuderino