Чтобы найти текстуру с именем cam_vfind.bmp. Проблема в том, что имена у нектороых текстур пишутся, а у некоторых нет, следовательно, cam_vfind не ищется. Правильно ли я вообще получаю доступ к списку текстур? Делаю это всё в tri.cpp.
viewent пробовал. проблема в том, что он всегда не нуловый. прверял даже с выводом в консоль, следовательно, игра виснет, когда пытаюсь получить указатель на список текстур.
я не нашёл в studiomodelrenderer_hardware, где отдельно натягиваются текстуры. поэтому и понёс всё это в hud_drawtransparenttriangles
Почему-то у меня указатель на viewent никогда не равен нуллу, даже если пушки в руках нет. Пишу под чистый хл.
Где конкретно рисуется текстура для модели? В рендерере этого не нашёл.
Попробовал перенести свой код:
C++ Source Code:
1
//are we processing viewmodel?
2
if (m_pCurrentEntity == gEngfuncs.GetViewModel() )
for (int i = 0; i < m_pStudioHeader->numtextures; i++ )
9
{
10
gEngfuncs.pfnConsolePrint(tex[i].name);
11
gEngfuncs.pfnConsolePrint("\n");
12
}
13
14
}
в StudioRenderFinal_Hardware. И почему-то опять не получается получить нормальные имена текстур - он выводит их не все, хотя те, что выводит - получаются правильные, совпадают с названиями текстур в модели. Некоторые строчки просто получаются равными нулю.
Ещё я заметил, что в туторе по натягиванию видеотекстур в структуре texture_s есть поле gl_texturenum, и уж был нацелился использвоать его для фотографирования экрана и помещения снимка в кам_вфайнд, но возникло огорчение. Почему-то в оригинальной халве его нет. Это нужно подключать полностью параноевский рендерер, я правильно понял?
даже если взять в руки дробовик из оригинальной игры, он пишет мне только название первой текстуры из четырёх (Spas12_Reference.BMP:0), полностью вывод такой ( tex[i]->name, i ):
смотрел по тутору о добавлении видеотекстур. не додумался как-то, что текстуры моделей хранятся в другом формате.
в mstudiotexture еcть индекс. подскажите, куда он ссылается, где хранятся непосредственно пиксели этой самой текстуры ( я так понимаю, формат w*h*3) ?
Изображение в прицеле появляется, но компьютер начинает очень сильно тормозить + оно получается очень растянутое - полосам идёт. Что я делаю не так?
Добавлено 24-11-2013 в 01:59:
Насчёт растяжения разобрался - надо было просто добавить gluScaleImage. А с тормозами вопрос остался. Возможно ли получить пиксели экрана быстрее, чем через glReadPixels?