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

Mesh.vertexBufferTarget

Declaration

public GraphicsBuffer.Target vertexBufferTarget;

Описание

Предполагаемое использование вершинного буфера Mesh GPU.

По умолчанию, буферы вершин сетки имеют цель использования GraphicsBuffer.Target.Vertex. Если вы хотите получить доступ к буферу вершин сетки из вычислительного шейдера, необходимо запросить дополнительные цели, например GraphicsBuffer.Target.Raw.

При установке этого свойства в новое значение, Unity уничтожает существующий буфер и создает новый буфер с указанной целью. Чтобы новый буфер был правильно заполнен данными, данные сетки должны находиться на CPU. Вы можете проверить свойство Mesh.isReadable, чтобы определить, доступны ли данные сетки на CPU.

using UnityEngine;

public class ExampleScript : MonoBehaviour { public Mesh mesh; public ComputeShader computeShader; void Start() { // Mark the vertex buffer as needing "Raw" // (ByteAddressBuffer, RWByteAddressBuffer in HLSL shaders) // access. mesh.vertexBufferTarget |= GraphicsBuffer.Target.Raw; // Get the vertex buffer of the Mesh, and set it up // as a buffer parameter to a compute shader. var vertexBuffer = mesh.GetVertexBuffer(0); computeShader.SetBuffer(0, "MeshVertexBuffer", vertexBuffer); vertexBuffer.Dispose(); } }

Дополнительные ресурсы: ,Target,, ,GetVertexBuffer,, ,indexBufferTarget,.