Mesh.GetBlendShapeBufferRange
Declaration
public BlendShapeBufferRange GetBlendShapeBufferRange(int blendShapeIndex);Параметры
| Параметр | Описание |
|---|---|
| blendShapeIndex | Для какой формы смешивания найти данные. |
Возвращаемое значение
BlendShapeBufferRange Структура, описывающая начальный и конечный индексы данных для заданного блендшейпа.
Описание
Получить расположение данных вершины формы смешивания для данной формы смешивания.
Когда вы вызываете Mesh.GetBlendShapeBuffer с BlendShapeBufferLayout.PerShape, Unity возвращает GraphicsBuffer, который содержит данные вершины формы смешивания, упорядоченные по форме смешивания.
Когда вы вызываете эту функцию, Unity возвращает BlendShapeBufferRange для данной формы смешивания. Используйте ее, чтобы найти данные для этой формы смешивания в GraphicsBuffer.
using UnityEngine; using UnityEngine.Rendering;
public class Example : MonoBehaviour { public Mesh mesh; public ComputeShader computeShader;
void Start() { // Fetch GraphicsBuffer with Blend Shape data, ordered per shape, from the mesh var perShapeBuffer = mesh.GetBlendShapeBuffer(BlendShapeBufferLayout.PerShape);
// Iterate over all Blend Shapes in a mesh for(int blendShapeIndex = 0; blendShapeIndex < mesh.blendShapeCount; ++blendShapeIndex) { // Fetch which indices in the buffer that are part of this Blend Shape var blendShapeRange = mesh.GetBlendShapeBufferRange(blendShapeIndex);
// Set the start and end indices of the Blend Shape in the compute shader computeShader.SetInt("_StartIndex", (int)blendShapeRange.startIndex); computeShader.SetInt("_EndIndex", (int)blendShapeRange.endIndex);
// Dispatch compute shader and access data between start and end index for this Blend Shape computeShader.Dispatch(0, 64, 1, 1); }
// Dispose of GraphicsBuffer to avoid leak memory perShapeBuffer.Dispose(); } }
Дополнительные ресурсы: UnityEngine.BlendShapeBufferRange, ,Mesh.GetBlendShapeBuffer,, ,BlendShapeBufferLayout.PerShape,