![]() |
Показать все 213 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- XashXT (https://hlfx.ru/forum/forumdisplay.php?forumid=30)
-- XashXT: Скриншоты нового рендерера (https://hlfx.ru/forum/showthread.php?threadid=4218)
XashXT: Скриншоты нового рендерера
Для начала объясню что это и зачем это нужно. Я хорошо запомнил как вы радостно приветствовали первые скриншоты с рендерера Xash 0.5 К сожалению я почему-то не могу найти ту тему, может вы поможете? Ну да ладно. Суть в следующем: после выхода Xash 0.5, а тем более Xash 0.6 очень многие люди объявили о начале работ над своим модом на базе ксаш-мода, кое-кто просто перешёл со спирита, кое-кто даже с сорса, а некоторые начали делать мод, но шифруются . Есть правда еще один товарищ (не будем показывать пальцем), который постоянно грозится запилить мини-мод, а на деле даже карту-коробку склепать не может. Ну не будем уподобляться.
Практически все анонсированные и часть неанонсированных проектов я видел, они мне очень понравились. И тогда встал закономерный вопрос - как сделать картинку еще красивше? Если старый ксаш-мод всего-навсего демонстрировал как на расширенных интерфейсах движка быстренько сделать красивый рендерер, не хуже Trinity Renderers, то новый ксаш-мод превратился во вполне серъезный инструмент для разработки модов. Однако рендерер с самого начала под такие нагрузки не рассчитывался. И чем больше он усложнялся тем страшнее становилось его трогать. А неразрешенные вопросы накапливались (в частности тот же бамп). Финальную версию ксаш-мода, где мне удалось максимально всё утрясти и
ничего не нарушить вы видели - это версия 0.64. Любые дальнейшие работы над рендерером ничего хорошего не обещали. Стало ясно, что пора что-то менять. Но что? Покойный Бумка в своё время говорил "надо менять концепцию". Именно так я и поступил. Из назревших проблем стало ясно - нужна система материалов. Но какая? Первая система материалов появилась еще в третьем квейке. Это был, можно сказать, самый первый шейдерный язык, который обрабатывался еще на CPU, а ами видеокарты еще и не подозревали, что в них будет возможно грузить пользовательские программы. Была контекстно-зависимая система материалов в Source (для разных поверхностей - свои параметры), была универсальная система в Unity, Unigine (на XML), наверное были какие-то еще. XML я отмёл сразу - в блокноте его редактировать способны только мазохисты, а значит и ценность формата, который заявлен как текстовый, стремиться к нулю. Сорсовская система мне не понравилась своей контекстно-зависимостью, а значит сознательным ограничением возможностей. Кутришные шейдеры давно и безнадёжно устарели. Была мысль написать "совершенно новые обои", однако разработка в этом случае затянулась бы на год-другой, к тому же я не был уверен, что моя логика будет воспринята вами правильно. После некоторых колебаний решение было всё же принято. Я остановился на шейдерной системе из Doom3, точнее её порта в Quake3, сделанной автором движка X-Real (Tr3B). Рассчёт был таким: то что я беру готовый рендерер, значительно сокращает время разработки, однако работы по адаптации и переписыванию остаётся достаточно много. Но вся эта работа лежит в той области, над которой мне давно хотелось поэкспериментировать, чтобы кое-чему научится, а заодно и дать себе ответы на мучившие меня вопросы. На данный момент работа над рендерером идёт вовсю. Результат мне вполне нравится. То что получится в конечном итоге превзойдет все шейдерные системы, построенные на базе Doom3\Quake3, поскольку я изучил их и учёл весь опыт. Но самое интересное, конечно, это подружить халфовские рендермоды и шейдерную систему. Игроки и мапперы не поймут, а вот Ксерокс наверняка проникнется Если у меня будет достаточно свободного времени, то первую альфа-версию ксаш мода с новым рендерером вы увидите уже в конце февраля. Ну а когда он будет полностью отлажен и оттестирован, то я перенесу его в XashNT в качестве базового рендерера. На текущий момент рендерер умеет рисовать мир, брашевые модели, декали на брашевых моделях и небо. А студиомодели, декали на них, спрайты, лучи, дождик, динамические источники света, зеркала, порталы, мониторы, ави-текстуры, тени - соответственно еще не умеет. Но мне уже есть что показать вам, чтобы вы смогли правильно оценить потенциал рендерера. Этот пост будет обновляться по мере появления новых возможностей в рендерере. Как говориться - следите за новостями.
Ну а теперь - дискотекаскриншоты!
Первым номером идёт бамп, который вы все так ждали. Но бамп есть много где, в HLFX и Параное, например. Меня интерисовало, как бы сделать бамп, который учитывал статические источники света (лайтстили).
Именно это я и реализовал первым делом. На карте находится два пульсирующих источника света (слева и справа). В то время когда один горит в полную яркость, другой, наоборот, потухает. В динамике это выглядит как перетекание света
слева-направо и обратно. Но без бампа эффект размытый. А вот с бампом это выглядит гораздо интереснее:
бонусом на скриншоте вы можете видеть типовой экранчик из Quake3 (шейдер был взят из самого Quake3 без каких-либо изменений).
Бамп - хорошо, а бамп со спекуляром - еще лучше! В принципе на вышеприведённом скриншоте спекуляр тоже присутствует, но там он настолько минимальный, что на скриншотах его не видно.
Поэтому следующая пара скриншотов демонстрирует спекуляр (текстуры из паранои). Свет - всё те же два пульсирующих источника.
декаль случайно попала в кадр, более подробно про них - чуть ниже.
Шейдеры можно легко заменять, создавая крайне сложные конструкции, включащие в себя бамп, спекуляр. Единственное условие - чёткое понимание того, что вы делаете. Я планирую написать подробный справочник по шейдерам, когда система будет закончена.
А пока - вот пример сложного шейдера. Взят из X-Real. Здесь 10 проходов, включая бамп и спекуляр. Но часть проходов была объединена в мультитекстурный проход еще на этапе создания шейдера.
Для тех кто не понял - крыльчатка вентилятора имеет бамп, спекуляр, а белый круг за ним светится в темноте. Ну и разумеется крыльчатка вращается.
Следующая интересная тема - это мультислойные ландшафты. Вариантов плавного перехода между слоями достаточно много, но на данный момент я остановился на алгоритме из Q3Map2 (вертексное смешивание по альфе).
Почему именно на этом варианте? Меня уже давно интерисовало, возможно ли этот алгоритм из компилятора использовать на этапе загрузки карты движком. Не будет ли это тормозно?
С учётом того, что на этапе компиляции я бы всё равно не смог этого сделать - в формате карт халфы попросту некуда сохранять цвета вертексов, эти данные появляются только в движке.
возможно кому-то покажется не слишком красиво, но зато это бесплатное текстурирование - оно никак не влияет на FPS. Ну и разумеется присутствует вариант текстурирования по хейтмапе и по дотпродукту (как и в самом Q3Map2).
Ну и напоследок поговорим про декали. Тут есть одна тонкость. Дело в том, что декаль наложенная на поверхность с бампом выглядит жутко. Вот так:
т.е. создается впечатление, что это не декаль, а наклейка какая-то, у которой середина ничего не касается. В Custom Build вы могли наблюдать нечто подобное.
Метод решения довольно прост - рассчитать координаты основной текстуры и взять этот кусок для нормалмапы, применить его к декали. То есть декаль на поверхности с бампом тоже приобретает бамп:
Тут хотелось бы упомнять что декали без альфа-канала (как в параное) во всех этих шаманствах не нуждаются, т.к. "вьедаются" в основной цвет диффузки, подобно детальным текстурам.
Но у них есть одно серъезное ограничение - они не в состоянии перекрывать друг-друга, они просто перемножают цвет при пересечении. Выглядит это некрасиво. Поэтому я продолжаю использовать классические халфовские декали.
Кстати о перекрывании. Меня довольно давно посещала мысль о том, что перекрывание декалей должно меняться, если они находятся на стекле, на которое мы смотрим с обратной стороны. Но на старом рендерере реализовать подобное было
достаточно непросто в виду отсутствия сортировки. А вот на новом рендерере я это сделал: Слева вид спереди, справа - вид сзади.
Для начала пожалуй достаточно, у меня для вас остался только один скриншот. Это процедурное небо. Самое обычное небо из Quake3. Со временем на его базе будет построена система смены времени суток.
Update at 03.01.2014
И еще немного о террайнах. Как я понял, народ недоволен тем, что для текстурирования террайнов нету вменяемого редактора. Поясню принцип: на террайн квадратной или прямоугольной формы накладывается хейтмапа, тоже квадратной или прямоугольной формы. Каждый оттенок серого считается за слой. Всего слоёв может быть 256. Но вы в состоянии искуственно ограничивать их кол-во. Каждый слой, равно как и переход от слоя к слою имеет персональный шейдер, который вы можете настраивать как вам угодно. Вот для примера вид на террайн с высоты птичьего полёта. Догадайтесь как выглядит хейтмапа
я сначала хотел написать другое слово, но потом вспомнил, что Ксерокс объявил борьбу с матерщинниками и передумал.
Update at 06.01.2014
Вот, вместе с ФиЭктрой сделали гифку, как меняется лайт-вектор при угасании одного статического источника и разгорании другого. Это повторюсь, лайтстили - чистая статика.
Update at 08.01.2014
Ну вот и обещанный бамп на моделях. У меня к великому сожалению нету нормалмапы и спекулярки для какой-нибудь нормальной модели, ну я не знаю, учоного или десантника. Поэтому пока придется довольствоваться квадратным шкафчиком из халфы. Нормальки за авторством Фиэктры. Если кто-нибудь мне даст приличную модельку с нормалмапками, то я с удовольствием сделаю для нее скриншоты. Заодно может и тангент-спейс подровняю, т.к. по плоскому ящику сглаживание проверить затруднительно.
Кстати, хочется отметить забавный факт, что новый рендерер уже поддерживает бамп, а классический халфовский хром еще нет
Update at 10.01.2014
Возвращаясь к теме террайнов с мультислоями. Переходы между слоями обеспечиваются за счёт записывания соответствующих альфа-значений в цвет вертекса. Как и любой другой повертексный эффект, его качество сильно зависит от общего кол-ва вертексов. Справедливости ради стоит заметить, что для попиксельного эффекта ситуация точно такая же, но мы так давно привыкли использовать текстуры высокого разрешения, что вообще об этом не задумываемся. Но вернемся к теме. Предположим вы хотите сделать плавный переход между слоями текстур на абсолютно ровной поверхности. В случае с гористой местностью дело обстоит просто - все эти горы автоматически дадут нам порядочное число вертексов для сглаженного текстурирования. Для ровной поверхности нас ожидает весьма неприятный эффект, связанный с зависимостью разрешения лайтмапы от наложения основной текстуры. Итак, мы можем заставить компилятор поделить ровную поверхность но множество маленьких поверхностей, что повлечёт за собой следующие проблемы:
1. нам понадобится чудовищно маленький скейл, чтобы достичь приемлемой плотности треугольников
2. это автоматически заставит компилятор использовать сверхчёткие лайтмапы, тогда как для террайнов наоборот предпочтительнее размытое освещение
3. время компиляции вырастет 10-15 раз (и это на карте коробке)
4. лайтмапы быстро кончатся даже в новом ксаше, который юзает лайтмапы 1024х1024.
Короче говоря - возникает противоречие. Встроенный тесселятор как раз и призван его устранить. Тесселятор не имеет побочных эффектов, поскольку рассчитывает поверхности 1 раз, а поскольку они остаются принадлежать одному сурфейсу, то и рисуются всегда за один раз и как следствие - нет проседания в скорости. Впрочем для мультислойных террайнов это правило не соблюдается, как вы понимаете, но к падению FPS всё равно не приводит. Единственное ограничение - избегайте ставить совсем уж маленькие значения тесселяции. Тесселятор работает так же как и в Quake 3 - параметр в шейдере tessSize. Но в отличие от него разбивает полигоны на старте игры, вместо того, чтобы поручить эту работу компилятору. Это весьма удобно, т.к. не надо полностью перекомпиливать карту, чтобы подогнать текстурирование. В Quake3 меня это очень раздражало.
Ну а теперь скриншоты для наглядности:
Пытаемся наложить текстуру террайна из предидущего скриншота (надпись Xash3D текстурой песка) на абсолютно плоскую поверхность. Fail
Пытаемся разобраться почему, включаем gl_wireframe (или в терминологии нового рендерера r_showtris).
Ну понятно, треугольников мало, да и разбиение по дефолту стрёмное - так мультислойную текстуру не наложишь.
Прибегаем к помощи тесселятора, для начала поставим разбиение 256 (минимально возможное)
О, уже появились песчанные пятна, но на буквы они совсем не похожи. Маловат уровень тесселяции. Попробуем 128?
Пятна начинают складываться в буквы, но всё равно, слов не разобрать. Следующий шаг - 92
О, вот уже появилась минимальная читабельность, хотя угадать написанное слово, трудновато. Но мой пример - вырожденный, навряд ли кому-то придёт в голову расписывать террайн надписями. Тем не менее продолжим эксперимент. Поставим tessSize 64.
Урря, надпись вполне читабельна. Теперь уберём сетку и включим лайтмапы (r_showtris 0, r_fullbright 0) и посмотрим на итоговый результат.
Слева tessSize=64, справа tessSize=32. Второй вариант приведён специально для тех нудил, которые щас начнут нудеть "а вот буква H плохо прорисовалась, да и вообще". Я хочу еще сказать, что это - предельные случаи, иными словами текстурка размером 64х64 была растянута по размеру всей карты, что с учётом разбиения по лайтмапам дало совсем мало реальных полигонов. Ниже приведён скриншот с классического рендерера со включенным gl_wireframe - это то, что мы увидим в редакторе карт, до наложения, собственно шейдеров.
То есть, как видите - это всего один реальный полигон (msurface_t). А всё что на скриншотах - работа тесселятора. Так же заранее отвечу на пару предполагаемых вопросов:
Q. это что, тесселятор работает только на плоскостях?
A. нет, он работает на любых поверхностях, просто здесь его применение наиболее уместно. Никто не мешает тесселировать и без того насыщенный террайн. Но тогда FPS действительно может упасть.
Q. стоп-стоп, так ведь шейдеры применяются по одной штуке на msurface_t, как же эта чертовщина работает?
A. на данную конреткную поверхность наложился переходной шейдер между слоями A и B. А надпись Xash3D записана в альфу вертексов, что и делает возможным получать подобные эффекты. С другой стороны три слоя на одну реальную поверхность нам уже не наложить, но ведь это вырожденный случай, просто для примера.
Update at 12.01.2014
Ну вот, скриншоты обещанного бампа на моделях. Как я и предполагал, качество бампа сильно зависит от правильности построения касательного пространства. В простейшем случае мы можем от фонаря построить два перпендикулярных вектора от нормали и это проканает. Но физически корректного освещения, вы понятное дело, так не получите. Давайте посмотрим те методы, которые пробовал я и какие результаты получил при этом:
Самый простой способ построения корректного тангент-спейса - находим тангент-спейс для треугольника по классической формуле (т.е. создаём нормаль от треугольника). Затем добавляем получившиеся векторы во все три вертекса текущего треугольника. Добавляем - имеется в виду суммуируем с уже имеющимся там значением. Затем просто нормализуем оба вектора для каждого вертекса в доп-проходе и делаем получившуюся матрицу ортонормальной.
Кстати, раз уж зашла речь об ортонормальности, хочу объяснить для чего так делают. Мнения тут неоднозначные, кто-то говорит, что на ортонормальной матрице приличного бампа не добьешься. Но их делают таковыми по одной простой причине: из ортонормальной матрицы можно смело выкинуть бинормаль, а вместо нее оставить только один флоат с записанным туда знаком плюс или минус. В дальнейшем получение бинормали в шейдере выглядит как результат кросс-продукта, умноженный на сохраненный знак. Данная компрессия без потерь даёт нам экономию 8 байт на вертекс и способствует выравниванию размера вертекса к четырём, что полезно для вертекс-кэша. Правда я очень страдаю из-за того простого факта, что мы юзаем целый флоат там, где хватило бы и одного бита, но ничего не поделаешь - выравнивание, судя по всему, гораздо критичнее для быстродействия, применительно к GPU.
Итак, вот скриншот с построением касательного пространства по простому методу:
Как видите бамп выражен довольно слабо + присутствуют артефакты освещения, обусловленные тем, что мы игнорировали сглаженные нормали в самой модели при построении нашего тангент-спейса. Для коробки на прошлых скриншотах это не имело никакого значения, а на модели более сложной сразу стало заметно.
Хорошо, давайте попробуем рассчитать бамп по более хитрому способу - с учётом имеющихся нормалей у вертексов. Подобный метод используется в компиляторе studiomdl в сорсе. Суть такова: сначала мы считаем классический тангент-спейс для треугольника. Затем строим обратную таблицу индексов, которая возвращает нам номер треугольника для текущего вертекса. Пользуясь этой таблицей мы суммирем вклад ото всех треугольников, которые юзает данный вертекс. Ну и в финале снова строим ортонормалку, подгоняя результат с учётом сглаженной нормали, принадлежащей вертексу. Результат представлен на скриншоте ниже:
Как видите - артефакты освещения исчезли. Не могу утверждать наверняка, но видимо XaeroX в Волатайле юзает аналогичный способ построения, с той лишь разницей, что его тангент-спейс пишется внутрь модели, а мой строится в кэше рендерера.
Бамп, это конечно хорово, но сами понимаете - техника далеко неидеальная. Рельеф получается за счёт наложения тени в нужных местах, что отлично подходит для резких перепадов высоты, но малоприменимо для тел монстров, где этих перепадов немного. Но нам повезло, у конкретного монстра есть выпирающие рёбра. На них-то бамп и будет заметен более всего. Особенно если добавить спекуляра. Давайте же проделаем это. Сначала на упрощенном алгоритме построения базиса касательной:
Кстати оговорюсь, что такой лютый спекуляр был накручен специально, при помощи встроенного в движок обработчика изображений. Оригинальная спекуляр-мапа почти не вносит изменений, главным образом заставляет блестеть глаза Архвиля. Ну а здесь я выкрутил, чтобы было наглядно. Артефакты из-за инорирования сглаженных нормалей резко бросаются в глаза. Теперь посмотрим, что у нас получится с использованием алогритма из хл2:
Разница налицо, как видите. Однако в том коде присутствует некий секретный режим, связанный каким-то образом с редактором ZBrush. Он включает еще дополнительное сглаживание для тех вертексов, которые вроде не имеют shared-индекса для соседних треугольник, но имеют точно такую же позицию. Иными словами - для того чтобы построить strip-секвенцию, для начала надо построить Fan-секвенцию. Её вертексы будут уникальны по размещению в памяти, но могут иметь эквивалентные координаты для последующих strip-треугольников. Вот именно такие случаи данный участок кода и обрабатывает. В сорсовском студиомдл включается секретной командой $zbrush в qc-файле. Кому надо - возьмите на заметку. Ниже представлен результат работы со включённым доп.сглаживанием:
На этот раз, как видите результат близок к идеалу. Впрочем рельеф всё равно недостаточно выражен. Главный убийца бампа - это амбиентное освещение. Давайте выкрутим его на минимум и посмотрим на результат:
А здесь я даже спекуляр не стал выкручивать - и так объем чувствуется, насколько это вообще возможно для бампа. Кстати вот вам любопытный факт для размышлений: ксаш для динамических источников света использует точно такой же подход, что и Doom3 - если на объект светит сто источников, то обработаны будут все последовательно. Я не буду утверждать, что подглядел это решение в Doom3, это мне с самого начала казалось простым и естественным решением. Таким образом, если мне удастся апчхимизировать отрисовку моделей, путём перевода на VBO и рассчёта трансформации вертексов в шейдере, или точнее говоря, если у меня хватит опыта и умения получить этот прирост, то на новом рендерере вы сможете запросто клепать думо-подобные игры, с полностью динамическим освещением. Такие дела.
Немного подумав добавил скриншот модельки без бампа вообще - чтобы была какая-то точка отсчёта для сравнения:
Update at 2.02.2014
Давненько не обновлял тему, запощу пару скриншотегов. Это опыты с аппаратным скининнгом на GLSL. Разница между скриншотами - в счётчике фпс. Карта - вот эта. Ну вы её знаете.
На втором скриншоте нет освещения просто потому, что я его еще не доделал. Теперь, чтобы у вас не сложилось превратного впечатления, расскажу в чём тут суть. Сам по себе аппаратный скиннинг не даёт такого прироста. Это очень легко проверить - достаточно закоментировать в обычном рендеререр, собственно отрисовку на glBegin, но оставить трансформацию вертексов модели. FPS резко вырастет с 30 до 240. Т.е. затык - он не в трансформации вертексов, а в прокачивании геометрии на видеокарту каждый кадр. Основной боттлнек кроется именно там. Впрочем это и так всем известно. Данные, будучи загруженными в видеопамять больше никоим образом не обновляются с CPU, только через шейдер. Отсюда и вытекает необходимость в аппаратном скининге. Если просто создать VBO Buffer и обновлять его каждый кадр, то прироста вы не получите. Но основная засада кроется как раз таки в том, что слишком многое в Q-движках крайне затруднительно перенести на GPU, сохранив вид эффекта неизменным. А в случае с отрисовкой уровня положение осложняется еще и наличием разроненных низкополигональных фейсов, которые нет никакого смысл помещать в VBO - glBegin окажется быстрее. Пример - та же Paranoia. Там весь мир помещён в один большой статичный массив, однако скорость его отрисовки немного ниже, чем у того же ксаш-мода. Вообщем, подводя итоги, хочется сказать - только эксперименты, профилирование и сравнение результатов. Никаких догм "A быстрее чем B". Подобные догмы, как я уже упоминал хорошо работают только модельке дракончика из NvidiaSDK, но не на реальных приложениях.
Update at 10.02.2014
Ну вот наконец дошли руки протестировать ортонормальное базисное пространство в сравнении с ненормированным. На левом скриншоте - ортонормированное, на правом - исходное.
Артефакт освещения видно невооруженным глазом. Кстати в Source базисное пространство ортонормируется еще на этапе компиляции в модель. Но подобный стандарт задавался в 2004 году, так что их можно понять - два кросспродукта дают меньше операций, чем два вращения вектора по матрице. Ну и конечно один vec4 вместо двух vec3. Но в потенциале - появление вот таких вот артефактов. Хотя, повторюсь, не на всех моделях оно вылезает, видимо еще и от аккуратности моделлёра зависит.
Update at 12.02.2014
Параллакс на студиомоделях
Используется шейдер из кризиса. В принципе достаточно неплохо выглядит.
На сегодня всё. Комментируем, лайкаем тред, задаём вопросы
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Это восхитительно! Работа дяди Миши, как всегда, на высоте
__________________
Base Defense on Steam, ModDB
Хорошая новость, теперь графон присутствует не только в Volatile3D II, а в обеих движках .
И да, заснял бы видео, дабы нормально показать небо и динамические источники света.
PS:
Теперь мы знаем, чего ждать от Paranoia 2 .
__________________
Красиво)))
Не знаю, что сказать.... Хотя, у меня хочется увидеть bump и specular в модельках, вот это было гораздо грандиозно!!!
Скрины это не совсем то, видео бы для полной оценки всех новых фичей!
Шейдерные скрипты это конечно хорошо, но первое время будет тяжело тем, кто ими никогда не пользовался, но они того стоят!
Есть несколько вопросов:
1 тени будут динамик онли или как-то иначе?
2 будет ли бамп и спекуляр на моделях?
3 формат карт и моделей измениться?
4 будут ли патчи аля дуум 3 ?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
А если на большой карте будет исключительно динамическое освещение и динамические тени, то каковы прогнозы по поводу фпс?
>http://pix.academ.org/img/2014/01/02/143a00f7f4d54187a08ec37193110f72.jpg
сюда бы ещё скрин из редактора же!
__________________
http://www.moddb.com/mods/monorail-quest
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Речь не о моих хотелках, а о картинке на выходе.
Ну что ж, подождём февральскую альфу. Пока о каком-либо графоне говорить преждевременно.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Сама тема тонко намекает на то, что-то будет, а что именно узнаем в феврале! )))
Отличная работа. Жалко лишь то что в редакторе придется делать все равно только через вады.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
УРА УРА УРА!!! Наконец я дождался! Дядя Миша, респект тебе! Буду ждать с нетерпением! Но перелопачивать придется все карты.
1. Дядя Миша, а динамические проекционные источники света, будут с теми же ограничениями, что сейчас или же его наконец-то можно будет использовать для полноценного освещения и в качестве солнца?
2. Будет ли отрисовка декалей у моделей?
3. Будет ли оптимизация рендера моделей, чтобы высокополигональные модели или просто большое количество моделей на карте. не роняло fps.
4. Раз уж, будет улучшенная модель освещения у моделей, то хорошо бы добавить не только бамп и спекуляр, но и фонг.
5. Это к рендеру отношения не имеет. Просто если будет решен вопрос с проседанием fps у моделей и будет нормальная модель освещения, то хорошо бы в новый Xash3D StudioModel добавить опциональную возможность разбивки hi-poly моделей на бодигруппы.
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
!
Дядь Миш, работа впечатляющая, но хотел бы напомнить несколько оптических истин, как и почему создается имитация реалистичной картинки.
Ведь всем известно что идеал - это то что мы видим вокруг в реальном мире, поэтому хочу сказать следующее:
свет и тень
любой объект (размер, форма, фактура, расстаяние) разпознается глазом человека благодаря свету и темной части. Это любой оптик знает. Свет и тень. Они говорят о всем. Поэтому хотелось бы сосредоточить внимание на свете и тени от объекта.
Уверяю - что какой бы не был хилинький движок - но при правильном отображении того и другого от объекта - создается ассоциация с реальной жизнью. Это 90% репутации "картинки".
шейдеры
наконец-то система материалов реализуется согласно моих желаний. Если кому-то система материалов как в Думе 3 покажется сложной - тогда этому человеку нечего делать в моддинге.
модели
ИМХО наболевшая тема как для голда так и ксаша. дело в том что модели всячески выделяются от брашей, ну как не крути. По-моему нужно максимально унифицировать материалы под браши и модели.
Правильным путем пошли ребята из ID Software. Различие в шейдерах моделей и брашей практически отсутствуют. (я не находил).
Во всяком случае - мне нравится то что Вы делаете.
>задаём вопросы
какой масштаб текстуры на последних скринах?
__________________
http://www.moddb.com/mods/monorail-quest
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Crystallize
Игра без динамических теней не может выглядеть реалистично, если это не игра по мультику (например, по май литтл поне).
__________________
__________________
А давайте сделаем эту тему "Интересной"?
__________________
How interesting, just look at that!
© Scientist
-=DrTressi=-
А смысл?
Вот эта тема, например, интересной не отмечена. Хотя казалось бы, да?
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Дались тебе лайки. Настоящее искусство не бывает популярным, по крайней мере, в первые 100 лет.
__________________
XaeroX а помнишь как мы 8 лет назад оценивали все темы по кодингу хл.ру? То-то жы!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша Оценил на отлично. Жду, когда появится на главной страничке))
ЗЫ: Как там насчёт плющмоделек ?)
__________________
How interesting, just look at that!
© Scientist
__________________
Обновился первый пост, сделали гифку с Фиэктрой
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Сразу хочу уточнить.
Это лишь на время теста убран ограничитель fps или его больше не будет?
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Что значит убран? Я просто поставил fps_max 0.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Вот как раз сейчас, пока я джек пишу, Дядя Миша эффекты разные придумает, а я потом выберу лучшие и в волатиле сделаю. Вы это, говорите, какие вам нравятся больше.
__________________
А я давно говорил,Вам бы обЬеденится,но с другой стороны,дух соперничества,тоже хорошо мотивирует-Удачи обоим )
Government-Man Прости,если не внятно выразился,я не имел ввиду обьеденить их движки .А вот обьеденить их знания-давно бы у же получали какойнить профит
Любопытная новость
В Параное все эти годы был неправильный вектор направления на свет и неправильный спекуляр. Выяснилось только сейчас, когда начал делать попикселку в ксаше. Исправлю во второй части, по идее залысины должны пропасть.
Добавлено 07-01-2014 в 10:35:
Кстати в ку3 наличествует софтварный повертексный спекуляр, мне любопытно, почему его никто никогда не юзал.
Добавлено 07-01-2014 в 10:43:
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Нет, ну, право, просто опупительно!
ЗЫ: гифку и 320*240 можно было впилить...
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
Crystallize
26 кадров всего
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
Со статикой всё хорошо пока дело не доходит до теней .
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
>> Ну тени можно как-то отдельно рисовать.
Интересно как ты себе это представляешь?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Без теней:
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Ну ладно, раз объяснять никто не хочет - запилил без подсказок
Смотрим скриншоты в первом посте.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Ну раз такое дело, и Дядя Миша начал писать код сам, без подсказок - тему можно ставить в "Интересные".
__________________
XaeroX а четвёртую тему можно поставить демку мода Fight For Life.
Я думаю она этого вполне заслуживает.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
XaeroX во, да они меняются, когда F5 жмёшь
Чтож ты раньше молчал?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
На будщее, хочу спросить, будет ли специальная тулза для написания шейдеров для материалов, что-то типа WYSIWYG редактора.
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
я правильно понимаю, что с этими шойдерами отпадает необходимость делать браши с оверлэй-маской для затемнения краёв телеэкранов с видеокамерой
__________________
http://www.moddb.com/mods/monorail-quest
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
я так понял, за основу взята демо-карта с бегающими тараканами?
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша и кваковское небо он тоже автомаически создает?
__________________
-Brain is dead-
>Скайрима
а там есть честное освещение? я в него конечно не играл, но в FNV на том же движке оно чуть ли не вертексное+совершенно не к месту шадоумэпы от моделей персонажей, хл1 выглядит лучше.
__________________
http://www.moddb.com/mods/monorail-quest
__________________
А, ну это само собой. Там очень грамотная работа со светом.
А в волатиле ещё и со статикой комбинировать можно, тогда вообще конфетку сделать можно при должных дизайнерских навыках.
__________________
>Там очень грамотная работа со светом.
ну вот не соглашусь. темень там, хоть яркость на максимум выкручивай.
вот в последнем darkplaces с шадоумжэпами -- другое дело. вроде, та же квака, с её поинтлайтами, но как круто выглядит.
__________________
http://www.moddb.com/mods/monorail-quest
__________________
XaeroX
поиграй в него. я проходил и кваку и хипнотик с армагеддоном, вроде, везде было правильное освещение. сильно сомневаюсь, что кто то вручную расставлял там фейковые лайты. но точно сказать не могу -- уже плохо помню -- играл давно, ещё в то время, когда ДМ релизил свой порт кваки на кзаш3д.
не знаю, как оно у него устроено -- не разбирался и код не смотрел. первое, что приходит на ум, это то, что в кваке все источники света неподвижные, так что думаю, что он при старте карты кеширует большую часть шадовмэп, а в игре отдельно досчитывае их для для ближних к игроку лампочек, в POV которых попали подвижные энтити и объединяет их с кешированным вариантом.
>физически правильные модели
пфф. большинство реальных источников света никак нельзя аппроксимировать точкой. как минимум -- линией, в случае люминисцентных ламп. а на практике большиство лам ещё снабжены рефлектором или матовой колбой, так что тут уже плоскость получается.
__________________
http://www.moddb.com/mods/monorail-quest
__________________
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Кстати, кто такой Борис Воронцов и почему его мнение приводится как авторитетное?
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
nemyax
Ты это сейчас к программистам придрался или к дизайнерам?
__________________
Да чтоб я знал. Понимал бы код — сказал бы наверняка. А осмысленно могу смотреть только на мешы и нормалки.
__________________
__________________
Залил скриншоты с тесселятором и его работой
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
А на моделях работает?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
a-kush-er а спекулярки?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Q. как хейтмэпа привязывается к тестуре? это как то в редакторе карт нужно привязывать шойдер к поверхности, или для каждого террайна свою текстуру создавать, которая шойдер использует?
__________________
http://www.moddb.com/mods/monorail-quest
Дядя Миша, вот тут вроде все есть
http://rghost.ru/51546370 (1.8 МБ)
1 | "-0OUT_GRND3" |
2 | { |
3 | // tessSize 64 |
4 | q3map_terrain materials/terrain/heightmap.bmp 3 |
5 | } |
1 | "-0OUT_GRND3_0" |
2 | { |
3 | q3map_tcGen ivector ( 384 0 0 ) ( 0 384 0 ) |
4 | { |
5 | map materials/terrain/rock_1.tga |
6 | } |
7 | { |
8 | map $lightmap |
9 | blendFunc GL_DST_COLOR GL_ZERO |
10 | tcGen lightmap |
11 | } |
12 | } |
13 |
14 | "-0OUT_GRND3_1" |
15 | { |
16 | q3map_tcGen ivector ( 384 0 0 ) ( 0 384 0 ) |
17 | { |
18 | map materials/terrain/sand_1.tga |
19 | } |
20 | { |
21 | map $lightmap |
22 | blendFunc GL_DST_COLOR GL_ZERO |
23 | tcGen lightmap |
24 | } |
25 | } |
26 |
27 | "-0OUT_GRND3_2" |
28 | { |
29 | q3map_tcGen ivector ( 384 0 0 ) ( 0 384 0 ) |
30 | { |
31 | map materials/terrain/stones_1.tga |
32 | } |
33 | { |
34 | map $lightmap |
35 | blendFunc GL_DST_COLOR GL_ZERO |
36 | tcGen lightmap |
37 | } |
38 | } |
39 |
40 | "-0OUT_GRND3_0to1" |
41 | { |
42 | q3map_tcGen ivector ( 384 0 0 ) ( 0 384 0 ) |
43 |
44 | { |
45 | map materials/terrain/rock_1.tga |
46 | } |
47 | { |
48 | map materials/terrain/sand_1.tga |
49 | alphaGen vertex |
50 | blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA |
51 | } |
52 | { |
53 | map $lightmap |
54 | blendFunc GL_DST_COLOR GL_ZERO |
55 | tcGen lightmap |
56 | } |
57 | } |
58 |
59 | "-0OUT_GRND3_0to2" |
60 | { |
61 | q3map_tcGen ivector ( 384 0 0 ) ( 0 384 0 ) |
62 |
63 | { |
64 | map materials/terrain/rock_1.tga |
65 | } |
66 | { |
67 | map materials/terrain/stones_1.tga |
68 | alphaGen vertex |
69 | blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA |
70 | } |
71 | { |
72 | map $lightmap |
73 | blendFunc GL_DST_COLOR GL_ZERO |
74 | tcGen lightmap |
75 | } |
76 | } |
77 |
78 | "-0OUT_GRND3_1to2" |
79 | { |
80 | q3map_tcGen ivector ( 384 0 0 ) ( 0 384 0 ) |
81 |
82 | { |
83 | map materials/terrain/sand_1.tga |
84 | } |
85 | { |
86 | map materials/terrain/stones_1.tga |
87 | alphaGen vertex |
88 | blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA |
89 | } |
90 | { |
91 | map $lightmap |
92 | blendFunc GL_DST_COLOR GL_ZERO |
93 | tcGen lightmap |
94 | } |
95 | } |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
а как хейтмэпа соотносится с размерами на карте, чем э то определяется?
__________________
http://www.moddb.com/mods/monorail-quest
областью, закрашенной одной текстурой. Так же важно, чтобы эта область принадлежала одной модели или всему миру.
Область будет аппроксимирована до квадрата или прямоугольника в любом случае - хейтмапа-то не может быть круглой.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
ну размер текстуры и размер хейтмапы соотносятся как 1:1 или как? ну, т.е. если, например, нужно замостить поле 16384x16384, то как, его надо разбивать на какие то участки и делать отдельные хейтмэпы, или растягивать текстуру на всю площадку?
__________________
http://www.moddb.com/mods/monorail-quest
Если надо замостить поле 16384x16384, надо просто покрыть его произвольной текстурой с любым именем. А потом связать с этим именем родительский шейдер террайна, в котором указан путь к хейтмапе.
Хейтмапа определит сама коэффициент масштабирования. Чем выше разрещение у хейтмапы - тем более точным будет рисунок на реальном мире. Чем ниже разрешение хейтмапы - тем более размытым он будет.
Ещё раз повторюсь, что в редакторе вы покрываете нужные вам браши ЛЮБОЙ текстурой, и её выравнивание тоже не имеет никакого смысла, текстурирование будет производится по формулам из шейдеров.
Единственное на что она будет влиять - на кол-во полигонов и на разрешение лайтмапы. Ну собственно, как и любая другая текстура.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Да у тебя шейдеры как в волатиле! %)
Только у меня вместо q3map_* - vmap_*
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Та не получится, у тебя небось modulateFunc нету. И rgbGen wave pulse.
__________________
А у тебя tcGen warp нету =)
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
А еще шейдеры на хлфх чем-то похожи, только тут слои отдельно!
(_-=ZhekA=-_)
В хлфх то же самое.
__________________
(_-=ZhekA=-_)
За основу взята одна и таже система, конечно они будут похожи.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Сделай плз пару скринов с бампом где на модель светит несколько разных цветных источников. Выглядит хорошо, правда моделька страшная, боюсь .
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
Я не думаю, что можно будет клепать карты аля дум 3 на ксаше. Фпс сильно проседает от одной модельки, а если их будет 10 или 20 ...
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Как там в хл2 меня вообще не интересует ... Я про картинку аля дум3, димамик онли!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Моделька из дум3, в модельвайвере нормальной казалась, а так да - страх
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша, вот хотел же написать "красной казалась", но не стал...
Да, я вроде и не собирался. А можешь обосновать, почему ты мне запретил?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
И что дальше? Мнение имеет место быть! Но, пока это всего лишь мнение и тем более все на стадии разработки! Так что в любом случаи нужно тестить и смотреть, что и как в итоге будет!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Нет, ты не правильно понял.
Я еще раз спрашиваю, на чем основано такое мнение?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Пока судил по скринам. Нельзя?
Дядя Миша
Вот зачем ты прикопался?
Ну скажет он тебе - "у тебя нет хороших проектов" или "я не считаю тебя хорошим кодером", тебе легче станет?
Мне вот доктор тресни подобное сказал, так легче не стало, напротив, появилось острое желание прогнать наглеца ссаными тряпками.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Я ничего! Будем ждать демку!
В ближайшее время больше скриншотов не будет.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Почему? Мы хотим скриншотов!
Как кричали герои "зеленого слоника": сладкого хлеба и зрелищ!
__________________
Q: смотрю там картинки, где несколько лайтстайлей переключаются, а лимит на их количество остался или получилось убрать его?
__________________
http://www.moddb.com/mods/monorail-quest
Убрать лимит = поломать формат BSP = поломать бинарную совместимость с халфой
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Дядя Миша
а в xashnt оно как будет?
__________________
http://www.moddb.com/mods/monorail-quest
>> Убрать лимит = поломать формат BSP = поломать бинарную совместимость с халфой
Даже незнаю, халфа не держит карты кваки в т.ч. bsp v31 , а ксаш держит. И с совместимостью всё впорядке. Я не прав?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша да нафиг уже эта совместимость с голдсорцом? Мне кажется,что она никому в ус не впилась, главное чтоб тулзы оставались неизменными, а не совместимость.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
А есть ли сглаживание моделей или это так получается, если приближать картинку?
Сглаживание везде относится к освещению модели, а не к ней самой.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Там это. Вообщем постараюсь с февраля вернуться к работе над рендерером (если).
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Я так понимаю что снова надо переобучаться? Ибо я мало чего понял. Век живи - век учись.
1 Вопрос. Если у меня уже готова скажем комната х на у. Все под КсашемХТ. Много придется переделывать под новый билд. В отношении текстур исп. только деталки. и грубо говоря 50% энтити.
Надеюсь тутор для таких чайников как я будет. Потому что документация к 0.63 далеко не полная. (извините если кого обидел, но могли бы туда интегрировать и инфу по стандартным (остаткам хл)энтити. И по переменным более ясную инфу.) Надеюсь тут пробелов не будет. А то переводил фгд, и очень устал прыгать между 3 справками. и то они все три не дали мне многих ответов.
__________________
Спасибо тем кто помогает...
И тем кто бред этот читает...
Спасибо Дяде Мише за Xash двиг...
Благодаря ему, чуть больше я постиг...
Ну чайник я, и мало очень знаю С++...
Зато леплю я карты и играю блюз...
Вот так то.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Левдиз в первую очередь напоминает Ливиз! И это символизирует.
__________________
А мне - Лендлиз.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Спасибо тем кто помогает...
И тем кто бред этот читает...
Спасибо Дяде Мише за Xash двиг...
Благодаря ему, чуть больше я постиг...
Ну чайник я, и мало очень знаю С++...
Зато леплю я карты и играю блюз...
Вот так то.
__________________
Crystallize
Жаль, что это не инспектор Лежен, а другой.
__________________
__________________
Спасибо тем кто помогает...
И тем кто бред этот читает...
Спасибо Дяде Мише за Xash двиг...
Благодаря ему, чуть больше я постиг...
Ну чайник я, и мало очень знаю С++...
Зато леплю я карты и играю блюз...
Вот так то.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Спасибо тем кто помогает...
И тем кто бред этот читает...
Спасибо Дяде Мише за Xash двиг...
Благодаря ему, чуть больше я постиг...
Ну чайник я, и мало очень знаю С++...
Зато леплю я карты и играю блюз...
Вот так то.
Вернулся к работи, добавил пару скринов и исправил год на 2014 везде.
Запутали вы меня.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Что даёт последнее обновление? Если прирост не эффективен, то зачем его применять?
Возобноаляю слежение за развитием рендера XashXT
Если,что всегда готов помочь)
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Поигрался с Alpha To Coverage. Ничего хорошего из этого не получилось и вот почему. Alpha To Coverage задействует механизм FSAA или MSAA, то есть при выключенном сглаживании попросту не работает. Но это еще можно было бы терпеть, если бы не второе обстоятельство - алгоритм в принципе не рассчитан на работу с однобитным альфа-каналом, ему подавай 8-битный. Если включить оригинальную реализацию Alpha To Coverage для однобитного альфа-канала, то мы получим ярковыраженный точечный шум на границе альфа-канала, а если применить к ним метод альфа-контраста, например реализацию от Humus, то получится вообще какая-то серая хрень. Однако на текстурах с 8-битным альфа-каналом метод работает вполне себе правильно. Чтож, отложим для XashNT.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
>> Однако на текстурах с 8-битным альфа-каналом метод работает вполне себе правильно.
А если конвертировать при загрузке?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша неужели после HD текстур кто-то будет использовать однобитную альфу для травы? Это всё равно что делать текстуры 512х512 и пихать их в вадник, при том что движек поддерживает загрузку экстернальных полноцветных текстур, т.е глупость в принципе.
Видишь ли, текстура после загрузки конвертируется в RGBA32 и разобрать сколько там изначально бит приходилось на альфа-канал уже нельзя.
Разве что запоминать, откуда текстура пришла - эта из тга, эта из вада.
И будет разброс капитальный - там точечки, здесь чоткие грани.
Плюс оно еще и работает только при включённом сглаживании, которое я терпеть ненавижу, поскольку оно роняет фпс и мылит объекты.
Ну сейчас может уже и не мылит, но раньше мылило 100%.
Так что нуегонафиг. Важны здесь не технические сложности, а сам факт, что технология лично мне не понравилась.
Добавлено 10-02-2014 в 21:21:
Обновил первый пост, добавил скриншоты сравнения для ортонормированного и исходного базисного пространства.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
А кстате. Развесовка ситуацию никак не меняет? Просто у меня её нет и я не могу протестировать. А бамп - достаточно устаревшая технология, которая в оконцове очень сильно зависит от входных данных - и от нормалмапы и от базисного пространства. Об эти вещи находятся в ведении моделёра, который теорию попиксельного освещения знает смутно. Я единственное, что могу предложить со своей стороны - еще попробовать что-нибудь сгладить, но это навряд ли. Как например сгладишь швы на пальцах или на соседних мешах?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Хорошо проведу отстранённые аналогии. Однобитный альфа канал, это нечто навроде тумблера да\нет. 8-битный альфа канал, это нечто навроде регулятора громкости со шкалой в 255 делений. Вы на голубом глазу предлагаете переделать одну деталь в другую, да еще и в автоматическом режиме. Ну где ум?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
1 = 0xff
0 = 0x00
по идее как-то так
Добавлено 11-02-2014 в 19:48:
Дядя Миша а как вообще выглядит цвет с однобитной альфой? Она отдельно где-то хранится чтоли?
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
KiQ Вот так это выглядит =D А хранится в канале TGA-файла.
__________________
How interesting, just look at that!
© Scientist
>> Разве что запоминать, откуда текстура пришла - эта из тга, эта из вада.
И будет разброс капитальный - там точечки, здесь чоткие грани.
Да, это и имелось ввиду. С 8мибитной альфой всё ясно, а однобитную преобразовать особого труда теоретически не должно составить. Все пиксели красятся белым цветом, а самый последний цвет что отвечает за прозрачность черным.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
-=DrTressi=- я имел в виду, в каком виде такой цвет хранится в файле, а затем в памяти. В яве например, цвета хранятся в int в виде 0xAARRGGBB
__________________
-Brain is dead-
Сделали с ФиЭктрой гифку, демонстрирующую работу параллакс окулижен маппинга.
Добавлено 12-02-2014 в 21:10:
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Дык пока комментировать нечего, вот и читает.
Шейдер из кризиса хороший, только, по-моему, у Борескова точно такие же.
Но мне параллакс-окулижен не нравится, тормозной он до ужаса в сравнении с обычным очищенным параллаксом.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
а оно только для студиомоделей, или там можно наложить на песок и камешки?
__________________
http://www.moddb.com/mods/monorail-quest
__________________
XaeroX Программист всегда найдёт чем занять свой комп
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
а можно пару скриншотов с камушком? уж очень интересно, как он себя ведёт на стыках граней, когда края текстуры под края браша не подогнаны.
__________________
http://www.moddb.com/mods/monorail-quest
Не, пока нельзя. А ведет он себя беспонтово, как и положено фейк-технологии. Этож не аппаратная тесселяция вам.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Мне в голову пришла интересная мысль. Про делюкс маппинг обычно говорят, что результаты освещения с его участием получаются слабее выражены, нежели с честными лампочками, в силу усреднения вектора направления на свет. Однако для статического света с радиосити это нормальная практика, щедро расставленный амбиент убьет бамп даже в третьем дууме, поскольку это принципиальное ограничение самой технологии, а вовсе не особенность делюксмапы. Но вот для лайтстилей у нас есть индивидуальные векторы, с заранее оговорённым кол-вом (не более четырёх штук на фейс), и вместо того, чтобы смешивать их в один усреднённый вектор, можно их обработать как 4 независимых источника.
Конечно это приведёт к снижению фпс, зато результат должен получится не хуже, чем в том же дуум3. Данный расклад будет полезен когда модификация лайтстилей будет целиком и полностью перенесена на GPU, что в свою очередь избавит от необходимости каждый кадр обновлять текстуру лайтмапы. Таким образом проседание в FPS от рассчёта большого кол-ва источников, вместо усреднения лайтвектора будет скомпенсировано отсутствием обновления лайтмапы. Я думаю результирующий фпс будет даже выше в итоге. Это обновление лайтмап, особенно на BSP31 жрёт адски много времени. Взять хотя бы тот же DM-Knot со включённой интерполяцией лайтстилей. Там разница в 150 фпс в самом тяжёлом участке карты (в одном из углов).
Возьмите себе на заметку, кому интересно.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша как это не обновлять лайтмапу? Она ж рисоваться все равно будет?
__________________
-Brain is dead-
Очень просто - вместо одной лайтмапы загрузить сразу четыре и складывать их в шейдере. Конечно будет небольшой перерасход памяти, но в целом не фатальный. Кнотовская лайтмапа к примеру весит 12-14 мегабайт (это на BSP31). А у современных видеокарт памяти минимум 256.
Так што норм. Технически в компиляторах стоит ограничение на максимальный вес лайтмапы в 32 мегабайта. Это, понятно со всеми лайтстилями. Ну еще столько же на делюксмапу. К тому же эта лайтмапа включает в себя освещение бмоделей. Вообщем в пределах допустимого.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша а не будет сильного расхождения со студиомоделями?
__________________
-Brain is dead-
GioHAUS0n
Ничем не напоминает. К тому же у Дяди Миши есть сорцы всех секретных компиляторов.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Непонял. Зачем бампу нужна диффузная версия лайтмапы? Каждый канал карты нормалей хочешь записать в 3 лайтстиля? А что изменится в результате?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Я ничего не хочу записать - всё уже давно записано.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 22:46. | Показать все 213 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024