HLFX.Ru Forum Страницы (264): « Первая ... « 159 160 161 162 [163] 164 165 166 167 » ... Последняя »
Показать все 3960 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)


Отправлено Ku2zoff 31-08-2020 в 03:22:

Дядя Миша texture равен тому, что выдаёт glCopyTexImage2D. Виду из глаз игрока. Я, можно сказать, повторил эксперимент БУзера, он нечто подобное постил на хлру много лет назад:
https://i.imgur.com/POSxvrX.jpg


Отправлено Дядя Миша 31-08-2020 в 07:46:

C++ Source Code:
glBindTexture(GL_TEXTURE_2D, texture);

texture чему равен?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Aynekko 31-08-2020 в 10:41:

Вопрос такой, задаю звук текстурам в materials.txt и при добавлении очередной текстуры у предыдущей звук снова сменился на generic, хотя она прописана. Если удалить новую текстуру из списка, то к предыдущей звук возвращается.
Написано, что лимит в файле 512, хотя строчек в файле около 300 - я уже не говорю про то, что между ними пробелы даже есть.
Опытным путем заметил, что можно заставить обе эти текстуры звучать, если удалить еще какие-то строчки. То есть явно идет упор в лимит. Почему, и как его обойти?

Собственно, я полез ковыряться, но ничего не получилось (не сломалось, но и не заработало). Куда копать?

C++ Source Code:
1
void TEXTURETYPE_Init()
2
{
3
  char buffer[1024];   // поставил 1024 вместо 512
4
  int i, j;
5
  byte *pMemFile;
6
  int fileSize, filePos;
7
 
8
  if (fTextureTypeInit)
9
    return;
10
 
11
  memset(&(grgszTextureName[0][0]), 0, CTEXTURESMAX * CBTEXTURENAMEMAX);
12
  memset(grgchTextureType, 0, CTEXTURESMAX);
13
 
14
  gcTextures = 0;
15
  memset(buffer, 0, 1024);  // 1024 вместо 512
16
 
17
  pMemFile = g_engfuncs.pfnLoadFileForMe( "sound/materials.txt", &fileSize );
18
  if ( !pMemFile )
19
    return;
20
 
21
  // for each line in the file...
22
    while (memfgets(pMemFile, fileSize, filePos, buffer, 1023) != NULL && (gcTextures < CTEXTURESMAX))    // 1023 вместо 511
23
      .............
24
    .........
25
    .....
26
  {


Отправлено Дядя Миша 31-08-2020 в 11:44:

То буффер для чтения, его трогать не надо.
Ищи чему равен CTEXTURESMAX и увеличивай его.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Aynekko 31-08-2020 в 12:01:

Не помогло. Поставил его и 1024, и 2048.
Заметил вот что: я закомментил три строчки в материалс, начинающиеся на Y (другой материал) - ничего не изменилось. Потом я их вернул на место, и закомментил ОДНУ строчку D (именно там проблема) - текстура зазвучала. Такое ощущение, что достигнут лимит DIRT текстур.

Но их там очень мало, других текстур в 2-3 раза больше


Отправлено Ku2zoff 31-08-2020 в 14:18:

Цитата:
Дядя Миша писал:
texture чему равен?

Странно, gEngfuncs.Con_DPrintf упорно выводит 0.

Добавлено 31-08-2020 в 21:18:

Цитата:
Aynekko писал:
Такое ощущение, что достигнут лимит DIRT текстур.

Ты пробовал переименовывать проблемные текстуры? Может быть проблема с парсингом имени?


Отправлено Дядя Миша 31-08-2020 в 14:55:

Цитата:
Ku2zoff писал:
Странно, gEngfuncs.Con_DPrintf упорно выводит 0.


Переменные с божественной помощью сами-собой заполняются?
Как ты кодишь?....

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 31-08-2020 в 17:19:

Разобрался. Я не инициализировал texture. Что в ксаше, что в паранойе, исходное значение texture_id равно (1<<25). А у меня было 0. Теперь в консоль выдаётся номер в районе 33 миллионов. Проверил на мониторах старого ксаша - так и должно быть. Нарисовал новую текстуру через glBegin, т.к. подмена gl_texturenum теперь не работает. Ну такое себе, фпс упал примерно в три раза со 120 до 45 при восьми мониторах в кадре.
Мониторы оставлю такими, какие есть. Единственная проблема с ними в том, что на новом рендерере (который юзает VBO кажется), glCopyTexImage2D ведёт себя неадекватно: захватывает только уголок экрана. Какая-то трабла с координатами.


Отправлено Дядя Миша 31-08-2020 в 18:06:

Цитата:
Ku2zoff писал:
исходное значение texture_id равно (1<<25)

Скажем так - там было заведомо большое число, которое больше ни с чем не пересекается.

Цитата:
Ku2zoff писал:
glCopyTexImage2D ведёт себя неадекватно: захватывает только уголок экрана. Какая-то трабла с координатами.

норм, он так и должен себя вести.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Aynekko 31-08-2020 в 18:49:

Цитата:
Ku2zoff писал:
Может быть проблема с парсингом имени?

Так она же работает, если убрать какую-то другую D текстуру.


Отправлено Дядя Миша 31-08-2020 в 19:27:

Механизм подхвата детальных текстур напрочь кривой и косой.
К примеру у него лимит имени - 13 символов почему-то. А текстуры бывают и 15 символов. Вот где-то не влезло и всё. Надо увеличить CBTEXTURENAMEMAX до 16.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 31-08-2020 в 19:37:

Цитата:
Дядя Миша писал:
норм, он так и должен себя вести.

На старом рендерере в мониторе полный кадр, на новом - только крайний угол кадра.
Можно это как-то исправить? Или это принципиально невозможно, т.к. специально захватывается не весь экран, а только часть, чтобы было меньше тормозов?

Добавлено 01-09-2020 в 02:37:

Попутный вопрос: как ни пытался загрузить расширения glLockArraysEXT и glUnlockArraysEXT - не грузятся. Хотя, если прилинковать к клиентке cvaLib.lib - всё работает, там вызовы этих расширений есть. Это какая-то хитрость, или они не юзаются, если не поддерживаются? И обязательно ли локать/анлокать массивы? Без вызова этих функций мониторы продолжают работать.


Отправлено Aynekko 31-08-2020 в 19:47:

Цитата:
Дядя Миша писал:
Надо увеличить CBTEXTURENAMEMAX до 16.

Да увеличивал уже, ставил 26 (раз все вдвое увеличивал, то и тут гуляем), все равно без толку. А текстура, между тем, называется me_grass
В общем, буду уменьшать файл и избавляться от ненужных халфовских текстур, все равно спасибо что пытались помочь.


Отправлено Дядя Миша 31-08-2020 в 20:14:

Цитата:
Ku2zoff писал:
Можно это как-то исправить?

ну вьюпорт так задан, маленький.

Цитата:
Ku2zoff писал:
glLockArraysEXT и glUnlockArraysEXT - не грузятся

а как ты пытался?

Цитата:
Ku2zoff писал:
И обязательно ли локать/анлокать массивы?

это для Compiled Vertex Array. Седая древность.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 31-08-2020 в 20:51:

Цитата:
Дядя Миша писал:
а как ты пытался?

wglGetProcAddress. Все расширения так грузятся. Пробовал юзать glew и glext - без разницы, не поддерживается.


Временная зона GMT. Текущее время 18:16. Страницы (264): « Первая ... « 159 160 161 162 [163] 164 165 166 167 » ... Последняя »
Показать все 3960 сообщений этой темы на одной странице

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