ПрограммированиеФорумГрафика

[Решено] Перенос данных из одного буфера вершин в другой. (3 стр)

Страницы: 1 2 3
#30
15:07, 19 сен 2015

Делаю следующее:

+ Показать

При запуске игра вылетает с фаталом. Это происходит из-за обращения к буферу pVertexBuffer, без него всё работает отлично. Может я что-то неправильно пишу в параметрах pVertexBuffer->Lock?
Подскажите, пожалуйста, что я не так делаю.
Данный буфер получаю отсюда:

STDMETHODIMP CDirect3DDevice8::SetStreamSource(THIS_ UINT StreamNumber, IDirect3DVertexBuffer8* pStreamData, UINT Stride)
{
  IDirect3DVertexBuffer9* pStreamData9 = ((CDirect3DVertexBuffer8*)pStreamData)->ToNine();
  g_Stride=Stride;
  g_StreamNumber=StreamNumber;
  g_pStreamData9=pStreamData9;
  return D3D_OK;// pDevice9->SetStreamSource(StreamNumber, pStreamData9, 0, Stride);
}

InitObjects(pDevice9, g_pStreamData9, g_baseVertexIndex);

И происходит ли чтения из буфера?

#31
16:39, 19 сен 2015

Изменил на это, теперь запускается, но ничего не рисует:

+ Показать

Похоже проблема в несоответствии кол-ва вершин на входе. Как исправить?

#32
18:33, 21 сен 2015

Не могу понять, я ведь всё делаю правильно, но ничего не рисуется:

+ Показать

Пожалуйста, объясните, что я делаю не так?

#33
19:50, 21 сен 2015

ты не думаешь головой. Потому ничего не рисуется.

#34
19:56, 21 сен 2015

Если бы я не думал головой, то не смог бы это написать. А что Вы можете сказать по теме?

Рисовать объекты из инициализированной переменной получается, но читать данные вершин из оригинального буфера - нет.

http://www.gamedev.ru/code/forum/?id=204891&page=2#m29

#35
17:30, 22 сен 2015

Всё, получилось:

+ Показать

Провожу все вычисления при вызове функции CDirect3DDevice8::DrawIndexedPrimitive. Если смотреть на большое кол-во примитивов, то начинаются сильные подтормаживания, а затем и вовсе игра вылетает с ошибкой. По-хорошему нужно вызывать функцию InitObjects только в самом начале, при создании девайса, но как, если в это время ещё не известны переменные startIndex, numVertices, primCount, да и варкрафтовские буферы не созданы? И как вычислить оптимальный размер для создания буфера?
Вот код:

+ Показать
Страницы: 1 2 3
ПрограммированиеФорумГрафика

Тема в архиве.

Тема закрыта.