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

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

Рейтинг



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

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

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

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

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

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

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

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

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

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

Добавлено 18-06-2024 в 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

Старое сообщение 18-06-2024 14:32
-
Crystallize
Житель форума

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

Рейтинг



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

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

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

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

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32395
Нанёс повреждений: 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

Старое сообщение 18-06-2024 15:07
-
FiEctro
Кот Арсис

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

Рейтинг



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

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

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

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

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

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

Рейтинг



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

Добавлено 18-06-2024 в 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

Старое сообщение 18-06-2024 16:50
-
FiEctro
Кот Арсис

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

Рейтинг



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


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

Добавлено 18-06-2024 в 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 18-06-2024 в 17:54

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

Старое сообщение 18-06-2024 17:44
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



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

Только код ковырять, описаний этих эффектов нет. Но как автор Ксаша могу кое-что рассказать.

Цитата:
FiEctro писал:
TE_BEAMPOINTS

Луч между двумя статичными точками.

Цитата:
FiEctro писал:
TE_BEAMENTPOINT

Луч между статичной точкой и энтитью. Т.е. передается индекс объекта и вторая точка луча обновляется в так движению объекта.

Цитата:
FiEctro писал:
TE_LIGHTNING

Тестовая хрень, была сделана во время имплементации лучей, урезанный аналог TE_BEAMPOINTS.

Цитата:
FiEctro писал:
TE_BEAMENTS

Луч между двумя объектами, соответственно начало и конец луча могут динамически меняться.

Цитата:
FiEctro писал:
TE_BEAM

Это помоему вообще из первой кваки, оно ничего не делает.

Цитата:
FiEctro писал:
TE_BEAMSPRITE

Шаблон. Создаёт временный спрайт и прикрепляет к нему луч. Зачем нужно не знаю - это нигде не используется.

Цитата:
FiEctro писал:
TE_BEAMTORUS

Это не тор из лучей. Это просто тор.

Цитата:
FiEctro писал:
TE_BEAMDISK

Это не диск из лучей, это просто диск.

Цитата:
FiEctro писал:
TE_BEAMFOLLOW

Это не просто луч следующий за энтитей. Это трейл. След от ракеты помнишь? Вот это и есть бимфоллов.

Цитата:
FiEctro писал:
TE_BEAMRING

На тестовой карте было это кольцо. Впрочем я уже не помню, может оно было сделано из кучи обычных лучей? Но само кольцо точно рабочее.

Цитата:
FiEctro писал:
TE_BEAMHOSE

Это довольно бесполезная штука. Это обычный луч, который при взгляде перпендикулярно как бы фейдится. Других отличий нет. Для лазера было сделано, но не пригодилось.

Цитата:
FiEctro писал:
TE_KILLBEAM

Это для удаления бимфоллов.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 18-06-2024 20:17
-
FiEctro
Кот Арсис

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

Рейтинг



Цитата:
Дядя Миша писал:
Это не тор из лучей. Это просто тор.


Первый раз слышу, как он выглядит? Просто одноцветный тор? Где он используется?

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


Спасибо большое! Довольно ценная инфа.

Добавлено 19-06-2024 в 02:33:

Цитата:
Дядя Миша писал:
На тестовой карте было это кольцо. Впрочем я уже не помню, может оно было сделано из кучи обычных лучей? Но само кольцо точно рабочее.


Да оно из энтитей было собрано, странное решение если у них уже был готовый эффект.

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

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

Старое сообщение 18-06-2024 23:33
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
FiEctro писал:
Первый раз слышу, как он выглядит? Просто одноцветный тор? Где он используется?

Да нигде, в том-то и дело.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 19-06-2024 06:19
-
 Дядя Миша
racing for fish

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

Рейтинг



Добавил в формат .source поддержку групп, визгруп и кордона. Т.е. он позиционируется как полноценная замена rmf\jmf, но при этом текстовый, открытый формат. Надо будет ещё добавить цепочки из path_track и камеры. Хотя данный формат можно расширять бесконечно, сохраняя обратную совместимость.

Добавлено 21-06-2024 в 00:06:

В будущем он научится поддерживать кривые Безье из Quake3, дисплейсменты из Half-Life 2 и встроенные полигональные модели.
Точнее он в принципе это уже сейчас может - оно задокументировано в стандарте. Но в дальнейшем можно будет добавлять абсолютно любые примитивы, втч параметрические. И это никак не нарушит совместимость.
Парсер просто пропустит незнакомые секции, да и всё.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 20-06-2024 21:06
-
FiEctro
Кот Арсис

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

Рейтинг



Дядя Миша
Добавь ещё поддержку ландшафта маршевыми кубами как в роблоксе.

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

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

Старое сообщение 20-06-2024 21:11
- За что?
Crystallize
Житель форума

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

Рейтинг



Ты для демонстрации механизма декалей сделай демку с лидаром который в темноте выжигает на стенах огни, обнаруживая их форму.

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

Старое сообщение 21-06-2024 02:59
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32395
Нанёс повреждений: 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: Записан
Сообщение: 221177

Старое сообщение 21-06-2024 06:01
-
 Дядя Миша
racing for fish

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

Рейтинг



Наконец-то добавил в компилятор генерацию T-Junc-ов. С 2020-го года висела задача. Несмотря на кажущуюся простоту, это ппц какая нетривиальная задача оказалась. И вот почему.

Исторически T-соединения возникают при брашворке. При моделлинге они возникать не должны (хотя и могут). Проблемка, собственно в том, что генератор Т-соединений работает в составе абстрактного процессора треугольников, а не генерит их персонально для брашей (как сделано, например в Quake3). В таком случае было бы достаточно добавить в конвексное облако ещё одну точку, потом побить на треугольники и проблема типа решена. Но, повторюсь, потенциально эти соединения могут вылезать где угодно, а компилятор работает с абстрактными данными, не выделяя из кучи трианглов брашы\патчи\модели. И тут начинается чертовщина. Технически фикс T-Junc это сверхтонкий треугольник на грани дегенерата. Который позволяет конвейеру рендеринга корректно отработать и не допустить появление щелей \ искрящихся точек.
В Doom3, собственно, именно такие треугольники делали. Но там тонкость - в Doom3 нет лайтмап же. И нет тех проблем, которые эти треугольники провоцируют. Во первых эта тонкая срань может создать очень большую тень - то есть их нельзя включать в качестве коллизионных в рейтрейсер.
Во вторых сглаживание лайтмапы на рёбрах начинает сходить с ума. Вместо того чтобы зацепиться за соседнее ребро, оно цепляется, правильно, за этот самый T-Junc дегенерат. И вместо сглаживания лезут лютые артефакты. Я честно говоря даже представить не мог, что с ними вылезет только проблем. Но тем не менее успешно разрулил.
Засада ещё и в том, что я никогда и нигде не видел как эту проблему решают для конвейеров с треугольниками, руководствовался исключительно пролетарским чутьём.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 22-06-2024 16:05
-
FiEctro
Кот Арсис

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

Рейтинг



Дядя Миша
Так, а как решил то?

Вообще откуда могут быть Т-Джунки если компилятор больше не режет геометрию под лайтмапу? Мне кажется это уже какой то баг генератора треугольников.

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

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

Старое сообщение 22-06-2024 17:11
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 00:35. Новая тема    Ответить
Страницы (253): « Первая ... « 243 244 245 246 [247] 248 249 250 251 » ... Последняя »   Предыдущая тема   Следующая тема
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