Начал с месяц назад изучать DirectX 11. На сегодня написал собственный формат объектов и их чтение. Вот теперь нужно сделать редактор этих объектов в движке. (да, велосипед, да, есть уже формат obj и 3ds max, мне просто не интересно делать игру в уже кем-то созданными программами)
И возникла сложность с изменением вершин в реальном времени и их индексами. Получается же что нужно создавать каждый раз буфер для вершин и индексов? d3dDevice->CreateBuffer
Не слишком ли затратно? Ведь буфер создается какое-то время и будут лаги при редактировании.
Еще вопрос. Как можно автоматизировать создание индексов для вершин? Ведь в редакторе должны быть такие функции как соединить две вершины в одну (если они слишком близки), разделить объект на две части, на три и т.д... Индексы же при этом тоже нужно как-то менять.
Вы написали о каких-то проблемах, но непонятно какую задачу вы вообще решаете.
Вы пытаетесь написать 3d-редактор?
Про буферы - создайте буфер большего размера с запасом. И для вершинного и для индексного.
Ведь когда вы отрисовываете вы передаете команде отрисовке параметром сколько рисовать.
Буфер это массив, храните смещение на конец массива. Когда добавляете новый элемент то записываете по этому адресу и увеличиваете смещение. А команде отрисовке говорите рисовать на n примитивов больше.
Сергей Кормишин, ладно, все равно еще нужно всяких мелочей писать сложных. А как можно читать .3ds формат, или какой-то еще "зашифрованный"или не знаю как это назвать...? Просто .obj формат многовато весит.