HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- OpenGL (https://hlfx.ru/forum/forumdisplay.php?forumid=7)
-- Сжатие исходного текста деклараций (https://hlfx.ru/forum/showthread.php?threadid=1475)
Отправлено MAL 10-08-2008 в 15:34:
Сжатие исходного текста деклараций
Имеется почти готовый движок на Open GL. Нужен человек, знающий ассемблер и хорошо ориентирующийся в закрытой части кода Doom\Quake4 (win) - есть несколько вопросов, касающихся реализации сжатия исходного текста деклараций (idDecl* и производные).
На сколько я знаю, вроде Ксер и Дядя Миша известные квако копатели, поэтому решил немного помочь нашему кодеру, который столкнулся с проблемой сжатия - если у кого есть возможность и время поделиться опытом, будем очень признательны и благодарны 
__________________
...Из советов молодому пловцу:
"Не плыви по течению. Не плыви против течения. Плыви туда, куда тебе надо."
Козьма Прутков.
Отправлено XaeroX 10-08-2008 в 18:49:
Цитата:
МиГ-29 писал:
есть несколько вопросов, касающихся реализации сжатия исходного текста деклараций (idDecl* и производные).
Впервые слышу этот термин
Цитата:
МиГ-29 писал:
Нужен человек, знающий ассемблер и хорошо ориентирующийся в закрытой части кода Doom\Quake4 (win)
Бгг, думаю, что такого человека любая контора с руками оторвет 
Как устроен рендеринг в дуум3/ку4, я примерно представляю, там ничего сложного нет, тем более все технологии - устаревшие, максимум за 2004 год. Но "сжатие исходного текста деклараций" мне, увы, не pozubam 
__________________
Отправлено MAL 11-08-2008 в 15:22:
Тебе человек ответил:
Цитата:
XaeroX писал:
Впервые слышу этот термин
declaration (объявление\определение) служит для заполнения шаблона некоторого объекта данными
Цитата:
XaeroX писал:
Бгг, думаю, что такого человека любая контора с руками оторвет
руки мне нужны, отрывать не дам
Цитата:
XaeroX писал:
Как устроен рендеринг в дуум3/ку4, я примерно представляю, там ничего сложного нет
а как насчет мгновенного просчета поверхностей взаимодействия (interaction surfaces) для дин.освещения?
П.с. я разобрался в вопросе и если кто-то сюда еще забредет - используется адаптивный код Хаффмана
__________________
...Из советов молодому пловцу:
"Не плыви по течению. Не плыви против течения. Плыви туда, куда тебе надо."
Козьма Прутков.
Отправлено XaeroX 11-08-2008 в 18:51:
Цитата:
МиГ-29 писал:
declaration (объявление\определение) служит для заполнения шаблона некоторого объекта данными
Шаблоны - чушь. Использование ООП в игровых движках - маразм. Так и передай 
Цитата:
МиГ-29 писал:
а как насчет мгновенного просчета поверхностей взаимодействия (interaction surfaces) для дин.освещения?
Чооо? ©
"Мгновенный просчет" - это сильно сказано. Надо запомнить 
Насчет interaction surfaces тоже понятия не имею, что имеется в виду. Динамическое освещение в дум3 - это бамп + стенсильные тени, а какие там сурфасы освещаются - имхо никакой разницы.__________________
Отправлено MAL 12-08-2008 в 05:25:
Тебе ответили
Цитата:
XaeroX писал:
Шаблоны - чушь. Использование ООП в игровых движках - маразм. Так и передай
гляжу ты понятия не имеешь о чем говоришь, а уже оперируешь длинными и смелыми фразами а-ля "Как устроен рендеринг в дуум3/ку4, я примерно представляю, там ничего сложного нет, тем более все технологии - устаревшие...". наверняка ты знаешь, что Doom3/+ построен на ООП, и Tech5 построен на ООП и последующие СОВРЕМЕННЫЕ... думаю дальше могу не продолжать - моя мысль ясна.
Цитата:
XaeroX писал:
"Мгновенный просчет" - это сильно сказано. Надо запомнить
Запомни (С)
Цитата:
XaeroX писал:
тоже понятия не имею, что имеется в виду
но упорно продолжаешь гнуть свою линию и настаивать на своей правоте... сам прикинь в уме, что произойдет если не выбирать поверхности для вывода, при отрисовке каждого из множества ист.дин.света !??
п.с. офтопим
*ушел, закрыв за собой дверь*
Добавлено 12-08-2008 в 09:25:
От меня:
ладно ребята, давайте не будем спорить и уходить в оффтоп... Спор кто круче смысла не имеет - все равно круче всех только яйца
Предлагаю вам перенести спор в аську 
__________________
...Из советов молодому пловцу:
"Не плыви по течению. Не плыви против течения. Плыви туда, куда тебе надо."
Козьма Прутков.
Отправлено XaeroX 12-08-2008 в 09:09:
Цитата:
МиГ-29 писал:
наверняка ты знаешь, что Doom3/+ построен на ООП, и Tech5 построен на ООП и последующие СОВРЕМЕННЫЕ... думаю дальше могу не продолжать - моя мысль ясна.
Нет, не знаю. Да это и не принципиально. На форуме уже есть тема, где это обсуждалось. И какое отношение имеет мое мнение об использовании ООП к моему знанию OpenGL?
А по поводу Id Tech выше третьего - пока не выложили его полные сорцы, как там что построено, "никому не известно и никого не касается" © буфетчик Варьете
Может быть, там вообще функциональщина сплошная? В том же ку3 есть намеки на функционально-ориентированный подход к структуризации. Ну ладно, спорить об этом смысла нет.
Цитата:
МиГ-29 писал:
сам прикинь в уме, что произойдет если не выбирать поверхности для вывода, при отрисовке каждого из множества ист.дин.света
У меня сложилось впечатление, что товарищ сам смутно понимает, о чем говорит
Что значит "выбирать поверхности для вывода"? Причем тут динамические источники света? При чем тут вообще OpenGL?
Цитата:
МиГ-29 писал:
Предлагаю вам перенести спор в аську
Да как можно с товарищем спорить, если он говорит на другом языке, и я не понимаю почти не единого слова?
Сначала хоть бы о терминах договорился, прежде чем тему поднимать. Пока что я не вижу ни одной вразумительной фразы от него (кроме фраз флеймового характера, разумеется - они бесспорно составлены грамотно и четко
)
Добавлено 12-08-2008 в 16:09:
Цитата:
МиГ-29 писал:
сам прикинь в уме, что произойдет если не выбирать поверхности для вывода, при отрисовке каждого из множества ист.дин.света !??
А, у меня есть предположение, что имеется в виду составление списка поверхностей для отрисовки света для каждого источника. Ну есть разные методы, хотя бы те же порталы. Все зависит от типа движка - открытые или закрытые пространства, способ определения видимости и т.д. Опять же, причем тут эти таинственные interaction surfaces, "сжатие исходного текста деклараций" и другие простые вещи? 
__________________
Отправлено Дядя Миша 08-12-2008 в 11:31:
Сорьки, не заметил тему тогда.
Цитата:
сам прикинь в уме, что произойдет если не выбирать поверхности для вывода, при отрисовке каждого из множества ист.дин.света !??
Тов. Миг-29 ты будешь смеяться, но именно так и работала q3 - там не было возможности мгновенно получить нужный surface от конкретной ноды, поскольку разработчики BSP 46 за каким-то чертом выбросили эти переменные (firstface и numfaces) из описания ноды.
Поэтому перебор осуществлялся исключительно "втупую". Конечно скорость его была в любом случае выше, нежли у линейного, но ниже, чем у тех же BSP 29, BSP 38.
И динамический свет не "рисуется" в том понимании, как ты себе это представляешь.
Цитата:
Да как можно с товарищем спорить, если он говорит на другом языке, и я не понимаю почти не единого слова?
Полностью согласен.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено XaeroX 08-12-2008 в 12:06:
Цитата:
Дядя Миша писал:
но именно так и работала q3 - там не было возможности мгновенно получить нужный surface от конкретной ноды, поскольку разработчики BSP 46 за каким-то чертом выбросили эти переменные (firstface и numfaces) из описания ноды.
C++ Source Code:
1 | typedef struct mnode_s { |
2 | // common with leaf and node |
3 | int contents; // -1 for nodes, to differentiate from leafs |
4 | int visframe; // node needs to be traversed if current |
5 | vec3_t mins, maxs; // for bounding box culling |
6 | struct mnode_s *parent; |
10 | struct mnode_s *children[2]; |
16 | [b]msurface_t **firstmarksurface; |
17 | int nummarksurfaces;[/b] |
А это чо?__________________
Отправлено Дядя Миша 08-12-2008 в 12:30:
XaeroX это - для R_RecursiveWorldNode, а я тебе про R_RecursiveLightNode
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено XaeroX 08-12-2008 в 12:35:
А не надо мне про R_RecursiveLightNode - нет такой функции в ку3.
Ты давай отвечай на поставленный выше вопрос: "А это чо?" 
Добавлено 08-12-2008 в 18:35:
Просьба не наезжать на движок ку3. Он работает оптимизированнее ку1 и ку2. А выкинули оттуда только legacy stuff, использовавшийся в софтварных версиях рендера.
__________________
Отправлено Дядя Миша 08-12-2008 в 14:10:
Цитата:
А не надо мне про R_RecursiveLightNode - нет такой функции в ку3.
Вот именно потому и нету, что выкнули из ноды firstface и numfaces.
И я тебе уже и ответил - это для R_RecursiveWorldNode.
Цитата:
Он работает оптимизированнее ку1 и ку2
ага, повыкидывали все полезные вещи - апчхимизация называется
Де лайтстили, к примеру? Нету лайтстилей, вот и R_RecuresiveLightNode не нужен.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено XaeroX 08-12-2008 в 17:34:
Цитата:
Дядя Миша писал:
Вот именно потому и нету, что выкнули из ноды firstface и numfaces.
Да вовсе и не поэтому нету.
В ку2 вот функции Sys_MonkeyShouldBeSpanked нету, и что ж теперь?
Цитата:
Дядя Миша писал:
Де лайтстили, к примеру?
Да нафиг они в ку3 нужны?
А в своем движке в 2008 (почти 2009) году юзать лайтмаповые лайтстили - это не просто моветон, это ламерство, имхо 
__________________