это мой первый вопрос, поэтому, если у вас есть какие-либо предложения по улучшению вопроса, не стесняйтесь, скажите мне :)
Итак, моя проблема заключается в следующем: у меня есть объект, который меняет каждый кадр, и это приводит к различному количеству вершин, которые я планирую отправить через свой конвейер. Теперь я, очевидно, не могу изменить размер моего буфера вершин на лету, так как же лучше всего подойти к этому?
Вот некоторые идеи, которые у меня были:
Создайте буфер вершин размером n и просто передавайте вершины группами по n. Минусы: некоторые вершины проходят через VS несколько раз, поэтому небольшое снижение производительности (вероятно, незаметное), необходимость вызывать Map/Unmap несколько раз за кадр, что может быть проблематично.
Создайте огромный буфер вершин, который будет содержать достаточно вершин, чтобы мой объект никогда не превышал размер буфера. Недостатки: поскольку я заранее не знаю, сколько вершин будет иметь мой объект, может быть сложно предсказать размер этого буфера. Кроме того, в результате буфер может занимать слишком много места.
В каждом кадре создавайте новый буфер вершин правильного размера и вызывайте IASetVertexBuffer. Недостатки: это, вероятно, будет иметь огромную проблему с производительностью...
Я был бы признателен за любые идеи, которые есть у ваших ребят, или предложения по поводу того, какой из этих трех использовать! :)