UV-развертка при оптимизации времени выполненияC#

Место общения программистов C#
Ответить
Anonymous
 UV-развертка при оптимизации времени выполнения

Сообщение Anonymous »

Я пытаюсь создать UV во время выполнения, я использую UV типа BOX (аналог BOX UVW в 3ds max) и основываю свои расчеты на ориентации лица.

Я знаю, что создавать среду выполнения — не лучший вариант, но у меня нет выбора :( она сохраняется после расчета, поэтому я сделал это один раз.

br />
НО мне требуется 40 секунд для 30000 вершин... слишком долго

Можно ли сделать какую-либо оптимизацию в моем коде ?

.

Вот мой код, который вы можете использовать, если у вас сетка N.y && N.x > N.z)
{
uvs[mesh.triangles] = new Vector2(mesh.vertices[mesh.triangles].z, mesh.vertices[mesh.triangles].y);
uvs[mesh.triangles[i + 1]] = new Vector2(mesh.vertices[mesh.triangles[i + 1]].z, mesh.vertices[mesh.triangles[i + 1]].y);
uvs[mesh.triangles[i + 2]] = new Vector2(mesh.vertices[mesh.triangles[i + 2]].z, mesh.vertices[mesh.triangles[i + 2]].y);
}
else if (N.y > N.x && N.y > N.z)
{
uvs[mesh.triangles] = new Vector2(mesh.vertices[mesh.triangles].x, mesh.vertices[mesh.triangles].z);
uvs[mesh.triangles[i + 1]] = new Vector2(mesh.vertices[mesh.triangles[i + 1]].x, mesh.vertices[mesh.triangles[i + 1]].z);
uvs[mesh.triangles[i + 2]] = new Vector2(mesh.vertices[mesh.triangles[i + 2]].x, mesh.vertices[mesh.triangles[i + 2]].z);
}
else if (N.z > N.x && N.z > N.y)
{
uvs[mesh.triangles] = new Vector2(mesh.vertices[mesh.triangles].x, mesh.vertices[mesh.triangles].y);
uvs[mesh.triangles[i + 1]] = new Vector2(mesh.vertices[mesh.triangles[i + 1]].x, mesh.vertices[mesh.triangles[i + 1]].y);
uvs[mesh.triangles[i + 2]] = new Vector2(mesh.vertices[mesh.triangles[i + 2]].x, mesh.vertices[mesh.triangles[i + 2]].y);
}

}

mesh.uv = uvs;
Debug.Log("Finish");
}


Подробнее здесь: https://stackoverflow.com/questions/399 ... timization
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»