HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Страницы (247): « Первая ... « 243 244 245 246 [247]   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32325
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Ещё в Юнити был очень прикольный шейдер фейковых спотлайтов, ты их мог ставить практически неограниченное количество и это даже работало на древних мобильниках.

Это обычные прожекторы. В Хл2 фонарик устроен таким образом. Естественно, если вместо текстуры фонаря выбрать другую, то это будет некоторым образом похоже на тень. Ну то есть это не настоящая тень конечно. Это тень от окклюдера, который расположен на бесконечно малом удалении от источника света, если выражаться корректно. Но понятно, что там рисуют всё что угодно на ней.

Цитата:
FiEctro писал:
Вот да, в Юнити это тоже проблема, сортировка и освещение моделей с 8ми битной альфой

Восьмибитная альфа тут вообще непричём. Для включения прозрачности альфа в текстуре не нужна. Альфа в текстуре нужна, чтобы сделать одни участки менее или более прозрачными в рамках одного полигона.

Цитата:
FiEctro писал:
С монохромной альфой сортируются они неплохо, и освещение и тени есть.

Ты опять всё напутал. Во первых монохромная альфа - это такой же мем как колоизация с рандомным англированием. Очевидно что речь идёт об однобитной альфе. Которую тоже никто не мешает рисовать в прозрачном проходе. Но её обычно рисуют через альфа-тест со включённым тестом глубины. Поэтому с ней и нет никаких проблем. Разумеется можно и восьмибитную альфу рисовать через альфа-тест, почему нет. Это даже красивее выглядит, чем в случае с однобитной.

Цитата:
FiEctro писал:
как мне объяснили это ограничение Z-буфера

Неправильно тебе объяснили. Z-буффер только для непрозрачных объектов, которые перекрывают друг-друга. Он не учитывает прозрачность отдельных пикселей внутри полигона. Такую штуку тоже можно сделать, но для этого придётся для каждого экранного пикселя хранить набор пикселей с их цветом, прозрачностью и глубиной. То есть фактически под каждый пиксель придётся завести массив пикселей для корректного смешивания. И перед отрисовкой их надо отсортировать, а уже потом сложить\предумножить. Такой буффер занимает чертовски много места (особенно в 4K) и не очень хорошо ложится на архитектуру GPU. Проще говоря - тормозно это всё, даже сейчас. Но если тебя заинтерисовала эта тема, погугли Order Independent Transparency (Translucency). Строго говоря, если бы такой буффер поддержали на аппаратном уровне, то проблема сортировки и правильного вывода полупрозрачных поверхностей была бы наконец-то решена, но это видимо никому нахрен не нужно, т.к. сейчас все делают только то, что приносит быстрые деньги - например тензорные ядра для ИИ.
И да, кстати - проблема с сортировкой полупрозрачных поверхностей, это не проблема Юнити. Это фундаментальная проблема рендеринга, которая в общем случае не имеет решения.

Цитата:
FiEctro писал:
Надеюсь в Ксаше проработаешь этот момент.

У меня сортировка на уровне поверхностей. Это лучше чем полное её отсутствие, но понятное дело, хуже, чем попиксельная сортировка OIT.
Некий разумный баланс между качеством и скоростью. То есть, если налепить стеклянный лабиринт, то выглядеть он будет правильно. А вот какой-нибудь стеклянный дракончик уже будет выглядеть далеко не так красиво.

Добавлено сегодня в 17:32:

А с отложенным освещением я не хочу связываться по очень простой причине. В основе самой техники отложенного освещения лежит допущение, что наши источники света - это либо спотлайты, либо поинтлайты, непременно с линейным затуханием. И крайне желательно чтобы радиус этого затухания всегда был меньше размера экрана, а в случае когда он больше - чтобы в радиусе прямой видимости находилось совсем немного источников. Действительно, если рисовать источники света классическим способом - через повторный рендеринг геометрии, как это делали во времена GeForce 6600GT, то отложка показывает чудеса оптимизации. Но во первых обратите внимание на любую демку отложенного освещения - там стараются впихнуть сотни микроскопических источников света без теней, тогда как в реальной игровой ситуации подобного просто не встречается. Аналогично можно бросить камень в огород в сторону физических движков, у которых в демках показывают громадную пирамиду из кубиков - что тоже в реальной игровой ситуации никогда не встречается.
Так вот, моя идея в том, что у нас используются лампочки с квадратичным затуханием - те самые, которые изначально запекались в лайтмапу и поэтому не тормозили. Но отложка с такими лампочками не подружится, потому что фактически каждый из таких источников гарантированно перекрывает весь экран. Т.е. мы получим чудовищный overdraw в любом случае.
Моё решение на данный момент заключается в использовании предрассчитанной визлайт-матрицы, которая совершенно точно позволяет определить все лампочки, которые светят на тот или иной полигон и сделать это за пренебрежимо малое время. Минус только в том, что эти лампы статичные, они не двигаются. Но для динамических источников как раз используются лайты с линейным радиусом затухания.
Просто с моими предрассчитанными данными, у меня всегда есть возможность найти и собрать все лампочки, которыми освещена та или иная поверхность и передать их прямо в шейдер, но не в виде настройек этих лампочек, а в виде их уникальных индексов. А дальше в шейдере мы читаем шареную текстуру где хранятся уже сами настройки лампочек и освещаем полигоны. Таким образом рендеринг и освещение осуществляется в один проход и это гораздо быстрее по факту. К тому же у нас есть приятная возможность выбирать между повертексным и попиксельным освещением, чего с отложкой сделать не представляется возможным.
Этот подход я опробовал ещё во время разработки второй паранои и он показал удовлетворительные результаты. Единственное ограничение - это кол-во лампочек, которыми может быть освещена поверхность.
Я стараюсь не передавать слишком много, чтобы не израсходовать юниформы. Других недостатков у технологии нет.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 221154

Старое сообщение сегодня 14:32
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4464
Возраст: 34

Рейтинг



Цитата:
Дядя Миша писал:
Строго говоря, если бы такой буффер поддержали на аппаратном уровне, то проблема сортировки и правильного вывода полупрозрачных поверхностей была бы наконец-то решена, но это видимо никому нахрен не нужно

Это было аппаратно на Sega Dreamcast в 1998. Но не факт что кто-то юзал.

Сообщить модератору | | IP: Записан
Сообщение: 221155

Старое сообщение сегодня 15:03
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32325
Нанёс повреждений: 392 ед.

Рейтинг



Crystallize приватку проверь

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 221156

Старое сообщение сегодня 15:07
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12960
Возраст: 32

Рейтинг



Дядя Миша
У меня к тебе такой вопрос. Можешь описать что делают эти эффекты?
https://github.com/FWGS/xash3d/blob...ient/gl_beams.c
Типа:
case TE_BEAMTORUS:
case TE_BEAMDISK:
case TE_BEAMCYLINDER:

ну и им подобные.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | | IP: Записан
Сообщение: 221157

Старое сообщение сегодня 16:25
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32325
Нанёс повреждений: 392 ед.

Рейтинг



Создают геометрические фигуры, указанные в названии. Ударную звуковую волну от собачек помнишь? Это вот как раз TE_BEAMCYLINDER.
Остальные два никогда не использовались в игре.

Добавлено сегодня в 19:50:

Ксаш эти штуки пока что не поддерживает - буду добавлять по мере возникновения необходимости.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 221158

Старое сообщение сегодня 16:50
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12960
Возраст: 32

Рейтинг



Цитата:
Дядя Миша писал:
Создают геометрические фигуры, указанные в названии.


А где то можно узнать описание полного списка или только ковырять код?

Добавлено сегодня в 20:44:

case TE_BEAMPOINTS: // Не очень понял
case TE_BEAMENTPOINT: // Не очень понял
case TE_LIGHTNING: // Молния
case TE_BEAMENTS: // Добавляет энтитию на конце луча?
case TE_BEAM: // Печатает зачем то сообщение
case TE_BEAMSPRITE: // Опять создаёт какой то спрайт на конце?
case TE_BEAMTORUS: // Никогда не видел тор из лучей, как это выглядит?
case TE_BEAMDISK: // Возможно я что то видел подобное в Scientist Slaughterhouse (https://www.youtube.com/watch?v=l5X_TdczLVg) на 2.33
case TE_BEAMCYLINDER: // Ударная волная собачек
case TE_BEAMFOLLOW: // Луч следующий за энтитией, а что другие не умеют?
case TE_BEAMRING: // Кольцо из лучей, тоже что то припоминаю
case TE_BEAMHOSE: // Эффект пылесоса? Спиралька такая. Опять просто мессага.
case TE_KILLBEAM: // Очистка?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro сегодня в 17:54

Сообщить модератору | | IP: Записан
Сообщение: 221159

Старое сообщение сегодня 17:44
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 20:03. Новая тема    Ответить
Страницы (247): « Первая ... « 243 244 245 246 [247]   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024