Дядя Миша писал:Цитата:
Qwertyus писал:
Вопрос такой, а насколько принципиально для компилятора халфовских моделек ограничение на количество поликов
ну там типа статичный массив с ограниченным размером. В движке-то.
Да и медленно оно рисуется через глбегин.
__________________
вот щас пытаюсь скомпилить . выходит ограничение на кол-во полигонов осталось стандартное? а можно как-то скомбинировать разрезав модель и тут-же вставить бодигруппы с другими моделями .
Nicksven Не можно а нужно. Дели модель на бодигруппы, чтобы в каждой было 1.5-2 к поликов. Затем в QC прописывай. Там есть строка описывающая бодигруппу1. Ну вот впиши такую же для бодигруппы 2 и скомпилируй.
Вот софт бы кстати не помешал, по резанию исходного формата на куски с последующей компиляцией.
Муторно когда надо массово сконвертить модельки, среди которых очень часто попадаются высокополигональные.
ЗЫ. Предел до 2к, причём по вертексам надо смотреть, а не полигонам.
__________________ Tiger! Tiger! burning bright
In the forests of the night,
What immortal hand or eye
Could frame thy fearful symmetry?
Видите минус еденичку? А цымес в том, что + 1 нигде не прибавляется. Ни в рендерере, ни в декомпиляторе. Вот официальный код от вальвы (сорцы модельвьювера)
C++ Source Code:
s = 1.0/(float)ptexture[pskinref[pmesh->skinref]].width;
t = 1.0/(float)ptexture[pskinref[pmesh->skinref]].height;
С учётом масштаба текстуры порядок ошибки крайне невелик. Однако после нескольких перекопмпиляций он имеет тенденцию накапливаться.
Конечно размер текстуры не меняется, но при декомпиляции u v распаковываются без учёта этой еденички. Таким образом после пяти-шести декомпиляций текстура съезжает к такой-то матери.
На данный момент это просто смелое предположение. Прошу протестировать и сообщить о результатах.
Вложение: studiomdl.zip (25.0 кб)
Этот файл был скачан 727 раз.
Я могу сделать смелое предположение, что единичка убавляется для того, чтобы диапазон координат не выходил за пределы размеров текстуры и (в особенности) не был равен им. Это, скорее всего, критично для софтварного рендера, где координаты текстуры - суть индексы в массивы.
nemyax писал: Это тот самый stupid bug с разъезжающимися текстурами?
Да, он самый. Подобные вещи крайне тяжело забарывать с наскоку.
Тут надо хотя бы полдня посидеть-подумать.
Цитата:
GioHAUS0n писал: Она еще съезжает(
Сравни с компилятором в первом посте темы. И приложи скриншот, стало ли лучше, стало ли хуже, осталось без изменений.
Добавлено 03-01-2014 в 16:18:
А, кстати, мне пришла в голову забавная мысль. Раз уж точность наложения координат впрямую зависит от размеров текстуры, то надо взять текстуру донышка побольше.
Приведу пример.
Допустим у нас текстура дна банки 16х16 пикселей.
И координаты u v равны 0.01.
0.01 * 16 = 0.16 = (int)1 или (Q_rint)0
а теперь допустим у нас текстура 256х256
0.01 * 256 = 2.56 = (int)3 или (Q_rint)3
т.е. во втором случае точность страдает значительно меньше.
Я могу добавить специальный текстурный флаг, который будет умножать флоаты на фиксированное число, ну например на 32768 и тогда сдвиг координатов станет невидимым глазу. Но это потом как-нибудь.
меня зовут Хорхе... в свободное время я посвящаю modifcar hl модели, но я всегда был ограничен текстуры очень chicas.hace, что мало я узнал этот красивый графический движок и ваше сообщество... По словам лей xash3d двигатель поддерживает текстуры, 4096 x 4096..., но только studiomdl.exe я видел только поддерживает до 1024 x 1023 (не поддерживает 1024 x 1024)... кого-то есть что studiomdl.exe поддержки, хотя это 2048 x 2048... из уже большое спасибо.