Кто-нибудь пробовал 3dsky в trinity renderers? Я заменил оригинальные дллки паранойи на тринитивские (названия энтить одинаковые), только добавил на сервере env_model, которого нет, чтобы все энтити в скайбоксе отображались, да исправил гадский вылет на клиенте - ноль эмоций. Поправил названия мессаг под паранойевские - с оригинальной паранойевской клиенткой работает.
В чём косяк? Не уж-то просто для фана автор тринити оставил код 3D неба, да ещё и сильно переписал его? Для тех, кто не в теме: в тринити выкинута хакнутая opengl32.dll. В паранойе без неё не работает вообще весь рендерер, но на самом деле, хакнутых функций там всего две: glDepthRange и wglChoosePixelFormat. В коде паранойи есть комментарий:
C++ Source Code:
// dont draw skybox entites, DepthRange will be incorrect
Собсно, вот оно. Небо без хакнутой glDepthRange в паранойе не работает. Но в тринити рендерер устроен по-другому. Вот и хотелось бы узнать, что может быть не так.
Может, там что не дописано? Всё-таки тринити недоделанный проект, помню, в том же коде для партиклей приходилось что-то менять, чтобы появились брызги на воде, для которых в самой тринити были готовы и конфиги и анимация. Есть две версии исходников: 1.4final и 3.08final они отличаются и их разные люди делали. В истории изменений нашёл это
"A major improvement: Minor bugfixes on some parts.
Replaced Paranoia's sloppy envpos_* maths with my
own, now objects in the sky should function fine
even if they are moving entities." про какие объекты идёт речь? Ещё в фгд есть энтити envpos_world, может, она для 3д-ская
Ku2zoff писал: но на самом деле, хакнутых функций там всего две: glDepthRange и wglChoosePixelFormat
Параноя рисует мир в укороченном диапазоне глубины 0 - 0.8. В диапазоне 0.8 - 0.9 рисуются модельки 3д скайбокса, а в диапазоне 0.9 - 1.0, собственно задники скайбокса. Вся замута особо не нужна, BUzer по каким-то причинам незахотел сделать нормальное небо через дополнительный проход, ну или хотя бы отсортировать всё это гамно по дальности. Самое ужасное что этот укороченный дептч-рендж мне достался в наследство во вторую параною, а я как вы думаете, что я с ним сделал, ну что? Правильно - полинился.
А wglChoosePixelsFormat - это еще более странная замута. Она нужна для того чтобы халфа создала альфа-буффер, а альфа-буффер нужен для того, чтобы деномические проекционные источники не светили одновременно вперёд и назад (если включить тхирдперсон очень хорошо виден светлый ректангл вокруг игрока). Причём сделано это было путём рендеринга всей геометрии в альфа-буффер и последующим умножением света на него. Совершенно дикая и тормозная замута, тогда как исправление косяка сводится к параметру текстуры GL_CLAMP_TO_BORDER. Ну может у кого-то в 2007-м видимокарты еще не поддерживали бардюр, яхз.
У меня к вам другой вопрос - зачем вы тринити ковыряете до сих пор?
Советские учёные уже давно убедительно доказали что он гамно.
А вы ковыряете. А потом теми же руками пишете на форум.
Дядя Миша писал: зачем вы тринити ковыряете до сих пор?
Затем, что сорцев hlfx нету. Это единственный мод для халфы с более-менее вменяемым кастомным рендерером и одновременно открытыми сорцами. Всякие raven city и прочие арранжменты ещё хуже. Паранойя отпадает по причине тех вот самых хаков, про которые написано выше, т.к. тащить хакнутую дллку с модом - лютый изврат.
Ну как это нету. А как же мы по твоему с Жэкой ошибки в его моде исправляли?
Цитата:
Ku2zoff писал: Это единственный мод для халфы с более-менее вменяемым кастомным рендерером и одновременно открытыми сорцами
Что вы там нашли вменяемого я понять-то не могу. Под халфу вообще нет грамотно написанных рендереров ни закрытых ни открытых.
Нашёл свою старую тему с обозором тринити. Перечитал список возможностей. Ну и что там есть? Глючные декали на моделях? Глючные зеркала и водичка из mech mod? Ну и на кой оно нужно? Эта водичка особенно реалистично смотрится на фоне стандартных халфовских текстур.
Цитата:
Ku2zoff писал: Паранойя отпадает по причине тех вот самых хаков,
Ну так перепиши. Я же русским языком говорю, исправление проще того что там нагородили - надо просто клампнуть текстуру к бардюру, а условие с альфабуффером выкинуть. А насчёт неба - ну включи спиритовское.
Придётся бамп со спекуляром из паранойи выкинуть и добавить шадовмапы. А так же вернуть вырезанные лайтстили. Да, была у меня такая мысль. Но работы много, проще взять код из тринити, и вырезать из него ненужное.
Цитата:
Дядя Миша писал: А насчёт неба - ну включи спиритовское.
А принципиальных отличий, кроме отрисовки нет? Я вот не пробовал, может ли в паранойе небесная камера выехать за пределы коробочки с небом, или нет.
Короче, будем посмотреть и тот и другой код на предмет различий, и пытаться учить матчасть
Дядя Миша писал: Crystallize да ты бери и напрямую их пиши в камеру
В камере я уже поменял vecGoal на pev->angles чтобы она мгновенно поворачивалась. Но у меня образовался вот этот странный глюк с углами и я предположил что из-за жёсткого халфовского порядка обновления энтитей положение игрока или скажем угол камеры - может браться не из текущего, а из предыдущего кадра, отсюда погрешность.
Дядя Миша писал: Ну довай карту-пример, потестирую, заодно и отлажу. Если ты используешь UMHLT мои, то оно там и не будет работать нормально, т.к. всем солнцам задаётся лайтстиль 20, это для паранои.
Потестировал. Вот оказывается что: второе солнышко игнорится компилятором от слова совсем. То есть первое включается и выключается как обычный лайт, а второе нет - ничего не происходит. Параметр -noskyfix у hlrad выставлен. Эмбиент и угол освещения моделей меняются при переключении солнышек, я вынес этот функционал из Spawn в Use.