Войти
ПрограммированиеФорумГрафика

[Quake 3 | Загрузчик BSP] Непонятки с текстурными координатами (решено)

#0
21:34, 11 авг. 2018

Здравствуйте, решил написать загрузчик BSP карт третей кваки (Quake 3), но столкнулся с какими-то непонятками
связанные с наложением текстур на полигоны. В редакторе карт (GtkRadiant) масштаб/смещение текстур на
полигонах одно, а в движке другое (см. скриншот ниже). Выводил координаты в компиляторе и в движке,
так они идентичные. Как быть с этим? Как я понял квейк как-то по-особенному текстуры налаживает, но как?
Подскажите, пожалуйста, как решить данную проблему. Пытался в интернете найти инфу по этому делу,
но так ничего не нарыл :(

И да, у текстур такой параметр:

glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );

Скриншоты:

Текстуры в редакторе:

+ Показать

Текстуры в движке:

+ Показать

Выведенные ST координаты (то что T компонента отрицательного числа не страшно, ибо это сделано было, чтобы текстура не переворачивалась):

+ Показать


#1
23:03, 11 авг. 2018

Да вот то, что в вертексе это и есть готовые ST, их сразу можно использовать. Ничего с ними делать не надо.

#2
23:13, 11 авг. 2018

тогда я не понимаю почему такая разница с наложением текстур и что с этим делать

#3
23:56, 11 авг. 2018

zombihello
Проверь размеры текстур.

#4
0:28, 12 авг. 2018

Жора Монтировка
> Проверь размеры текстур.
Проверил, размеры текстур одинаковые (через фотошоп уменьшал ее, но это ни как не влияло на наложение в движке).
Смотрел еще как работает эта карта в демке из урока по загрузке BSP, то там такая же проблема.
Не понимаю, что не так.

#5
5:20, 12 авг. 2018

zombihello
Телепаты в отпуске. Покажи код загрузки и отрисовки.

#6
(Правка: 9:23) 9:23, 12 авг. 2018

zombihello
А не проще запилить свой формат локаций? Всего нужного в левых редакторах не реализуешь :)
Я, например, сделал пока текстовый формат в виде переменных скрипта Lua.
У меня все временные форматы в нём, потом уже перебиваю на бинарники, когда есть, в чём их сохранять, например, процеживать через простой консольный конвертер )))

#7
11:40, 12 авг. 2018

zombihello
ты оригинальную карту под квейк берёшь или сам собираешь предварительно? Если второе то вполне размеры могут съехать, там же две текстуры используются, в редакторе одна малого разрешения, в игре другая.

#8
15:18, 12 авг. 2018

Panzerschrek[CN]
> Телепаты в отпуске. Покажи код загрузки и отрисовки.
Код загрузки:

+ Показать

Код рендера:

+ Показать

g-cont
> ты оригинальную карту под квейк берёшь или сам собираешь предварительно? Если
> второе то вполне размеры могут съехать, там же две текстуры используются, в
> редакторе одна малого разрешения, в игре другая.
У меня редактор и движок берут текстуры из одного места или ты хочешь сказать,
что радиант сжимает текстуры? Просто я эту же карту запускал в Return to Castle Wolfenstein и
там текстуры были наложены как в редакторе

#9
15:33, 13 авг. 2018

zombihello
там в скриптах есть параметр qer_editorImage и путь к текстуре низкого разрешения. Не всегда, но часто. Когда карта компилируется, размеры текстур берутся именно из этой мелкой, а в игре видно уже текстуру высокого разрешения. Поэтому я уточнил - ты карту берёшь готовую или собираешь предварительно.
Если готовую, из игры, то проблем быть не должно.

#10
15:43, 13 авг. 2018

Я проблему уже исправил, спасибо. Кстати, проблема была именно в этом (в путях компилятора путь был указан к квейку, а не моему движку)

#11
13:18, 14 авг. 2018

В квейках текстурные матрицы базируются на реальных размерах текстур при компиляции. После компиляции эти размеры попадают внутри BSP-файла и там уже пофиг, можно подменять на любые другие текстуры. Но при компиляции это имеет значение.

ПрограммированиеФорумГрафика