HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > Форматы хранения геометрии CSM и USM
Определяем дальнейшую судьбу, нужно ваше мнение
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

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

Рейтинг



Форматы хранения геометрии CSM и USM

Обратите внимание - я специально не стал в данном случае делать голосования, т.к. в него часто тыкают незадумываясь, а это весьма важный вопрос на самом деле. Тут надо чтобы те, кто понимает о чем речь написали свое взвешенное мнение о проблеме.

Итак, в классическом виде мы имеем ту самую задачку про два стула.
Или, проще говоря - два формата хранения полигональной геометрии для XashNT. Оба формата уже созданы, оттестированы и опробованы в деле.

Расскажу про них поподробнее в хронологическом порядке:

1. Compiled Static Mesh (.csm)
Содержит в себе статичную геометрию в виде треугольников и вертексов.
Вертексы имеют позицию, текстурные координаты и координаты лайтмапы.
А так же некоторые полезные флаги-подсказки для процессинга геометрии.
Формат с динамическим процессингом, т.е. компилятор может производить над ним различные действия - например индексировать вертексы, генерировать развертку для лайтмапы, итд.
Формат имеет очень простую дисковую структуру в духе первого квейка:

C++ Source Code:
1
struct csm_header_t
2
{
3
  uint32_t		ident;
4
  uint32_t		version;
5
 
6
  uint32_t		flags;
7
  uint32_t		lmGroups;
8
  uint32_t		reserved0[4];
9
  bbox		bounds;
10
  uint32_t		reserved1[4];
11
 
12
  uint32_t		mat_ofs;
13
  uint32_t		mat_size;
14
 
15
  uint32_t		faces_ofs;
16
  uint32_t		face_size;	// sizeof( csm_face_t )
17
  uint32_t		faces_count;
18
 
19
  uint32_t		vertex_ofs;
20
  uint32_t		vertex_size;	// sizeof( csm_vertex_t )
21
  uint32_t		vertex_count;
22
};

Имена материалов не имеют ограничения на их длину и хранятся, как нуль-терминированная строка, где каждый материал декорирован двойными кавычками и разделён пробелом. Сделано всё, чтобы имплементация этого формата прошла без проблем на любом языке программирования, включая и скриптовые органиченные языки, которые умеют читать файлы с диска.
Минусы: учитывая классическую организацию, формат является практически нерасширяемым. Мета-информации нет, возможности по замене\добавлению новых структур практически отсутствуют. Ну собственно, как и в аналогичных форматах, вы видите присутствует несколько резервных переменных, которые можно использовать для этого.
Но на этом как бы и всё. Произвольную информацию этот формат содержать не может. Отдельный вопрос - нужны ли такие возможности такому формату. Если бы я знал на него ответ, то не создавал бы эту тему.

2. Uniform Source Mesh (.usm)
Данный формат использует для хранения данных унифицированный контейнер, разработанный специально для XashNT. Контейнер содержит абстрактные секции, которые могут иметь произвольное имя длиной до 255 символов, размер каждой секции не может превышать 4GB, однако размер самого контейнера ничем не ограничен. В начале контейнера точно также содержится четырёхбуквенный идентификатор, однако спецификации стандарта могут предполагать и его полное отсутствие. В этом случае тип файла вычисляется путём анализа именованных секций на предмет совпадения с ключевыми именами. Для тех кому непонятно - поясню. Имена секций могут быть частью стандарта того или иного формата. Например наличие вертексных и индексных буфферов однозначно указывает что мы имеем дело с геометрией. Наличии секции с именем "bones" говорит о том, что это модель скелетной анимации. Это разумеется для примера, в контейнере со статической геометрией костей нет. Так же контейнеры на уровне концепции устойчивы к повреждению данных, у них может быть запорчен хвост, начало или середина, однако загрузчик пропустит только испорченную секцию и сможет загрузить целые, поскольку содержит встроенный поиск, аналогичный тому, который используется программами для восстановления данных, но включает его только в случае обнаружения повреждённых секций (поскольку такой поиск медленее нормальной загрузки).
Что же касается самого формата usm, то на данный момент он максимально близок к спецификациям csm (поскольку из них и создавался), однако благодаря использованию вышеописанного контейнера может расширяться до бесконечности. В такой формат можно сохранять любые другие файлы в виде секций, включая и рекурсивное вложение таких же мета-контейнеров. Т.е. потенциально здесь очень большие возможности для будущих расширений, если они вдруг понадобятся. Собственно эти контейнеры используются XashNT абсолютно для всех остальных типов данных, исключая вышеописанный формат .csm
Минусы:
Абстрактный мета-контейнер сложнее имплементировать пользователям, к тому же я не уверен, что это возможно эффективно сделать на произвольном языке программирования. К тому же в формате есть как минимум поддержка одного стандарта компрессии - LZSS. Распаковка на скриптовом языке может быть довольно медленной. Я не великий знаток явы и сишарпа, поэтому вообще не уверен, реально ли реализовать подобные вещи на них. И это ещё одна из причин, по которой я создал эту тему.

Собственно вопрос: поскольку программ для моделирования великое множество, я сделаю один из этих форматов открытым, чтобы вы могли самостоятельно внедрять его поддержку. Вот и вопрос - что для вас более предпочтительно?

Высказывайте свои соображения, давайте придём к какому-то итогу.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 27-04-2023 11:09
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



Неясно, как CSM может быть заменой для SMD, если в себя не включает по дефолту скелетную анимацию и прочие фичи из SMD? Можно сказать, что это более унифицированный формат и он не должен иметь в себе такие частности, но получается что нам надо самим:
1. Реализовать в компиляторе моделей (это уж ладно, тут ничего не поделать)
2. Создавать свой плагин для условно блендера, который мог бы анимации экспортировать.

По итогу получается много работы, и притом нелёгкой. Да и к тому же это всё вообще противоречит унификации.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

Отредактировано SNMetamorph 27-04-2023 в 11:22

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

Старое сообщение 27-04-2023 11:20
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
SNMetamorph писал:
Неясно, как CSM может быть заменой для SMD

CSM и не может. Он создавался именно для статичной геометрии.
Однако варьируя размеры вертекса\фейса, мы можем сохранять туда какую-то иную информацию, втч и вертексы с костями. Минус в том, что привязка к однму лишь размеру структуры - не слишком надёжная вещь. Т.е. это будет напоминать всё те же пляски с расширением голдсорсовских форматов, когда по всяким неявным признакам определяется, что это расширенный формат или вообще какой-то другой.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 27-04-2023 11:24
-
SNMetamorph
Житель форума

Дата регистрации: Jun 2018
Проживает: Ижевск
Сообщений: 560

Рейтинг



А еще, зачем вшивать описания материалов в статик меш? Или там не описания, а просто ссылки на материалы? Как я понимаю, материал это вообще должна быть отдельная сущность, на которую много откуда можно ссылаться.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord

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

Старое сообщение 27-04-2023 11:35
- За что?
Cybermax
Житель форума

Дата регистрации: May 2006
Проживает: ㅤ
Сообщений: 5126

Рейтинг



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

Я ничего не понял, но звучит не очень изящно.

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

Старое сообщение 27-04-2023 11:58
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
SNMetamorph писал:
Или там не описания, а просто ссылки на материалы?

Да, просто ссылки - т.е. имена материалов. Описания хранятся снаружи.
Собственно эти ссылки могут быть чем угодно - как именами материалов так и относительными путями к текстуре. Это никак не регламентируется.

Добавлено 27-04-2023 в 15:31:

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

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 27-04-2023 12:31
-
FiEctro
Кот Арсис

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

Рейтинг



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


Да никак, надо писать конвертеры например obj или fbx в твой формат. Ну либо реально заниматься свистопляской со скриптами внутри пакетов и писать отдельную библиотеку которая буквально будет эмулировать твой парсер. Ибо писать парсер персонально для каждого 3д пакета это задача практически нереальная. Для парсинга Жсона например уже библиотеки есть.

Цитата:
Дядя Миша писал:
текстурные координаты и координаты лайтмапы.


В моделинге нет такого понятия как текстурные координаты и координаты лайтмапы, там просто UV она может быть одна, а может быть 10 или к примеру 20. Зачем их ограничивать до 2х, непонятно. А ещё есть вертексколор к примеру.

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

Отредактировано FiEctro 27-04-2023 в 13:13

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

Старое сообщение 27-04-2023 13:04
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
FiEctro писал:
Да никак, надо писать конвертеры например obj или fbx в твой формат.

Конверторы в мой формат, я разумеется напишу самостоятельно и в достаточном объеме. Речь о том, чтобы программы для моделирования могли мой формат загружать и сохранять. Ну и чтобы люди могли его использовать в своих проектах без ограничений. Он для того и создавался.

Цитата:
FiEctro писал:
а может быть 10 или к примеру 20. Зачем их ограничивать до 2х, непонятно.

Затем, что 2 развертки - это самый частый кейс в игродеве. А большего кол-ва их попросту не нужно, т.к. остальные развертки элементарно генерятся уже налету в шейдере из этих двух существующих.
Но ты конечно можешь привести пример, когда тебе вдруг понадобилась там третья или четвертая развертка.

Добавлено 27-04-2023 в 16:20:

Вот возьмем формат хранения мешей в унреале. Там предполагается восьмиканальная развертка. Видимо ещё со времён FFP, когда это имело ну хоть какую-то теоретическую пользу. То есть с одной стороны - мешы здоровые просто потому что в них куча неиспользованного пространства, я изучал сорцы но так и не увидел там использования более двух каналов.
С другой стороны, а разве восьми каналов достаточно? Всегда же найдется какой-нибудь ФиЭктро, который спросит, а где бамп, а где тени, а где ротатабля, возиться, итд.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 27-04-2023 13:20
-
FiEctro
Кот Арсис

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

Рейтинг



Цитата:
Дядя Миша писал:
С другой стороны, а разве восьми каналов достаточно? Всегда же найдется какой-нибудь ФиЭктро, который спросит, а где бамп, а где тени, а где ротатабля, возиться, итд.


Ё-моё. Ну возьми ты открой любой нормальный 3д пакет, и посмотри как там устроено. Ну да, ФиЭктра видимо блендер с 3д максом написал...

И вообще прекращай искажать мои слова, ротатабля в ксаше всю жизнь была.

Цитата:
Дядя Миша писал:
Но ты конечно можешь привести пример, когда тебе вдруг понадобилась там третья или четвертая развертка.


Детальные текстуры. Всякие движущиеся элементы, например конвееры. Смешивание текстур с разным скейлом и поворотом на террейне да и много всяких таких мелочей. К слову и лайтмап то может быть несколько, или ты предлагаешь использовать одну мегатекстуру разрешением в 64к?

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


Тогда лучше сделать библиотеку. Желательно открытую, чтобы её могли портировать под другие платформы. Тогда написание плагинов заметно упростится.

Цитата:
Дядя Миша писал:
Затем, что 2 развертки - это самый частый кейс в игродеве.


На дворе уже 2023 год, а не 1998й. Зайди на Gamedev.ru и расскажи им про это, думаю над тобой посмеются.

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

Отредактировано FiEctro 27-04-2023 в 14:00

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

Старое сообщение 27-04-2023 13:47
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
FiEctro писал:
Детальные текстуры

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

Цитата:
FiEctro писал:
Всякие движущиеся элементы, например конвееры

Смещение развертки на скорость * время кадра движения конвейера - вычисляется в шейдере элементарно. Хранить смысла нет.

Цитата:
FiEctro писал:
Смешивание текстур с разным скейлом и поворотом на террейне да и много всяких таких мелочей.

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

Цитата:
FiEctro писал:
К слову и лайтмап то может быть несколько

В каком смысле - несколько лайтмап? Несколько лайтмап для одного треугольника?

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

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

Цитата:
FiEctro писал:
Зайди на Gamedev.ru и расскажи им про это, думаю над тобой посмеются.

Эпоха мультиразверток возникла во времена фиксированного конвейера, потому что на тот момент это был ЕДИНСТВЕННЫЙ способ создавать какие-то эффекты. Но в том-то и дело что подавляющее большинство разверток требуют либо локальной модификации, либо относятся к разновидности очередной проекции. Единственные две развертки, которые нельзя построить в изолированном пространстве - это вот как раз текстурная и лайтмапная. Если ты до сих пор этого не понял - зайди на геймдев.

Цитата:
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: Записан
Сообщение: 214183

Старое сообщение 27-04-2023 19:40
-
FiEctro
Кот Арсис

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

Рейтинг



Цитата:
Дядя Миша писал:
Так я про то и толкую блин. Ну сделаю я библиотеку с примерами, а мне потом скажут - этот код на шарп не портируется или что-то вроде этого.
Откуда я знаю?


Я с Апи на разных языках не работал, могу ошибаться. Но так многие приложения на шарпах/яве/питоне взаимодействуют с библиотеками на крестах.

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

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

Старое сообщение 27-04-2023 21:39
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Я не хочу делать библиотеку, я хотел выложить SDK в виде исходников, может быть вообще единым заголовочным файлом, как сейчас принято.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 28-04-2023 07:32
-
FiEctro
Кот Арсис

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

Рейтинг



Ну и ок, правда я хз как втраивать эти заголовочные файлы в питон или шарп. Там же свой синтаксис. В любом случает ДЛЛку надо делать.

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

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

Старое сообщение 28-04-2023 08:58
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
FiEctro писал:
правда я хз как втраивать эти заголовочные файлы в питон или шарп

Так и я хз. А дллку делать не хотелось бы.

Вообщем пусть Нёмыч попробует сопритюкнуть .usm с Блендером, а я вам потом расскажу что из этого вышло.

Добавлено 28-04-2023 в 12:17:

.csm уже сопритюкнут, здесь я спокоен.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 28-04-2023 09:17
-
 Дядя Миша
racing for fish

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

Рейтинг



Ладно, раз какого-то однозначного мнения нет, а большинство вообще не поняло, чём речь, приму промежуточное решение - будем пока что использовать текстовый формат .smd
Он широко распространённый, полностью удовлетворяет текущим условиям, csm, usm - это скорее для масштабных карт, как в Lost Alpha какой-нибудь, чтобы не ждать, пока компилятор их пересчитает. Так что пока обойдемся.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 28-04-2023 18:31
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 20:09. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > Форматы хранения геометрии CSM и USM
Определяем дальнейшую судьбу, нужно ваше мнение
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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