Sidebar

Новые компиляторы уровней для Xash3D

Raid

VIP
Jul 11, 2006
8,308
33
220
0
CSM-чат
2 Дядя Миша:
Картинки довольно мерзкие, видимая логика теней отсутствует. Особенно срань у лампы и у двери.

[ADDED=Raid]1512947094[/ADDED]
Дядя Миша said:
Вальва и сама сделала нечто подобное, но на CPU. Правда здесь уже другой встаёт вопрос - насколько актуален перенос на GPU в паре с потерей нормальной окклюзии?
У CPU потолок в двух шагах -т.е. заранее известно что при просадке фпс уже ничего не спасёт, и на выходе получаем искусственное ограничение, а у GPU потолок где-то в глубинах космоса, тк всё упирается в видеокарту которая может быть произвольной мощности - быть единственной или целой фермой - следовательно и фпс можно поднять чисто технически. В первом случае выбора нет во втором есть, значит второй вариант. У меня 28 фпс как раз в силу того что CPU пусть и шестиядерный больше ни при каких обстоятельствах не вытянет. В то же время как что-то мне подсказывает если скормить всю графику видеокарте (для чего она собственно и существует) - она даже не заметит нагрузки.
 
Last edited:

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
Выглядит как кривые нормали.
Вопрос про арканос остаётся.
 

Skaarj

Супер Модератор
Aug 12, 2004
18,747
Last edited:

FiEctro

Ведущий
Jul 28, 2006
17,139
33
2 Raid:
Я думаю это из-за низкого полигонажа карты, если путем тесселяции увеличить количество полигонов, то думаю большинство артефактов пропадет.
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Выглядит как кривые нормали.
Выглядит именно так как должно выглядеть. Я напоминаю там всего по одному источнику на сурфлайт, в центре. Если их равномерно расположить, все артефакты уйдут, но и в кадре их будет уже не 128, а порядка 3000.
2 IvanZ9: ну без теней. Нет, от поинтлайтов и лайтспотов красиво выглядит.

[ADDED=Дядя Миша]1512990869[/ADDED]
Я думаю это из-за низкого полигонажа карты
:facepalm:
 
Last edited:

Ku2zoff

New member
Aug 12, 2010
312
34
5
0
Дядя Миша said:
Ну вот вам итоговые скриншоты с фуллдинамика. На старых компиляторах было нечто подобное.
А как оно с текстурами выглядит, можно увидеть? А то белые стены как-то не айс. И почему такая низкая производительность? В Сралкире, например, на полной динамике более сложные сцены отрисовываются с фпс 60+.
 

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
2 Дядя Миша: ну ты видишь полосы эти? Можно было бы подумать, что там вершинное освещение, и оно так интерполируется, но тут же попиксельное, судя по световым пятнам. Попробуй то же самое без сглаживания нормалей.
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
2 ncuxonaT: да нормали да, я тут посмотрел, там каша вообще творится.
Но всё дело в том, что я брал карту скомпиленную под параною, конвертил в формат для ксашNT и копировал туда-сюда. Это дико неудобно. Поэтому я сперва уж доделаю то что мне осталось - делюксмапу, сглаженные нормали, отлажу это всё параное, потом дам вам потестировать, потом адоптирую их к ксашуНТ, и тогда уже продолжу эксперименты по фуллдинамику. Оно же никуда не делось, я просто отложил в сторону.

Тут попутно еще другая трабла вылезла с ворлдлюкселями. Т.к. юнит заведомо больше текселя по размерам, то разрешение лайтмапы уже не получится накрутить таким, как на классической привязке. Т.е. texture_step 1 уже означает 1 тексель = 1 люксель, а 1 юнит = 1 люксель. Это можно было бы решить через дробные значения, но в формате целые числа используются.
 

Дядя Миша

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

crystallize

Active member
Jun 6, 2014
1,474
20
36
Дядя Миша said:
2 crystallize: я к тому что скейл текселя ты можешь еще дополнительно подрегулировать, отскейлив текстуру, а с юнитом это не получится.
Ты не оставил аналогичной возможности?
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
2 crystallize: ну как ты юнит отскейлишь?

[ADDED=Дядя Миша]1513019134[/ADDED]
Слева китаец, справа мои. Наглядный пример как блур убивает делюксмапу.
Фактор блура одинаковый, но я дополнительно умножаю на шадовмапу, что ухудшает результат разблуривания (но всё равно лучше чем без блура), и полностью убирает его негативные последствия.

[ADDED=Дядя Миша]1513019184[/ADDED]
Второй положительный момент - шадовмапа позволяет разделить лайтмапу на директ и индирект. Ну и вообще оч. полезная штука. Места не занимает - хранится в четвертом канале самой лайтмапы.

[ADDED=Дядя Миша]1513022611[/ADDED]
Вообще говоря, в чём фундаментальное отличие VHLT по освещению от всех остальных компиляторов. Формула сложения света:
VHLT: ( direct * 1.0 + indirect ) * 2.0
Other: ( direct * 2.0 + indirect ) * 1.0
Сделано это было ради корректного учёта вклада цвета текстур на поверхностях. Ну я уже писал об этом.
А сейчас наткнулся вот на такие варнинги:
dscale value should be 1.0 for final compile.\nIf you need to adjust the bounced light, use the '-texreflectscale' and '-texreflectgamma' options instead.
light scale value should be 2.0 for final compile.\nValues other than 2.0 will result in incorrect interpretation of light_environment's brightness when the engine loads the map.
Всё я равно я считаю это неправильно. Кстати -scale и -gamma я вообще выкинул из настроек. Гамма всегда 0.5 (ну она столько и была), а lightscale еденичный. Поскольку эти параметры нельзя сохранить в карту, лучше их вообще не трогать, ящитаю. А -dscale остался, его можно крутить как и раньше.
Кстати такой вопрос, кто-нибудь юзал -ambient для рада?
 

Attachments

Last edited:

mittorn

New member
Apr 22, 2010
1,213
15
0
Я пытался подобрать параметры для vhlt чтлбы получить корректное халфовое освещение, в итоге всё равно пришлось копаться в исходниках.
 
  • Like
Reactions: Gaia

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
Гамма 0.5? Что это за волшебное число?
А делюкс всё равно надо блюрить, чтобы сгладить уродские переходы.
 
  • Like
Reactions: Gaia

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
2 ncuxonaT: так я его и блурю.

2 mittorn: там по идее как должно быть:
-scale 1.0 -dscale 2.0 -notextures -blur 1.0
пробуй
 

Дядя Миша

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

[ADDED=Дядя Миша]1513152021[/ADDED]
По времени от одного до нескольких дней, на случай если что-нибудь вылезет.

[ADDED=Дядя Миша]1513153332[/ADDED]
Из последнего что хотелось бы рассказать - это coring и autocoring. Это такая китайская задумка призванная уменьшить негативный эффект от ошибки too many styles on a face. Суть её заключается в том, чтобы посчитать все возможные лайтстили, отсортировать их по максимальной яркости и отбросить самые тёмные.
Казалось бы задумка благая, но. Во первых перерасход памяти, на каждый фейс, на каждый патч маллокается не 4 стиля, а 64. Пусть даже и локально. Во вторых это приводит к 20 кратному увеличению времени работы радиосити. Чёрт его знает почему так, там вроде только add и sub. Ну вообщем время рассчёта баунсов вырастает с 3 секунд до 70. И каждый следующий отскок увеличивает время работы вдвое. В принципе это заметно и без этой системы, но когда у тебя время работы 1 секунда и возрастает до 2-х, то как бы пофигу, а когда у тебя время работы 70 секунд и возрастает до 140, уже не так интересно.
Притом что проблему оно не разруливает, просто чуть-чуть маскирует. Тем не менее не допускать множество источников со стилями на фейс это задача маппера. А компилятор, што характерно увеличивает время работы независимо от того, было это переполнение или нет. Второй важный момент - нижнее значение к которому всё клампится. Для статичного стиля оно равно нулю, для остальных по дефолту еденице (в старом раде). К чему это приводит? Перерасход времени для рассчёта нулевого стиля и уродливый практически без радиосити свет от выключаемых источников. Китаец со своей любовью к строгим математическим обоснованиям своих действий здесь внезапно облажался и влепил какие-то числа от балды 0.1 и 0.01. Ни то ни другое не являются правильными. Почему? Очень просто. Лайтмапа конвертится из флоатов в байты.
Т.е. нижнее значение легко узнать, поделив еденицу в диапазоне 0-255 на 255.
Получившееся значение ~0.003, я взял 0.004, что соответствует 1.02.
Это и соответствует границе ниже которой свет считать смысла нет. Причём неважно для нулевого стиля или еще какого. Данная оптимизация уменьшила время работы рада с 18 до 12 минут (на p_savior1). А всё потому, что как верно подметил Психопат там экспонента, свет бесконечно стремится к нулю, но никогда его не достигает. Но каждая попытка проверить значения менее 0.004 - это вызов трассы. Тежолой трассы. Вот и ответ откуда такое сокращение времени компиляции при визуально тех же результатах.

[ADDED=Дядя Миша]1513154539[/ADDED]
Какой вариант лучше?
 

Attachments

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