Sidebar

XashNT: информация, скриншоты

XaeroX

Crystice Softworks
Sep 5, 2008
9,254
38
Потому что меня же от идей распирает уже много лет
Дык отчего же получается так, что идеи распирают тебя, а ксаш другие люди пишут? Вон и предиктинг запилили, а на андроид портировали, и поддержку виртуальной реальности сделали, словом, всё, что нужно, внедрили и принесли пользу народному хозяйству! А у тебя до сих пор какие-то абстрактные "идеи" на основе пейперов крайтека.

[ADDED=XaeroX]1458572358[/ADDED]
Я бы не сказал что много, там в основном умножения и прибавления.
Не параллелится же нифига. На каждую операцию будет инструкция.
Значит как минимум одна нормализация, значит корень. Неужели это быстрее по твоему?
Там не нормализация, а кросс продукт, это одна векторная инструкция даже на допотопном железе (XPD). Плюс умножение на знак. Всё.
У тебя точно ботлнек в размере вертекса? Геометрия статическая?

[ADDED=XaeroX]1458573018[/ADDED]
И это, когда ты таки успел разочароваться в идее неортогонального базиса? :)
Тот же джек позволяет без проблем делать с помощью UV-Lock неортогональные текстурные оси. А если их ещё и заинтерполировать..
 

a1batross

Umu~!
Jan 6, 2015
664
27
2 XaeroX:
2 Дядя Миша:
Оффтоп
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Дык отчего же получается так, что идеи распирают тебя, а ксаш другие люди пишут?
Значит я смог их зажечь своими идеями. Разве это плохо?
У тебя точно ботлнек в размере вертекса?
У меня не боттлнек. Я и так уже получил фпс в два раза выше, чем в том секретном билде даркплейса. Но мне мало. Еще хочу.
И это, когда ты таки успел разочароваться в идее неортогонального базиса?
Я не разочаровался, предположим. Но с учётом последних исправлений построения TBN студиомоделей в параное, прежние утверждения требуют пересмотра и дополнительных экспериментов.
 

XaeroX

Crystice Softworks
Sep 5, 2008
9,254
38
Но с учётом последних исправлений построения TBN студиомоделей в параное, прежние утверждения требуют пересмотра и дополнительных экспериментов.
Гм. Ну если текстурное пространство аффинное, то по логике вещей и трансформация должна быть в общем случае аффинной. То есть базис может быть не ортогональным. Но это лучше у знатоков линейной алгебры спросить, у меня её было один семестр и два коридора.
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
2 XaeroX: не-не, это тупиковый подход. Он бы годился для математически точной моделей, но здесь задача стоит сделать приятное глазу. Следовательно допущения возможны. А некоторые вещи на данный момент только через аппроксимацию и делаются. Тот же реалтайм радиосити.
 

Raid

VIP
Jul 11, 2006
8,308
33
220
0
CSM-чат
a1batross said:
2 XaeroX:
2 Дядя Миша:
Оффтоп

Удваиваю. Диалог выглядит Оффтоп . Ну или Оффтоп .



XaeroX said:
У нас на работе знаешь как говорят? Нет статьи - значит, не работал и эксперименты не ставил.
В нашей стране статью получить можно легко и непринуждённо, без необходимости усилий со своей стороны, например.
 

KPE030T

Герой Советского Союза
Nov 9, 2010
3,830
28
106
36
RnD
это, антиалиазинг какойнибудь программный будет? ото мыльца очень не хватает, и вообще постэффекты нужны, без них ну вообще никуда
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
2 KPE030T: я твою карту gorod отрисовал с 1800 фпс. Скинь мне исходник, чтобы я мог её нормально скомпилить, а не конвертировать.

[ADDED=Дядя Миша]1458913963[/ADDED]
ЗЫ. постэффекты будут, всё будет, но не сразу.
 
Last edited:

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Значит по концепции, следующие изменения:
в вады сохраняется DDS. Нормалмапы, глосскарты - всё в DDS. Для диффузки используется улучшенный DDS YoCoCg. И так же сохраняется обычная текстура в халфовском формате. Если на вход подается сразу индексированная текстура - DXT не создается. Если размер текстуры не превышает 512х512 - DXT не создается. В остальных случаях создается копия высокого разрешения, а индексированная текстура ограничивается размером 512х512, согласно пропроциям. Эту-то текстуру мы и видим в редакторе. Движок в первую очередь пытается загрузить именно DDS, потом - индексированную. Если Ксерокс когда-нибудь реализует поддержку DDS в вадах, то индексированые текстуры можно будет с лёгкостью выбросить оттуда. Обратите внимание - вад, изготовленный таким образом остается полностью совместимым с халфой. Просто имеет довольно большой размер, т.к. содержит в себе нормалмапы, глос-карты и прочее. В новом формате карт я так же предусмотрел дополнительную информацию, которая позволит вкомпиливать ддс прямо внутрь карты. Второй момент - внешние текстуры отменяются совсем. Скайбокс пакуется в dds-кубемапу и кладётся в вад, с названием, например skybox.wad. Туда же можно положить и облака всякие. Трава, детальные текстуры, декали и всё прочее так же кладётся в вад. Хоть в виде индексированных текстур, хоть в виде DXT.
Несжатые текстуры остаются только в меню и худе в виде bmp-формата.
Еще момент - вы сможете потенциально вкомпилить в свою карту не только текстуры, но и всё необходимое, модели к примеру, спрайты, скайбокс.
Для такой стенд-алон карты надо будет завести подпапку в основных, по имени самой карты. Пример: карта называется de_dust2. Значит в папке models\ создаем подпапку de_dust2 и кидаем туда модельки, имеющие отношение только к этой карте. Тоже самое и для спрайтов. При финальной сборке модели и спрайты из этих папок переместятся внутрь карты особой тулзой. Я почему обратил на это внимание - я знаю, что вы обычно так и делаете, значит это привычно-интуитивный метод.
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Мейк-вад будет сам сжимать. Но разумеется останется возможность подачи на вход готовых DDS. Тогда сработает обратный порядок - DDS разожмется в 32-бита, а потом превратится в индексированную картинку :)

[ADDED=Дядя Миша]1459082532[/ADDED]
PS. Чтобы было понятнее, о чём идёт речь - скачайте Nvidia SDK 10.
Там есть этот пример с YoCoCg. И можно разные картинки подставлять.
 
Last edited:

crystallize

Active member
Jun 6, 2014
1,474
20
36
Какая максимальная длина имени текстуры?
Дядя Миша said:
При финальной сборке модели и спрайты из этих папок переместятся внутрь карты особой тулзой.
Именно переместятся, т.е. модели из папки models исчезнут?
 

GNU/Hurt

Maïté
Mar 5, 2014
1,094
23
0
>Второй момент - внешние текстуры отменяются совсем.

ну вот и всё..
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
2 IvanZ9: я может не совсем наглядно выразился, поясню.
Разберём два случая.
Случай первый, на вход вада подается индексированная текстура.
В вад пишется индексированная текстура.
Случай второй, на вход вада подается 32-битная или 24-битная текстура.
В этом случается в вад пишется джве текстуры:
1. обычная 8-битная текстура, которая урезается до максимального размера 512х512. Это максимальный размер, при котором не происходит деградации цвета.
2. DDS-текстура сжатая в DXT5 YCoCg, без каких-либо изменений в размерах,
но предварительно выровненная по 16.
8-битная текстура используется в редакторе для наложения. В игре движок сперва пытается загрузить текстуру высокой чёткости в формате DDS, а если не находит её - то уже грузит 8-битную. Несмотря на то, что текстур становится больше (две вместо одной), их суммарный вес всё равно ниже одной несжатой текстуры. Пример - грузим 24-битную текстуру 1024х1024, которая весит 3 мегабайта. Индексированная текстура ресемплится до 512х512, квантизируется и её итоговый вес составит ~340 килобайт. DDS в DXT5 будет весить ~1 Mb.
Таким образом итоговый вес двух текстур ~1.3 Mb, против трёх мегабайт. Еще момент - сопутствующие текстуры материалов не делают для себя 8-битных копий, поскольку в редакторе они нам ни к чему, компиляторам на них тоже наплевать, следовательно мы можем хранить их исключительно в DXT-виде.
Спекулярки сжимаются в DXT1, нормалмапы в DXT5NM. DDS так устроен, что его степень сжатия выше чем у индексированной текстуры, даже для жирного DXT5.
Таким образом, поскольку нам надо всё равно где-то надо хранить нормалки и спекуляр, оно попросту попадает в вад и не мозолит нам глаза. Для каждого вада существует свой файлик, с описанием материалов, на манер глобального файла, который был в параное. Там можно прописать рефлективность от кубемап, степень блеска и другие константы и режимы. Когда наш вад полностью укомплектован, мы можем вкомпилить этот текстовый файлик внутрь вада, и вад превращается в ассет материалов, как в дорогих иномаркахсовременных движках. Этим ассетом можно делиться, можно выкладывать, это уже не просто текстурки, а архив настроенных материалов. И всё в одном файле.
Ну и конечно же у такого архива сохраняется совместимость с халфой - она просто проигнорирует неведомые лумпы (я к слову тут заглянул в сорцы rehlds, голдсорс даже не удосуживается проверять тип лумпов, но к счастью использует бинарный поиск, а мейквад гарантированно пишет лумпы таким образом, что первой найдется именно индексированная текстура).
Вот примерно такой расклад.
Теперь к вопросу зачем мне всё это надо. Вады снимают кучу головной боли, во первых компилятору не надо находить путь к игре, достаточно иметь пути к вадам. Во вторых, не надо сидеть как идиоту и в каких-то кастомных шейдерах прописывать пути к своим текстурам, которые всё равно несовместимы с халфовской записью имени текстуры без путей.
Вам ведь внешние текстуры были нужны для чего? Для полноценного альфа-канала и для текстур высокого разрешения. А это останется.
 

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
урезается до максимального размера 512х512
Зачем так много?
DDS в DXT5 будет весить ~1 Mb.
А мипы?
Спекулярки сжимаются в DXT1, нормалмапы в DXT5NM.
Это всё захардкодено, или можно самому выбирать метод сжатия и вообще сжимать и делать мипы самому?
Вам ведь внешние текстуры были нужны для чего?
Для того, чтобы можно было их редактировать и сразу смотреть результат без пляски с индексированием и засовыванием в вад.
 

Raid

VIP
Jul 11, 2006
8,308
33
220
0
CSM-чат
>бмп для меню
Судя по данной фразе, оно не будет рассчитано на разрешения выше 800х600? Т.е. автоопределения экрана с расстановкой элементов вместо их растягивания ждать не стоит, я так пони-маю?
ncuxonaT said:
Для того, чтобы можно было их редактировать и сразу смотреть результат без пляски с индексированием и засовыванием в вад.
Что-то мне подсказывает, что с точки зрения оптимизации с целью повышения как производительности, так и уменьшения весов это фейл, тк решение исключительно костыльное. Хотя, конечно, я могу ошибаться.

З.Ы. Иногда мне кажется, что в пользовательском сознании существует такая концепция жертвы: мол "если мы говорим про графон, то мы готовы страдать, терпеть жирные веса и низкий фпс, ведь иначе невозможно". В силу ряда причин: какой-нибудь своей страдальческой философии, или там "корпорации не сделали - значит никто не сделает, и нечего тут вякать". А оно-то в принципе возможно, если хорошо постараться: никакие законы физики этого не запрещают. Просто никто этого не примет без побочных эффектов типа выхода из матрицы.
 
Last edited:

Game Server

CSM TV

Page QR Code

QR Code

Donate Campaign

Total amount
$0.00
Goal
$25.00

Latest profile posts

TestUser wrote on TRUP@C's profile.
Master?
TestUser wrote on TRUP@C's profile.
Hello Father

Members online

No members online now.

Discord