Поскольку народ упорно цепляется за GoldSrc, напрочь игнорируя разные более новые форматы, то рано или поздно встаёт вопрос о несоответствии возможностей текущему времени. Т.е., если в 1998 году возможностей халфовского формата хватало всем и каждому, то сейчас не хватает совершенно. Причём, зачастую основные проблемы нехватки ресурсов кроются даже не в абсолютных лимитах, как таковых, а в нерациональном использовании ресурсов, что решается применением оптимизированного компилятора. Поскольку исходников халфы мы так и не увидели, то все силы кодеров были брошены именно на компиляторы, как на единственный способ создавать отличные карты в условиях ограниченных лимитов. И надо сказать они достигли в этом деле очень больших успехов. Ни для одной кваки нету таких продвинутых пользовательских компилеров, как для халфы. Однако несмотря на всё это, необходимость в новом формате карт постепенно назревала. Товарищи с twilight, когда им перестало хватать лимитов замутили формат BSP2 - просто заменили все unsigned short на unsigned int, не трогая сами структуры. Я в ксаше так поступить не могу - нарушится абсолютно вся совместимость. Однако я тоже кое-что придумал. Собственно, эта тема - плод долгих измышлений и опытов. На выходе должен получится новый формат карт - BSP 31, халфовская версия, как мы помним имеет номер 30.
Основные изменения, которые планируется сделать:
1. изменить кол-во лукселей на нексель. В оригинале, как мы помним приходилось 16 текселей на луксель, тени получались исключительно размытые. Я планирую использовать 4 текселя на луксель, размер лайтдаты увеличится в 4 раза, но, как вы понимаете это не смертельно.
2. при таких больших лайтмапах само собой разумеется использовать субдивайд не 240, а 512. В подавляющем большинстве случаев это сократит кол-во полигонов на карте в 4 раза. Ну да впрочем, это вы и без меня знаете.
3. исправить самый надоедливый лимит - на клипноды. Проявляется он потому, что у нас общий лимит 32768 узлов на 4 дерева. То есть хоть тресни, но нам необходимо построить 4 дерева клипнодов и уложить их в лимит. Получается зачастую "на грани", когда их объем уже вплотную подходит к лимиту. Самый простой способ устранения данной проблемы - заменить short children[2] на int children[2] в описании клипнодов. Как вы помните эти структурки торчат из движка во все стороны и менять такие вещи попросту опасно, но к великому счастью, непосредственно указатель на dclipnode_t нигде не имеет прямого обращения из кода пользовательской части. К тому же я просто уверен, что ни в одном из сотен халфовских модов его не юзают - попросту нет в нём необходимости. А моды с кастомным рендерером могут использовать переменную firstclipnode, которая и так уже int, т.е. эту часть даже трогать не придется. Правда при таком подходе мы будем ограничены в 32768 узлов на одно клип-дерево, но это означает расширение лимита в 4 раза, чего, опять таки, более чем достаточно на мой взгляд.
4. ну и завершающим аккордом у получившегося бсп-файлика будет прописан номер версии 31, дабы халфа его сдуру не попыталась загрузить. Сам кастомный компилятор будет реализован на базе VHLT 30, к тому же можно будет попросить китайца включить все эти изменения в виде отключаемых участков кода - почему бы и нет.
Ну и, чтобы не быть голословным приведу в пример скриншот моих опытов.
subdivide 512 и 4 текселя на 1 луксель. VHLT 28, тень от "дырявой" текстуры.
Жду ваших комментариев и предложений.
Дядя Миша писал: Товарищи с twilight, когда им перестало хватать лимитов замутили формат BSP2
А какой игрой он поддерживался?
Добавлено 06-12-2012 в 03:40:
Цитата:
Дядя Миша писал: как мы помним приходилось 16 текселей на луксель
Емнип, 256 текселей на люксель. Они ж квадратные.
Если ты снизил до 4*4=16 текселей на люксель, то размер лайтмап вырастает в 16 раз, а это, по-моему, смертельно.
Пусть знающие люди меня поправят, если я не прав.
нету таких игр. Есть только поддержка на уровне движков Darkplaces и FTE. Но авторы FTE шарят только в виртуальных машинках, а остальное тупо копипастят откуда угодно.
Цитата:
XaeroX писал: Емнип, 256 текселей на люксель. Они ж квадратные.
Кто квадратные
Кол-во лукселей всегда считалось исходя из кол-ва текселей, а кол-во текселей всегда считалось исходя из реального размера текстуры, умноженного на текстурную матрицу - операции "натягивания" текстуры на браш, вращения, транслейта итд. Ну все в курсе, вообщем.
При этом в игре не могло быть фейсов размером более 512 текселей, поскольку субдивайд. 512 / 4 = 128. Ну с ошибками округления ~= 131.
Т.е. максимальная лайтмапа на 1 фейс заняла бы всю стандартную халфовскую текстуру, которая как мы помним как раз и имеет размеры 128х128. Такие дела.
Дядя Миша писал: Товарищи с twilight, когда им перестало хватать лимитов замутили формат BSP2
Кто такие? Google упорно говорт, что это фильм такой, сумерки.
Цитата:
Дядя Миша писал: Ну и, чтобы не быть голословным приведу в пример скриншот моих опытов.
subdivide 512 и 4 текселя на 1 луксель. VHLT 28, тень от "дырявой" текстуры.
Не хватает скриншотов "до" и "после", точнее только "до", дабы сравнить можно было.
Это получается, что будут улучшены тени, увеличен лимит на клипноды и subdivide тоже будет увеличен. Собственно, не так уж много, но совместимость не изломается. А много ли нашим мапперам надо? Я на качество теней в халфе не очень-то обращаю внимание, разве что когда они уж совсем ступенчатые. Вот ещё бы лайтгрид для правильного освещения моделей и вообще конфетка будет.
Crystallize писал: Во-во. Если бы дядя Миша не сказал, я так и думал бы, что это стандартная халфовская тень.
Нет, ну конечно 4 wpoly в кадре и такая тень — слишком далеко от стандартной халфовской, но наглядное сравнение — отличная штука.
Цитата:
Government-Man писал: Фу ступенчатые тени какой кошмар. Неужели нельзя замутить какое-нибудь сглаживание как в современных движках?
Сейчас походу начнется вечная дискуссия про то, что всё это можно сделать, да и собственно уже давно сделано и выпущено под названием Volatile3D II .
Но у ДМ ситуация другая, каждый байт боится изменить, ибо чертова никому не нужная совместимость.
qpAHToMAS писал: и выпущено под названием Volatile3D II
ФПС в котором страшно проседает местами Хотя в OI: FD всё более или менее нормально, а вот в Вольфраме жуть просто.
Сглаживание уже обсуждалось в теме про компиляторы китайца. Было высказано предположение, что оно может давать артефакты при определённых условиях. Так что лучше увеличить разрешение теней.
Предложение - сделать возможность пользователю выбирать масштаб текселей к люкселям, как в сорсе.
__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов
Дядя Миша
А не полетит совместимость если диапазон лайтмап увеличить?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!