Дядя Миша texture равен тому, что выдаёт glCopyTexImage2D. Виду из глаз игрока. Я, можно сказать, повторил эксперимент БУзера, он нечто подобное постил на хлру много лет назад:
Вопрос такой, задаю звук текстурам в materials.txt и при добавлении очередной текстуры у предыдущей звук снова сменился на generic, хотя она прописана. Если удалить новую текстуру из списка, то к предыдущей звук возвращается.
Написано, что лимит в файле 512, хотя строчек в файле около 300 - я уже не говорю про то, что между ними пробелы даже есть.
Опытным путем заметил, что можно заставить обе эти текстуры звучать, если удалить еще какие-то строчки. То есть явно идет упор в лимит. Почему, и как его обойти?
Собственно, я полез ковыряться, но ничего не получилось (не сломалось, но и не заработало). Куда копать?
Не помогло. Поставил его и 1024, и 2048.
Заметил вот что: я закомментил три строчки в материалс, начинающиеся на Y (другой материал) - ничего не изменилось. Потом я их вернул на место, и закомментил ОДНУ строчку D (именно там проблема) - текстура зазвучала. Такое ощущение, что достигнут лимит DIRT текстур.
Но их там очень мало, других текстур в 2-3 раза больше
Разобрался. Я не инициализировал texture. Что в ксаше, что в паранойе, исходное значение texture_id равно (1<<25). А у меня было 0. Теперь в консоль выдаётся номер в районе 33 миллионов. Проверил на мониторах старого ксаша - так и должно быть. Нарисовал новую текстуру через glBegin, т.к. подмена gl_texturenum теперь не работает. Ну такое себе, фпс упал примерно в три раза со 120 до 45 при восьми мониторах в кадре.
Мониторы оставлю такими, какие есть. Единственная проблема с ними в том, что на новом рендерере (который юзает VBO кажется), glCopyTexImage2D ведёт себя неадекватно: захватывает только уголок экрана. Какая-то трабла с координатами.
Механизм подхвата детальных текстур напрочь кривой и косой.
К примеру у него лимит имени - 13 символов почему-то. А текстуры бывают и 15 символов. Вот где-то не влезло и всё. Надо увеличить CBTEXTURENAMEMAX до 16.
Дядя Миша писал: норм, он так и должен себя вести.
На старом рендерере в мониторе полный кадр, на новом - только крайний угол кадра.
Можно это как-то исправить? Или это принципиально невозможно, т.к. специально захватывается не весь экран, а только часть, чтобы было меньше тормозов?
Добавлено 01-09-2020 в 02:37:
Попутный вопрос: как ни пытался загрузить расширения glLockArraysEXT и glUnlockArraysEXT - не грузятся. Хотя, если прилинковать к клиентке cvaLib.lib - всё работает, там вызовы этих расширений есть. Это какая-то хитрость, или они не юзаются, если не поддерживаются? И обязательно ли локать/анлокать массивы? Без вызова этих функций мониторы продолжают работать.
Дядя Миша писал: Надо увеличить CBTEXTURENAMEMAX до 16.
Да увеличивал уже, ставил 26 (раз все вдвое увеличивал, то и тут гуляем), все равно без толку. А текстура, между тем, называется me_grass
В общем, буду уменьшать файл и избавляться от ненужных халфовских текстур, все равно спасибо что пытались помочь.