Unity 6.3
0 онлайн 76 гостей 3 в системе
Вход

Mesh.SetVertexBufferParams

Declaration

public void SetVertexBufferParams(int vertexCount, params VertexAttributeDescriptor[] attributes);
public void SetVertexBufferParams(int vertexCount, NativeArray<VertexAttributeDescriptor> attributes);

Параметры

Параметр Описание
vertexCount Число вершин в сетке.
атрибуты 3. Формат данных о вершинах — какие атрибуты присутствуют, их типы данных и т.д.

Описание

Задает размер и расположение вершинного буфера.

Примечание: этот метод предназначен для опытных пользователей, которым требуется максимальная производительность. Он работает с низкоуровневыми структурами данных Mesh — необработанными буферами индексов и вершин, а также данными подмножеств сетки. Unity выполняет лишь минимальную проверку, поэтому вы должны самостоятельно обеспечить корректность данных.

В частности, убедитесь, что буфер индексов не содержит индексов за пределами допустимого диапазона, а диапазон индексов и границы SubMesh обновлены с помощью SetSubMesh.

Различия между простыми и расширенными методами передачи данных в Mesh из скрипта описаны в примечаниях Mesh на странице.

Сведения о задании структуры атрибутов Mesh см. в разделе VertexAttributeDescriptor.

using UnityEngine;
using UnityEngine.Rendering;

public class Example : MonoBehaviour { void Start() { var mesh = new Mesh(); // specify vertex layout with: // - floating point positions, // - half-precision (FP16) normals with two components, // - low precision (UNorm8) tangents var layout = new[] { new VertexAttributeDescriptor(VertexAttribute.Position, VertexAttributeFormat.Float32, 3), new VertexAttributeDescriptor(VertexAttribute.Normal, VertexAttributeFormat.Float16, 2), new VertexAttributeDescriptor(VertexAttribute.Tangent, VertexAttributeFormat.UNorm8, 4), }; var vertexCount = 10; mesh.SetVertexBufferParams(vertexCount, layout);

// ...later on SetVertexBufferData would be used to set the actual vertex data } }

Если размер буфера вершин превышает максимальный размер буфера, поддерживаемый устройством, метод вызывает исключение. Дополнительные сведения см. в SystemInfo.maxGraphicsBufferSize.

Дополнительные ресурсы: SetVertexBufferData, VertexAttributeDescriptor, GetVertexAttributes.