Отсуствие цветного освещение в T1/TG

Автор winter cat, 03 мая 2006 19:03:07

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

winter cat

Весьма не радующий факт того что первый Вор не поддерживает цветное освещение уже давно известен, но вот нигде не сказано что тому причина....
Вот игра System Shock 2 поддерживает цветное освещение, хотя игра больше подобна Thief1, чем Thief2. Но что-то должно быть общее у Thief2 и  SShock2 чего нет у Thief1, я вот нашел такие файлы:
clokspl.exe
clcd16.dll
clcd32.dll
dplayerx.dll
drvmgt.dll
может кто-то знает для чего эти файлы...
Если сравнить Дромеды Thief1&2 и SS2, то можно обнаружить что во втором Воре ambient light определяется тремя величинами - а именно RGB. А в SShock2(как и в первом Воре) для такого света только одна величина, я говорю про параметр Editors>Mission Parameters...>Rendering Parameters>Ambient Light, тоесть SShock2 цветным может делать только источники света, но не свет на весь уровень в целом, так как для него только одно поле для указания величины. Цвет света который выделяет объект определяется свойством Renderer>LightColor, и что весьма важно это свойство существует даже в Дромеде первого Вора, просто оно не даёт эффекта, и вот тут странно... ведь все свойства несут какую-то пользу, а это единственное нет чтоли, я имею введу если оно есть то это не зря.
Даже игры на движке Build имитируют цветное разнообразие, но это в действительности смена палитры. Да кстати ведь Вор тоже использует палитру, а ещё в любом Дромеде можно найти параметр Editors>Mission Parameters...>Rendering Parameters>Palette Res
у кого-нибудь есть понятие для чего это?
Итак один вопрос привёл и другим, но все хотелось бы узнать почему игра может не поддерживать цветное освещение???...

[Исправлено: Winter Cat, 3 мая 2006 19:04]

[Исправлено: Winter Cat, 3 мая 2006 19:05]

clearing

Формат для редактирования "цветного освещения" в Воре 2 в десятичной форме с сотыми, т.е. x.xx. В первом шкала от 0 до 1 (.1, .2 и т.д.). Но в основном цвета модифицируются в порядке спектра (ROYGBV спектр, красный, оранжевый,желтый и т.д. Вор2 в этом порядке).
Такой цикл 0 = Red
.1 = Orange
.2 = Light Yellow
.3 = Green
.4 = Blue Green
.5 = Light Blue
.6 = Darker Blue
.7 = Purple
.8 = Violet
.9 = Reddish Purple
1 = Red

Во втором воре ты можешь больше "разбавлять" цвет сотыми (формат x.xx).
http://www.geocities.com/nameless_voice/Tutorials/LightColourF.htm
http://www.thiefmissions.com/telliamed/#CColor


winter cat

Спасибо, про то что цвета в Thief2 идут радугой мне известно.
Но вообще я спросил почему Thief1 не поддерживает цветное освещение как Thief2 и SShock2? Мне очень хотелось бы это узнать, да и что делают файлы которые я перечислил выше?
[Исправлено: Winter Cat, 4 мая 2006 12:13]

clearing

Да эти файлы тут не причем, почитай. Ты просто не сможешь сделать в DromEd 1 такой цвет, с такой градацией.
А самое главное в DromEd 1 нет понятия Dynamic Light, отсюда весь ответ.



winter cat

То что в D2 называется Renderer>Dynamic light, в D1 это называется Renderer>Sefl lit, но эффект тот же самый.
Не понимаю причем тут сам редактор, обязательно чтобы он мог видет цвет? вся проблема только в нем лежит???
А зачем тогда свойство в D1 Renderer>LightColor, может как-то можно извлечь из этого пользу...


clearing

Sefl lit это пародия на Dynamic light, ты такого эффекта не добьешся. Не, не  в редакторе дело. Конкретно что там в движке добавили я не знаю, 8-битные текстуры в первом, 16-ти во втором и т.д. Просто ты тему здесь создал, я и отвечаю в этом духе (по редактору).
Глянь, чел сразу говорит, что вы думаете что он сумашедший :lol: Давненько я играл в Events at Highrock, может там и видно какую из этого извлечь пользу.
[off]Тихонько: а зачем тебе это ;), что-то химичишь?[/off]




winter cat

дело не в текстурах точно, скорее всетаки в движке, в програмном коде, эту проблему можно будет  решить если Eidos выпустит Dark Engine Source Code, как раз именно это в очередной петиции выпрашивают, надеюсь выпустят всетаки.
Кстати я где-то читал что в Воре 2 16-битный рендеринг, а в первом 8-битный. Не знаешь случайно какой он в SS2?
[Исправлено: Winter Cat, 4 мая 2006 16:00]

clearing

ЦитироватьКстати я где-то читал что в Воре 2 16-битный рендеринг, а в первом 8-битный.
Совершенно верно. В SS2 как в Thief2.
Dark Engine vs RGB Color. Раз то по SS2 интересуешся, сыграй в Bloody Ruins для Thief2 и она же Shocking Ruins для SS2.

Chuzhoi

ЦитироватьWinter Cat написал(а) 4 мая 2006 15:58
Кстати я где-то читал что в Воре 2 16-битный рендеринг, а в первом 8-битный.
Неправда. Первый вор поддерживал 3d-ускорители, где использовался 16-битный рендеринг. Более того, я даже умудрялся играть в 16-битном цвете без какого-либо 3d-ускорителя (у меня его просто не было), заменив цифру 8 на 16 в уже не помню каком файле. Все было замечательно, только прозрачность подглючивала :)


clearing

Chuzhoi, когда портализуешь миссию в D1, то рендеринг происходит в два раз быстрее чем в D2. Как раз из-за этого. Многие авторы FM-ок, у которых были слабые машины, работали исключительно на D1, хотя огромное желание было поработать в D2.
Ты путаешь понятия, почитай.
8 bit engine (Thief 1 software mode) can use up to 256 colours, 16 bit engine (Thief 2) can use 65,536 colours.



winter cat

Странно... если 8-битный рендеринг и есть причина того в первом Воре не может быть цветного освещение, тогда оно должно было проявляться в Hardware режиме, это ведь 16-битный рендеринг. Просто в Quake 2 есть тоже software и hardware режимы, в первом все источники света бесцветны, а во втором от них виден оттенок, чего ж тогда в Thief1 в hardware режим нету все равно цвета, или причина ещё в чем-то можеть быть??...

Chuzhoi

Цитироватьclearing написал(а) 6 мая 2006 6:05
Chuzhoi, когда портализуешь миссию в D1, то рендеринг происходит в два раз быстрее чем в D2. Как раз из-за этого. Многие авторы FM-ок, у которых были слабые машины, работали исключительно на D1, хотя огромное желание было поработать в D2.
Ты путаешь понятия, почитай.
8 bit engine (Thief 1 software mode) can use up to 256 colours, 16 bit engine (Thief 2) can use 65,536 colours.
Похоже, я про Фому, а ты про Ерему. Здесь же идет речь про один из режимов Thief 1. Dark Engine поддерживал и 16-битные режимы, в т. ч. (неофициально) и в Software mode.
Причина же отсутствия цветного освещения в первом воре, на мой взгляд, очень проста. Я не ручаюсь за точность цифр (битности и т. п.), но все же, поверьте опыту (я программист и при этом еще и иногда дизайню уровни для разных движков), с вероятностью 99% так оно и есть.
Итак, освещение в первых двух Ворах было лайтмэпным (в третьем - попиксельное динамическое, реализуется с помощью шейдеров). Лайтмэпы, как известно, представляют собой обычную заранее рассчитанную  текстуру. В первом воре в качестве лайтмэпа, очевидно, использовалась  Grayscale текстура с разрядностью 8 бит (или, возможно, меньшей), которая, естественно, не несет в себе никакой информации о цвете. И, само собой, в любом режиме рендеринга  - будь то 8, 16 или все 32 бита - освещение, полученное с помощью такого лайтмэпа, будет черно-белым.
Во втором воре использовались уже 16-битные лайтмэпы, с помощью которых уже можно на должном уровне передать информацию о цвете. Для того, чтобы движок мог обрабатывать такие лайтмэпы, программистам пришлось переписать рендерер. На дворе уже был 2000-й год, любой игровой компьютер уже был укомплектован хоть каким-нибудь 3D-ускорителем с поддержкой как минимум 16-битного рендеринга, и поддержку софт-рендеринга в новую версию движка не включили. Теоретически, для 2-го Вора также можно было бы написать софт-рендерер, причем он, скорее всего, был бы только 16-битный (т. к. текстуры и лайтмэпы стали 16-битными, а как их обрабатывать для 8-битного палитрового режима, я не очень представляю, хотя тут возможны варианты), но это - по понятным причинам - сочли лишней работой, поэтому 2-й Вор, радующий нас цветным освещением, требует для запуска ускорителя.
[Исправлено: Chuzhoi, 6 мая 2006 18:23]

clearing

Chuzhoi, я про это тебе и толкую :biggrin: Просто с точки зрения DromEd-а. Там в ссылке написано. А что там в движке менятья уж не знаю. Поэтому то и возобновили петицию, как и напомнил Winter Cat по Dark Engine Source Code. А вот можно сделать с помощью, если Eidos все же выложит, 32 рендеринг или более? Вот авторам FM-ок безраничное раздолье будет! ;)


winter cat

Chuzhoi, спасибо за информацию. Но вот интересно в каком файле вся эта информация как программный код записана, в экзешнике?

Chuzhoi

Конкретно - не знаю. Думаю, что это не так важно, потому как для поддержки цветного освещения придется в любом случае комплексно дорабатывать и движок, и редактор. Потому как сами лайтмэпы в играх записываются обычно в файлы карт (исключение - Painkiller, где они пишутся в отдельные файлы). Кроме того, чтобы их получить, их нужно сначала сгенерировать - этим обычно занимается редактор (или отдельная программка, как в Quake). При этом для генерации используются параметры источников освещения (яркость, цвет, насыщенность), установленные дизайнером. Поэтому весь объем работ по доработке получается довольно внушительный:
1. Доработать формат карт таким образом, чтобы в них можно было записывать цветные 24-битные лайтмэпы, а также добавить источникам света свойства, отвечающие за их цвет.
2. Доработать интерфейс DromEd'а, чтобы можно было изменять цветовые свойства источников света.
3. Научить DromEd генерировать новые лайтмэпы.
4. Научить движок загружать новые лайтмэпы и правильно их накладывать посредством 3d-ускорителя (задача усложняется тем, что источники света в Thief можно включать/выключать независимо друг от друга, из чего следует, что каждый источник имеет индивидуальный лайтмэп, и эти лайтмэпы нужно правильно комбинировать)
5. Переработать также вертексную модель освещения, которая, если не ошибаюсь, используется в Thief для освещения моделей и персонажей внутри уровня.
6. Постараться обеспечить совместимость нового варианта движка со старым форматом карт (иначе грош ему цена) , или (менее предпочтительный вариант) - написать конвертер карт из старого формата в новый.
Несколько проще добавить поддержку современных 24/32-битных текстур. Нужно всего лишь научить движок и DromEd загружать и использовать такие текстуры из *.dds средствами DirectX. Хотя и тут могут быть сложности.
Однако это только то, что касается движка. А ведь есть еще и контент, в первую очередь текстуры, которые у нас 8-битные. Есть куча миссий, как оригинальных, так и ФМ, которые будут на новом движке выглядеть практически так же, как и на старом. Чтобы улучшить их вид, нужно перелопатить весь стандартный набор текстур, а также отредактировать свойства источников освещения в самих миссиях, задав их цвет. Если всего этого не сделать, то хорошо будут выглядеть только новые, специально разработанные миссии, при условии, что они будут комплектоваться своими текстурами...
Вот почему я скептически отношусь к открытию исходников Thief. Учитывая к тому же, что доработками будут заниматься не профессионалы, а скорее новички, которые при этом будут постигать основы программирования под DirectX, а то и основы программирования вообще, я сомневаюсь, что от этого будет какой-либо толк. Конечно, можно привести примеры Quake 1 и 2, для которых созданы подобные модификации, но я пока не видел среди них качественных продуктов, пригодных к употреблению (хотя может, я просто плохо искал).