Есть ли способ заблокировать VertexBuffers в XNA? - PullRequest
3 голосов
/ 30 июля 2010

Глядя на документацию MSDN, я не могу найти способ заблокировать VertexBuffers, чтобы я мог изменять их данные на устройстве. Возможно ли это в XNA?

1 Ответ

2 голосов
/ 30 июля 2010

У вас есть несколько вариантов для изменения содержимого буферов вершин в XNA:

  • VertexBuffer имеет члена SetData. Вы можете безопасно использовать это только за пределами Draw в любом случае, когда вы можете активировать Предикатный тайлинг (поэтому рекомендуется всегда делать это вне Draw).

  • DynamicVertexBuffer похоже на VertexBuffer, но быстрее при настройке его содержимого. Однако это может привести к потере графического устройства, и это условие должно быть обработано. Также взгляните на SetDataOptions.

  • DrawUserPrimitives проиндексировано версия). Это имеет то преимущество, что не влияет на Predicated Tiling и не вызывает сброса буфера команд для небольшого числа примитивов.

На MSDN есть дополнительная информация о Динамически обновляемых вершинах . И эту ветку на форумах XNA также стоит прочитать.

...