按混合形状排序数据。
当使用此选项调用 Mesh.GetBlendShapeBuffer 时,它会返回一个 GraphicsBuffer,其中包含按混合形状排序的混合形状顶点数据。
在此缓冲区中,每个混合形状顶点包括
在此缓冲区中,每个混合形状顶点的数据都是连续的。数据布局如下所示
* 属于单个混合形状的所有混合形状顶点按顺序存储,其次是属于另一个混合形状的所有混合形状顶点,依此类推
连续的混合形状顶点数据存储为一个 32 位值数组。您必须手动将数据转换为适当的类型。
要确定哪些数据与哪些混合形状相关,请使用 Mesh.GetBlendShapeBufferRange。
Unity 在创建网格时创建此缓冲区。访问此缓冲区不会导致其他内存分配。
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);
// Set Blend Shape data buffer to a compute shader computeShader.SetBuffer(0, "PerShape_BlendShapeBuffer", perShapeBuffer);
// Dispatch compute shader and access Blend Shape Data on the GPU computeShader.Dispatch(0, 64, 1, 1);
// Dispose of GraphicsBuffer to avoid leaking memory perShapeBuffer.Dispose(); } }
其他资源:网格数据:混合形状,Mesh.GetBlendShapeBuffer,UnityEngine.BlendShapeBufferRange。