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

ComputeBufferType.Default

Описание

Тип по умолчанию ComputeBuffer (структурированный буфер).

В шейдерах HLSL это отображается на StructuredBuffer<T> или RWStructuredBuffer<T>.

Когда вы построите ComputeBuffer такого типа, значение stride должен соответствовать шагу соответствующего StructuredBuffer тип структуры в вашем коде HLSL.

Значение stride должно также быть кратно 4 и меньше 2048.

Для соответствия требованиям некоторых платформ и избежания проблем с производительностью, stride должен быть кратен 16. Используйте переменные float4 и float4x4, чтобы получить кратность 16, и размещайте внутри них переменные меньшего размера. Не применяйте «выравнивающие» переменные ради кратности 16 — например, переменную float3 для дополнения структуры с единственным float, — поскольку на разных платформах некоторые типы данных могут иметь разный размер.

Если вы используете смесь переменных размеров, расположение данных в структурированном буфере шейдера может отличаться в зависимости от графики API. Это означает, что ComputeShader.SetBuffer или Material.SetBuffer может перезаписать данные или установить переменные на неправильные значения. См. Запись шейдеров для различных графиков APIs для больше информации.

См. документацию Майкрософта HLSL на StructuredBuffer и RWStructuredBuffer.

Дополнительные ресурсы: ComputeBuffer, ComputeShader, Material.SetBuffer.