Привет, ребята,
В настоящее время я работаю над проектом, в котором мне нужно прочитать файл json, чтобы создать сцену во время выполнения. Сериализация / десериализация работает отлично.
Основная проблема в том, что я хочу иметь возможность создавать сетки из 8 точек / вершин, я в некотором роде достигаю этого, но каждая нормаль инвертирована, и я не понимаю, почему.
Это мой json-ввод для одного:
"name": "whatever",
"points": [
{
"x": -1,
"y": -0.05,
"z": 1
},
{
"x": -1,
"y": 0.05,
"z": 1
},
{
"x": 1,
"y": 0.05,
"z": 1
},
{
"x": 1,
"y": -0.05,
"z": 1
},
{
"x": -1,
"y": -0.05,
"z": -1
},
{
"x": -1,
"y": 0.05,
"z": -1
},
{
"x": 1,
"y": 0.05,
"z": -1
},
{
"x": 1,
"y": -0.05,
"z": -1
}
]
, и это мой код генерации сетки в c #:
public void GenerateMesh(SerializedMesh data)
{
Vector3[] vertices = new Vector3[data.points.Count];
for (int i = 0; i < data.points.Count; i++)
{
vertices[i] = new Vector3(data.points[i].x, data.points[i].y, data.points[i].z);
}
int[] triangles = {
// Front face
0, 1, 2,
2, 3, 0,
// Back face
7, 6, 5,
5, 4, 7,
// Left face
4, 5, 1,
1, 0, 4,
// Right face
3, 2, 6,
6, 7, 3,
// Top face
1, 5, 6,
6, 2, 1,
// Bottom face
4, 0, 3,
3, 7, 4
};
// TODO : check what all this does
Mesh.Clear();
Mesh.vertices = vertices;
Mesh.triangles = triangles;
//Mesh.RecalculateBounds();
Mesh.RecalculateNormals();
//Mesh.RecalculateTangents();
//Mesh.Optimize();
}
Я представлял свои вершины в следующем порядке:
Почему все перевернуто?