Но остался последний вопрос. Я хочу, чтобы кусок из вида брался точно по середине, а сейчас он сполз куда-то вниз по оси у. Как сделать его точно по центру?
или это может зависить от наложения юв-координат на прицеле винтовки? там они не по центру, а где-то в правом верхнем углу болтаются.
Добавлено 24-11-2013 в 06:35:
Прикладываю картинку в качестве объяснения предыдущей проблемы.
Добавлено 24-11-2013 в 06:57:
и всё равно с винтовкой фпс у меня падает до 15-20, при 60-70 нормальных.
domded писал: и всё равно с винтовкой фпс у меня падает до 15-20, при 60-70 нормальных.
я вообще удивляюсь, что у тебя FPS, а не SPF, ибо ты допустил все возможные ошибки, какие только можно было допустить.
Во первых зачем тебе реад пиксельс, во вторых, зачем тебе доп. проход, если можно просто вырезать кусочек с экрана до того, как нарисована пушка (это легко отловить при начале отрисовки пушки с эвентом STUDIO_RENDER), в третьих зачем тебе glScaleImage, в четвертых зачем каждый кадр искать эту чортову текстуру заново, в пятых зачем ты юзаешь текс имидж, если надо юзать текс саб имидж. Т.е. можно продолжать до бесконечности. Да ерунда это полная с винтовкой, потому что она у тебя должна работать как зеркало, т.е. отражать то что за твоей спиной, а не то, что в линзу видно. Ты сам подержи винтовку так, как на скрине и убедись, что в прицел при таком положении не видно ничего.
каждый кадр - изображение в прицеле должно соответствовать текстуре на том, что видно у меня без пушки. делаю по подобию коф, там же тоже было изображение спереди, а не сзади.
реадпиксельс я уже не использую, и скейлимадж тоже. единственное, что использую из описанного вами - копутексимадж. попробую сейчас перевести на текссабимадж.
я не очень сильно знаком с опенгл, поэтому пока так. знал бы, как это сделать - не пришёл сюда. поэтому и спрашиваю вас разные вопросы.
Дядя Миша писал: Кта не нулловый? А когда у тебя пушки в руках нету чем равен viewent->model? Да ничему.
Я тебя обрадую: в ХЛ gEngfuncs.GetViewModel() всегда ненулловый. Если поглядишь хлсдк - там дажн проверок нет.
Кстати, viewent - это энтитя, на которую тебе сделали SET_VIEW.
Я вообще собирался тутор по инвентарю писать и выложить все свои наработки сюда. Ибо пилю не мод, а просто хочу разобраться "как это работает". Или я похож на дебила, который хочет сделать римейк коф?
дядя миша, я тоже в тесте поучаствую. этот код получает вьюентити, а затем проверяет, ent->model!=NULL?
Опять тормоза жуткие, 20 fps.
И поставил аватарку специально по просьбе ксерокса.
Я не понимаю, как поствить туда текссабимадж. Он требует пиксельную дату экрана. Буду разбираться сейчас.
Всё равно не получается никакого выигрыша в производительности. Я так понимаю, что glCopyTexSubImage2D требует glTexImage2D, об этом даже в справочнике по огл написано.
Как понять - зачем? Индекс у текстуры разный на разных моделях, поэтому естественно, что приходится искать её в списке текстур модели. Конечно, можно завести глобальную прееменную, но выигрыш от этого мне кажется сомнительным. Я не могу найти в студиомодельрендерере место, где рисуются текстуры, поэтому приходится искать в рендерфайнал.
И ещё, можно ли как-то получить размеры и позицию юв-мапы относительно оригинальной текстуры? Из-за того, что юв-мапа приклеена не по центру, у меня получается, что берётся не та часть картинки, которую хочу.