Я бы рекомендовал использовать любую размерность ресурса, подходящую для моделирования. Если это 1D-симуляция, используйте RWBuffer, если это 2D-имитация, используйте RWTexture2D, и если это 3D-имитация, используйте RWTexture3D.
В алгоритме, который вы связываете, используются билинейная фильтрация. Если вы ограничиваете себя использованием буфера, вам придется выдавать 4 или 8 выборок памяти (в зависимости от 2D или 3D), а затем больше инструкций для расчета средневзвешенного значения. Воспользуйтесь возможностями оборудования, чтобы сделать это для вас, где это возможно.
Еще одна вещь, о которой следует помнить, заключается в том, что данные в текстурах не строятся последовательно (линейно), как вы могли бы ожидать, вместо этого они укладываются таким образом, что соседние тексели как можно ближе друг к другу в памяти ; это можно назвать Tiling или Swizzling в зависимости от документации, которую вы читаете. По этой причине, если ваша симуляция не является одномерной, вы можете значительно улучшить когерентность кеширования при чтении/записи из ресурса, макет которого наиболее точно соответствует размерам моделирования.