HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Получение текстуры
в tri.cpp
Страницы (3): « 1 2 [3]   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35062
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


Цитата:
domded писал:
Требует - без неё копутекссабимадж не работает

Требует один раз, а не каждый кадр.

__________________

Сообщить модератору | IP: Записан
Сообщение: 128280

Старое сообщение 25-11-2013 23:40
-
domded
люби няшного котейку

Дата регистрации: Aug 2013
Проживает: (void)
Сообщений: 146

Рейтинг



Заключил создание текстуры под проверку ошибки. Всё равно тормоза, хотя teximage2d каждый кадр уже не вызывается.
Ещё странность: У меня glGetError никогда не равно GL_INVALID_OPERATION. приходится просто проверять на правду.

Сообщить модератору | IP: Записан
Сообщение: 128282

Старое сообщение 26-11-2013 00:19
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35062
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


domded
Значит, теперь каждый кадр вызывается что-то другое, только и всего.
А вообще, если copytexsubimage не даёт прироста, значит, проблема вообще в другом месте.

__________________

Сообщить модератору | IP: Записан
Сообщение: 128283

Старое сообщение 26-11-2013 00:24
-
domded
люби няшного котейку

Дата регистрации: Aug 2013
Проживает: (void)
Сообщений: 146

Рейтинг



оно каждый кадр и вызывается. ну, ещё проход по списку текстур модели с целью найти нужную.

C++ Source Code:
1
if (m_pCurrentEntity == gEngfuncs.GetViewModel() )
2
{
3
  mstudiotexture_t*tex = (mstudiotexture_t*)((byte*)m_pStudioHeader+m_pStudioHeader->textureindex);
4
  for (int i = 0; i < m_pStudioHeader->numtextures; i++ )
5
  {
6
    if (!stricmp("cam_vfind.bmp",tex[i].name))
7
    {
8
      //creating current image of screen
9
      if (glIsTexture(tex[i].index))
10
      {
11
 
12
        glBindTexture(GL_TEXTURE_2D, tex[i].index);
13
 
14
        glCopyTexSubImage2D(GL_TEXTURE_2D,0,0,0,(ScreenWidth-XRES(tex[i].width))/4,ScreenHeight-YRES(tex[i].height),XRES(tex[i].width),YRES(tex[i].height));
15
 
16
        if (glGetError())
17
        {
18
          glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,XRES(tex[i].width),YRES(tex[i].height),0,GL_RGB,GL_UNSIGNED_BYTE,NULL);
19
        }
20
        break;
21
      }
22
 
23
    }
24
  }
25
  delete[] tex;
26
 
27
}

Отредактировано domded 26-11-2013 в 00:40

Сообщить модератору | IP: Записан
Сообщение: 128284

Старое сообщение 26-11-2013 00:28
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35062
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


1) Зачем вызов glIsTexture?
2) Ты уверен, что glGetError не возвращает какой-нибудь предыдущий еррор?
3) До каких пор в конце будет стоять "delete[] tex"?

__________________

Сообщить модератору | IP: Записан
Сообщение: 128285

Старое сообщение 26-11-2013 00:54
-
domded
люби няшного котейку

Дата регистрации: Aug 2013
Проживает: (void)
Сообщений: 146

Рейтинг



Потому что дядя миша говорил, что когда-то оно есть просто индекс на массив пикеселей. Сейчас убрал проверку, почистил ненужное удаление указателя. Всё работает, но проблема осталась. Причём в разрешении 640х480 падает до 30, а в 1024х768 - до 10. Я, в принципе, понимаю, почему - картинка увеличивается, но glTexImage2D по-прежнему вызывается один раз.
Уверен. Не может этого быть, потому что код ошибки в sprintf %i - 12***, что соответствует именно GL_INVALID_OPERATION. Но почему-то он упорно не хочет равнять их.

Сообщить модератору | IP: Записан
Сообщение: 128286

Старое сообщение 26-11-2013 01:03
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33062
Нанёс повреждений: 392 ед.

Рейтинг



domded ты хоть скажи конфигурацию своего компьютера. А то сейчас окажется, что у тебя RivaTNT.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 128298

Старое сообщение 26-11-2013 16:11
-
domded
люби няшного котейку

Дата регистрации: Aug 2013
Проживает: (void)
Сообщений: 146

Рейтинг



Радеон 9600 128 мб, 1 гиг оперативки.
УПД: кстати, ваш ксаш-движок на карте с мониторами или проектором тоже выдаёт мне около 5 фпс. когда мониторов два - он вообще работает со скоростью один кадр в пять-десять секунд.

Отредактировано domded 26-11-2013 в 19:50

Сообщить модератору | IP: Записан
Сообщение: 128309

Старое сообщение 26-11-2013 19:33
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33062
Нанёс повреждений: 392 ед.

Рейтинг



Гы-гы. Ну я почему-то так и думал.

C++ Source Code:
1
bool m_bGrabScreen = false;
2
 
3
void HUD_VidInit( void )
4
{
5
  m_bGrabScreen = false;
6
}
7
 
8
if (m_pCurrentEntity == gEngfuncs.GetViewModel() )
9
{
10
  mstudiotexture_t*tex = (mstudiotexture_t*)((byte*)m_pStudioHeader+m_pStudioHeader->textureindex);
11
 
12
  for (int i = 0; i < m_pStudioHeader->numtextures; i++ )
13
  {
14
    if (!stricmp("cam_vfind.bmp",tex[ i ].name))
15
    {
16
      glBindTexture(GL_TEXTURE_2D, tex[ i ].index);
17
 
18
      if( !m_bGrabScreen )
19
      {
20
        glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,XRES(tex[ i ].width),YRES(tex[ i ].height),0,GL_RGB,GL_UNSIGNED_BYTE,NULL);
21
        m_bGrabScreen = true;
22
      }
23
      else
24
      {
25
        glCopyTexSubImage2D(GL_TEXTURE_2D,0,0,0,(ScreenWidth-XRES(tex[ i ].width))/4,ScreenHeight-YRES(tex[ i ].height),XRES(tex[ i ].width),YRES(tex[ i ].height));
26
      }
27
      break;
28
    }
29
  }
30
}

Хотя моё мнение, что glTexImage там вообще не нужен, поскольку текстура уже была создана еще движком.

Добавлено 26-11-2013 в 23:51:

Цитата:
domded писал:
кстати, ваш ксаш-движок на карте с мониторами или проектором тоже выдаёт мне около 5 фпс

Ну не обманывай, нету в ксаш-движке никаких мониторов

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 128310

Старое сообщение 26-11-2013 19:51
-
domded
люби няшного котейку

Дата регистрации: Aug 2013
Проживает: (void)
Сообщений: 146

Рейтинг



Неправильно выразился. В демокарте ксаш-хт.
У меня проблема в том, я так понял, что видюха очень древняя?

Сообщить модератору | IP: Записан
Сообщение: 128311

Старое сообщение 26-11-2013 19:55
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33062
Нанёс повреждений: 392 ед.

Рейтинг



Нет, видюха вполне норм. На её старшем брате Radeon9800 я сталкера проходил. У тебя скорее оч. слабый процессор, просто ужас какой слабый.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 128312

Старое сообщение 26-11-2013 20:00
-
domded
люби няшного котейку

Дата регистрации: Aug 2013
Проживает: (void)
Сообщений: 146

Рейтинг



Странно. Процессор у меня пентиум 4 2.8 ггц . Но почему-то тот же многострадальный коф с его рендером у меня жутко тормозит. Оригинальную параною смотел очень давно, поэтому про неё ничего не помню.
А насчёт glTexImage - я вызываю его потому что без него не работает glCopyTexSubImage.
В любом случае - благодарю вас и ксерокса за помощь.

Сообщить модератору | IP: Записан
Сообщение: 128313

Старое сообщение 26-11-2013 20:06
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33062
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
domded писал:
Процессор у меня пентиум 4 2.8 ггц

Ну вот и ответ на твой вопрос. Пентиум4 - это воздушные мегагерцы.
Там почти 70% процентов времени занимают промахи кэша, из-за чего какой-нибудь пентиум3 866 мегагерц сплошь и рядом оказуется шустрее.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 128314

Старое сообщение 26-11-2013 20:28
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 14:43. Новая тема    Ответить
Страницы (3): « 1 2 [3]   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Получение текстуры
в tri.cpp
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024