Thief: the Dark Fate Forum

Thieves Connection => Thief-сайты, Thief-проекты => Тема начата: Force от 30 Ноября 2019 23:55:27

Название: Dark Engine Viewer
Отправлено: Force от 30 Ноября 2019 23:55:27
Программа-просмотрщик ресурсов движка Dark Engine.
Не требует установки и предварительной настройки. Может размещаться в любом удобном месте системы. Поддерживает OpenGL 3.2 (есть режим совместимости с OpenGL 2.1), а значит, может работать даже на старых компьютерах, на системах Windows и Linux.

(http://forcesw.com/static/files/556/599/158491990599556.jpg) (http://forcesw.com/static/files/440/087/158491990087440.jpg) (http://forcesw.com/static/files/488/066/158491990066488.jpg) (http://forcesw.com/static/files/327/160/158491990160327.jpg) (http://forcesw.com/static/files/722/218/158491990218722.jpg) (http://forcesw.com/static/files/561/270/158491990270561.jpg) (http://forcesw.com/static/files/966/391/158491990391966.jpg) (http://forcesw.com/static/files/841/462/158491990462841.jpg)


Где скачать
Ссылки на скачивание всегда будут доступны:
— на моём сайте forcesw.com (http://forcesw.com/rus)
— в этой теме форума
— на форуме TTLG (https://www.ttlg.com/forums/showthread.php?t=150408) (eng)

Актуальная сборка:
Thief 2: The Metal Age 20th Anniversary build (http://forcesw.com/deviewer_thief2_20th_anniversary.zip) 2020‒04−06 14:30 MSK (UTC+3:00)

Неактуальные сборки:
Thief: The Dark Project 21th Anniversary build (http://forcesw.com/deviewer_thief_21th_anniversary.zip) 2019‒11−30 23:55 MSK (UTC+3:00)
Thief: The Dark Project 20th Anniversary build (http://forcesw.com/deviewer_thief_20th_anniversary.zip) 2018‒11−30 12:58 MSK (UTC+3:00)


Последние изменения
Цитировать
2020‒04−06 14:30 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Build
+ исправлено отображение имен файлов и каталогов в списке навигации, они больше не переносятся на новую строку.
+ для режима LEGACY HARDWARE теперь требуется версия OpenGL 1.0 вместо 2.1. Но работа в этом режиме не тестировалась. Буду благодарен за отклик.
+ добавлено отображение свечения объектов, имеющих свойство Self Illumination.
+ добавлена поддержка свойства Anim Light. В некоторых режимах оно влияет на Self Illumination объектов. Полноценная анимация этого свойства пока не реализована, применяется только начальное состояние.
+ добавлена поддержка языков, прописанных в dark config файле. Ресурсы будут искаться в соответствующих подкаталогах по приоритету, указанному в darkinst.cfg или install.cfg.

2020‒03−28 13:00 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Build
+ улучшен механизм определения каталогов с ресурсами игры. Теперь миссия, расположенная внутри любой директории игры, легко находит путь к ресурсам.
+ улучшен механизм поиска текстур для моделей. Добавлена поддержка вложенных каталогов по названию языка (правда, пока ищется только "english").
+ добавлена поддержка замещаемых текстур, описываемых параметром TxtRepl r*, где * - номер текстуры [0, 3].
+ увеличен максимальный лимит экспозиции (для повышения яркости клавишами + и -).
+ теперь в миссиях Thief 1 отображаются высокополигональные модели (при наличии).
+ добавлена поддержка открытия программы в нужном каталоге через передачу параметра в командной строке или перетаскиванием каталога на окно программы.

2020‒03−23 01:50 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Build
+ добавлено отображение моделей персонажей (выражается благодарность Juliusz Kaczmarek aka PinkDot и Randy Sybel aka Shadowspawn).
+ затухание в шейдере переключено на квадратичное. Теперь свет затухает по законам физики, но от этого стало темнее.
+ клавишами "+" и "-" теперь можно менять яркость изображения в режиме свободной камеры.
+ исправлено наследование свойств объектной иерархии.

2020-03-06 14:00 MSK
+ уменьшен радиус SSAO и соответственно, bent normals. Последние теперь включены в финальную картинку, отчего она выглядит немного зашумленной. Отключить вклад SSAO и bent normals можно клавишей k.
+ увеличено значение FOV c 50 до ~74 градусов по вертикали, что соответствует FOV New Dark Engine.
+ переработано взаимодействие с объетной иерархией. Считываются свойства Render Type и Self Illumination, это позволило не рисовать лишние объекты миссии и исправило отображение теней от светильников.
+ исправлено смещение полигонов для обратного буфера глубины. Это предотвращает мельтешение теней (артефакты) при повороте или перемещении камеры.

2020-02-26 20:00 MSK
+ добавлена поддержка миссий формата New Dark Engine! Ура! Особая благодарность выражается Juliusz Kaczmarek aka PinkDot!
+ незначительно ускорена загрузка миссий
+ при открытии миссии, камера позиционируется в стартовой позиции
+ класс цвета переделан на хранение данных в векторе с плавающей точкой, это обеспечивает лучшую точность
+ отключено "залипание клавиш", для предотвращения накопления смещений камеры при управлении интерфейсом
+ увеличена яркость режима просмотра миссий

2020-02-17 23:00 MSK
+ добавлена поддержка цветных полигонов в моделях
+ исправлено отсечение пути к текстурам, находящимся в одном подкаталоге с открытой моделью (информация о текстурах, отображаемая на экране)
+ различные внутренние оптимизации

2020-02-05 23:30 MSK
+ исправлено отображение некоторых проблемных моделей, состоящих из нескольких костей

2020-01-14 15:00 MSK
+ исправлено отображение уровней на видеокартах AMD
+ отрефакторен рекурсивный обход BSP-дерева при открытии моделей, убрана рекурсия
+ исправлено падение программы при открытии некоторых старых или поврежденных моделей
+ откорректирована простановка доступных для выборки mipmap-уровней текстур
+ добавлена отладочная схема отрисовки

2020-01-04 00:55 MSK
+ исправлена ошибка вращения объекта сразу после его открытия, без предварительного движения мышью
+ исправлена ориентация некоторых объектов в миссиях, связанная с особенностью указания ориентации кватернионов в библиотеке GLM
+ исправлено построение AABB и OBB для объектов и их костей
+ шейдеры теперь умеют принимать на вход массивы данных
+ добавлена заготовка схемы отрисовки для дебажного вывода bounding boxes

2019-12-18 23:30 MSK
+ пути к ресурсам игры удаляются из программы, если мы выходим из каталога игры (чтобы ресурсы разных игр не перемешивались при загрузке)
+ исправлено падение программы при клике или скролле на странице ошибки при первом запуске
+ окно программы при запуске располагается по центру экрана
+ исправлено поведение клавиши PgUp, перематывающей список в самый конец, при нажатии в верхней части списка

2019-12-11 16:00 MSK
+ исправлена ошибка компиляции шейдера depth_tree на картах AMD
+ расширено логирование при ошибках поиска текстур для упрощения анализа логов

2019-12-10 15:00 MSK
+ исправлена распаковка нормалей моделей, теперь все объекты корректно освещаются источниками света

2019-12-06 15:00 MSK
+ закрытие дескриптора архива после выхода из него средствами интерфейса


Как запускать
Простой способ: запустить из папки, в которую была распакована программа, и при помощи интерфейса открыть каталог с нужным файлом модели или миссии на диске.

Продвинутый способ: программа принимает на вход путь открываемого ресурса, будь то объект или миссия. Таким образом открыть нужный файл можно четырьмя способами:
— из командной строки, указав путь к открываемому файлу, например так:
dark_engine_viewer_x64.exe "D:\Games\Thief 2 — The Metal Age\MISS13.MIS"— перетаскиванием файла на значок программы;
— перетаскиванием файла на открытое окно программы;
— созданием ассоциации расширений файлов моделей и миссий (BIN и MIS) с просмотрщиком и открыванием их двойным кликом прямо из Проводника.


Запуск на Linux и устаревшем оборудовании
Для старых видеокарт, не поддерживающих OpenGL 3, сделана специальная версия — LEGACY HARDWARE. Её функционал сильно ограничен, но пользоваться основными функциями просмотрщика она позволяет. Для её запуска используйте исполняемый файл dark_engine_viewer_legacy.exe.

Кроме того, есть и linux-сборка просмотрщика: dark_engine_viewer_x64. В настоящее время она работает в режиме LEGACY HARDWARE и так же весьма ограничена в плане графических возможностей, но в отличие от legacy-версии, со временем станет полнофункциональной.


Как пользоваться
Всё должно быть интуитивно понятно: интерфейс просмотра файлов прокручивается колесиком мыши, модели открываются по клику, перелистывание моделей «предыдущая/следующая» осуществляется стрелками клавиатуры, PgUp, PgDn, Home и End. Открытую модель можно приближать или отдалять от камеры колесиком мыши, вращать левой кнопкой мыши, перетаскивать — правой.

При открытии миссии, в правом верхнем углу программы появляется кнопка «Free camera mode», нажав на которую программа переходит в режим «свободного полета», управление в этом режиме осуществляется следующими клавишами:
WASD и стрелки — перемещение камеры, мышь — вращение по осям x и y
C — перемещение камеры вниз
SPACE — перемещение камеры вверх
SHIFT + клавиша перемещения — ускоренное перемещение
ESC — отображение интерфейса
ALT + ENTER — полноэкранный режим (HD Ready — 720p)
+/- — увеличение/уменьшение яркости
I — вкл/выкл освещение
K — вкл/выкл SSAO
O — вкл/выкл тени
P — вкл/выкл parallax occlusion mapping (выкл по умолчанию, требуется доработка)
U — вкл/выкл мягкие тени (выкл по умолчанию, требуется доработка)
Y — вкл/выкл контактные тени (выкл по умолчанию, требуется доработка)

Назначения цифровых клавиш (будут меняться в последующих сборках):
1 — вывод финального кадра со всеми эффектами (по умолчанию)
2 — вывод нормалей кадра
3 — вывод освещенности кадра
4 — вывод SSAO кадра
5 — вывод глубины кадра
6 — вывод искривленных нормалей кадра (bent normals)
7 — вывод глубины с добавлением карты высот

Эффекты, которые выключены по умолчанию — работают некорректно. Включение parallax occlusion mapping не покажет ничего, потому что у вас, скорее всего, отсутствуют карты высот для текстур. Но если вы захотите посмотреть как оно будет выглядеть, подложив необходимые текстуры, включите эффект клавишей P. При добавлении карты высот, добавьте к её имени постфикс «_h», кстати, для нормалей — это «_n», таким образом, если текстура называется bricks.pcx, то карта высот должна называться bricks_h.dds (формат текстуры может отличаться и быть любым, поддерживаемым игрой, не обязательно DDS, но DDS предпочтительнее), а карта нормалей — bricks_n.dds.

Поддерживаемые форматы текстур: DDS (только сжатые), PNG, TGA, PCX, GIF, JPG, BMP.

Вот вам, скриншот для затравки из предыдущей юбилейной версии программы:
(https://sun9-57.userapi.com/c857628/v857628878/10e9e7/FzlbHyvYRo0.jpg)

Эксперименты приветствуются! Публикуйте свои скриншоты!


Ограничения
В настоящее время программа поддерживает три формата моделей: BIN, MIS и OBJ.
Поскольку программа ещё в разработке, поддержка некоторых форматов реализована лишь частично.

BIN — поддерживаются как статические, так и динамические модели, расположенные в файлах obj.crf и mesh.crf соответственно.
MIS — поддерживаются миссии, сделанные как на оригинальном DromEd, так и на новом, расширенном для New Dark Engine.
OBJ — формат поддерживается на базовом уровне, без текстур


Планы развития
В глобальной перспективе просмотрщик должен превратиться в полноценный 3D-движок — Force Engine. Никто не собирается тягаться с Unreal Engine и Unity, моя личная задача состоит в том, чтобы создать на основе этого движка собственную игру.

Более близкие планы — это поддержка всех необходимых ресурсов Dark Engine, для оттачивания на них общих игровых механик, таких как физика, рендеринг, распространение звука, перемещение по уровню, взаимодействие с персонажами и предметами, искусственный интеллект. Всё это планируется реализовать с ресурсами Dark Engine, поэтому логично ожидать от этого проекта появления какого-то игрового прототипа, внешне похожего на Thief. Степень готовности этого прототипа будет обсуждаться с теми, кто проявляет интерес к проекту.

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

Концепт, нарисованный Чужим, к которому мы сейчас подбираемся:
(http://chuzhoi.city/images/darkfate/bin-viewer-filelist.jpg)


Пожелания
Прошу сообщать о всех найденных ошибках, багах, пожеланиях и предложениях либо мне на почту: toforce@ya.ru, либо в прямо в эту тему, либо в тему просмотрщика на форуме TTLG (https://www.ttlg.com/forums/showthread.php?t=150408) (eng). Так же, если возникают любые другие вопросы — обращайтесь!

Приветствуется распространение информации о данном проекте всеми возможными способами! Я буду очень благодарен за любое упоминание Dark Engine Viewer и моего сайта forcesw.com (http://forcesw.com/rus) в соцсетях.


Благодарности
Я очень благодарен:
— участникам сообщества Dark Fate, без которых этот просмотрщик вряд ли был бы создан, их ники в алфавитном порядке: Boris3000, Chuzhoi, HellRaiser, Maxim, nemyax, Zontik и другим…
— разработчикам и программистам, занимавшимся реверс-инжинирингом оригинального Dark Engine, и запустившим проект Open Dark Engine, без которого идея с ресурсами Thief для Force Engine никогда не состоялась бы, их ники в алфавитном порядке: Telliamed, Volca и всех, кто был причастен к этому.
— Juliusz Kaczmarek aka PinkDot, который помог добавить в программу поддержку формата миссий New Dark Engine, а так же помог в расшифровке формата динамических MESH-объектов.
— Randy Sybel aka Shadowspawn за то, что помог разобраться как использовать расшифрованные данные, полученные из динамических MESH-объектов.
— всем, кто каким-либо образом консультировал, поддерживал и мотивировал меня, включая Vorob’а и мою супругу Татьяну!
Спасибо вам всем!


Авторское право
Используя эту программу, вы соглашаетесь с тем, что её автор не несёт никакой ответственности за возможный вред, причиненный оборудованию или программному обеспечению, напрямую или косвенно связанный с использованием данной программы. Целью автора не является заражение вашего компьютера или распространение вирусов, поэтому критически отнеситесь к возможным предупреждениям антивирусного ПО.


Выдержки из TODO (приоритет указан не в строгом порядке)
Цитировать
ОШИБКИ:
- некоторые модели возвращают пустые списки полигонов в своих костях (поврежденная модель). Возможно, следует изменить алгоритм чтения, чтобы учитывать ВСЕ части модели, даже неиспользуемые?
- на конских разрешениях (значительно больше разрешения монитора) интерфейс работает некорректно (разрешение программы не совпадает с запрашиваемым по конфигурации)


ДОРАБОТКИ:
- менять не выдержку, а гамму клавишами "+" и "-".
- некоторые объекты, всё-таки, имеют неверную ориентацию: штурвал корабля в Shipping, сверло-бур в Cargo. Разобраться.
- добавить информацию о разрешении используемой текстуры для моделей
- раскрашенные цветом части модели имеют неправильную нормаль, из-за чего в режиме просмотра миссии с освещением выглядят абсолютно черными. Вернуть нормаль этим полигонам модели
- клавиши общего функционала, разворот на полный экран и др. должны работать в любом режиме программы
- добавить клавишу BACKSPACE - открытие родительского каталога (?)
- закрытие дескрипторов архивов и файлов после завершения работы с ними (загрузка уровней)
- linux: при запросе файла или каталога искать его без учета регистра
- linux: исправить падение при чтении каталога, к которому нет прав доступа (проверить в разных системах)
- обновление данных без перезагрузки интерфейса
- ошибку загружать без замены всего интерфейса
- добавить возможность в шаблоне проверять true/false для пустых/заполненных строк (с переходом на squirrel)
- убрать установку данных в шейдер отдельным методом схемы рендеринга (чтобы не переключать шейдер только для этого)
- можно сделать ленивую загрузку данных текстуры, отделив чтение заголовка от чтения данных цвета, это позволит избавиться от копирования памяти при использовании PBO, сразу читая данные в указатель видеопамяти, заодно можно будет выкинуть код, работающий без PBO
- позиционировать модель перед камерой с более презентативного угла (переместить камеру вправо и вверх)
- восстановить силуэты POM
- исправить отображение теней в режиме POM
- в зависимости от расстояния до объекта менять скорость скроллинга
- сделать hot-key, возвращающий вид в исходный
- вместо ошибок о неподдерживаемых типах текстур, выдавать default-текстуру
- потюнить автомасштаб при открытии модели когда дебажная отрисовка будет готова
- добавить тени для прожекторов (с переходом на кластерный рендерер)
- починить мягкие тени
- сейчас массив hullVertices кости содержат все вершины кости, надо высчитать из них только образующие convex hull (как вариант - использовать OBB - AABB в пространстве модели)
- источник света, находящийся вблизи стены рисует черный квадрат на этой стене (слишком большая разница между точностью глубины источника и камеры? перемещать плоскости отсечения в зависимости от объектов в сцене?)
- LEGACY HARDWARE: каталоги с русскими именами не сортируются (устанавливается ли локаль?)
- LEGACY HARDWARE: не отображаются каталоги, начинающиеся с точки
- добавить атрибут outline для шрифта
- выводить инфу об mtl файлах в интерфейсе
- цветами выделять текстуры из архивов/каталогов/дефолтную
- проверить что будет в критических ситуациях, когда шаблон вывода ошибки сам выводит ошибку
- стабильность, чтоб программа не падала при определенных значениях атрибутов интерфейса
- разрешить менять размер окна, при этом интерфейс не должен масштабироваться, а должен раздвигаться?


НОВЫЕ ФИШКИ:
- запись и чтение конфигурационного файла
- эффекты в режиме просмотра моделей
- направленный источник света
- изменение настроек программы средствами интерфейса
- создание тестовых миссий для демонстрации возможностей движка
- переделать работу с полигонами неба: не удалять их, а выводить кубмапу неба в них
- поддержка прозрачных цветов в палитре (первый цвет) и правильная отрисовка полупрозрачных полигонов
- добавление поддержки squirrel
- переделать шаблонизатор на использование squirrel, отказавшись от самописной логики
- кубмапы для фона просмотра модели на выбор (светлая/темная)
- если список использованных текстур не влезает в экран, выводить кнопку, открывающую всплывающую панель с прокручиваемым списком
- velocity и motion blur
- сохранение скриншотов
- поддержка анимированных текстур
- отображение джойнтов, вхотов, нормалей, костей скелета
- разбиение уровней на octree и загрузка только ближайших кусков
- генерация вокселей для небольших ячеек octree
- кластерный рендерер
- отказаться от кубмапы тени и использовать текстурный атлас (с переходом на кластерный рендерер)
- генерировать reflection probes в текстурный атлас
- GI
- pbr
- поддержка анимаций dark engine?
- добавить поддержку спецификации glTF


УДОБСТВА КОДА/РЕФАКТОРИНГ:
- отрефакторить менеджер команд и их обработку, сейчас слишком всё запутано и неудобно
- получать все синглтоны (менеджеры ресурсов) прямо по месту использования и не хранить ссылки на них в объектах? Или переделать всё на впрыскивание объектов?
- привязывать текстуры к шейдерным юнитам
- сделать bind-guard'ы для всех привязываемых ресурсов, это упростит код
- отделить исключения для вывода ошибки от фатальных исключений, закрывающих программу, чтобы избавиться от бесконечного цикла вызова ошибки из ошибки
- подумать над единобразием места конвертирования путей функцией formatAsPath() и нужно ли оно или достаточно оставить только в функции path()?
- добавить в шаблонизатор проверку условия true/false через оператор (не понадобится с переходом на squirrel)
- Uniform Buffer Object


ПОДУМАТЬ, НУЖНО ЛИ:
- если текстура была загружена в одном режиме (clamp/repeat), она не загрузится в другом
- прерывать выполнение команды при вызове другой (если их не может быть запущено несколько)?
- если пользовательский ввод не привел к изменениям - не перерисовывать кадр? Перерисовывать частично?
- adaptive shadow bias?
- скриншот с прозрачным фоном (?)
- подумать об отказе от ручной линеаризации цвета
- модель при таскании правой кнопкой перемещается не точно по курсору мыши


P.S.
Сообщение будет обновляться.
Название: Dark Engine Viewer
Отправлено: Glypher от 01 Декабря 2019 00:42:16
Супер! :up:
Название: Dark Engine Viewer
Отправлено: nemyax от 01 Декабря 2019 00:46:27
Бложики разработчиков — это круто!
Название: Dark Engine Viewer
Отправлено: Zontik от 02 Декабря 2019 08:28:47
Честно прочитал и попытался понять все, но особенно зацепило почему-то именно это:
Цитировать
лог файл должен всегда создаваться в каталоге программы
Отдельное спасибо за эту незначительную (казалось бы) мелочь!
Название: Dark Engine Viewer
Отправлено: Force от 02 Декабря 2019 17:17:31
Сообщение, перенесенное из первого поста
Приветствую всех, друзья тафферы! ;)

В этот радостный день, в 21-ю годовщину Thief: The Dark Project хотел представить вам результат своей годичной работы: ровно год назад я опубликовал первую публичную тестовую версию своей программы - Dark Engine Viewer. Теперь, спустя целый год, казалось бы, можно выкатить крутейший работающий билд с целой кучей новых фич, с реализацией всех хотелок и вообще...

Но я не буду. :o

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

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

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

Для самых нетерпеливых выкатываю не очень стабильный билд (http://forcesw.com/deviewer_thief_21th_anniversary.zip), исследуйте на свой страх и риск.

Ещё раз всех поздравляю с годовщиной! И да, сообщение скоро обновится!  ;)

--------Оригинальное сообщение--------

Обновил TODO в первом посте и исправил несколько критических ошибок программы. Можно перекачать архив.

Хотелось бы сказать пару слов об изменениях последнего года, что не очень понятно из лога TODO (в который, кстати попадает не всё).

- Добавилась поддержка каталогов игры.
Это значит что можно открыть любую миссию прямо из каталога игры и увидеть все статичные объекты и текстуры. Ничего распаковывать для этого не требуется, ура! :) При этом динамически будут сгенерированы все лайтмэпы для всех источников света, если вы на них повернете камеру (сейчас это приводит к кратковременным тормозам). Это делается один раз за загрузку миссии, ВСЕ лайтмэпы кэшируются, поэтому дальнейший рендеринг должен быть быстрым. Из-за того, что генерируются ВСЕ лайтмэпы миссии, их размер выставлен в 256х256 пикселей, чтобы они гарантировано влезли в видеопамять. Вряд ли удастся посмотреть современные ФМки, поскольку (об этом уже неоднократно говорилось) разработчики New Dark Engine изменили формат миссий и держат его в тайне. Эта тема требует дальнейших исследований и разработки.

- Загрузка миссии осуществляется с отображением интерфейса и без индикатора загрузки, поэтому, если вам показалось что программа зависла, проверьте загруженность диска в диспетчере задач, скорее всего просто загрузка миссии занимает продолжительное время. После загрузки вы можете увидеть черный экран или нагромождение объектов - это нормально. Если вы видите в правом верхнем углу появившуюся кнопу "Free camera mode" - можете нажать её, это спрячет интерфейс и даст возможность повертеть головой. Если всё равно ничего не видно, возможно вы находитесь в неосвещённой комнате - нажмите клавишу "i", чтобы отключить освещение (по аналогии с режимом light_bright в DromEd'е).

- Программа принимает на вход путь открываемого ресурса, будь то объект или миссия. Например так:
dark_engine_viewer_x64.exe "D:\Games\Thief 2 - The Metal Age\MISS13.MIS"Разумеется, таким образом можно передать параметр, перетащив нужный файл на значок программы, либо на её открытое окно. В будущем добавится возможность передавать туда пути к каталогам или архивам.

Прошу сообщать о всех найденных ошибках, багах, пожеланиях и предложениях прямо в эту тему.

Об организации последующих билдов ещё предстоит подумать, скорее всего, они будут выкладываться отдельными архивами по мере добавления фичь, что потенциально может приводить к ошибкам ранее работающего функционала.
Название: Dark Engine Viewer
Отправлено: Force от 02 Декабря 2019 19:12:22
Исправлено падение программы в режиме LEGACY HARDWARE при попытке просмотра корня диска.
Архив юбилейной сборки в первом посте обновлен в последний раз. Дальнейшие его модификации не планируются. Сборки будут выпускаться в новых архивах.
Название: Dark Engine Viewer
Отправлено: nemyax от 03 Декабря 2019 00:23:48
разработчики New Dark Engine изменили формат миссий
То есть они и в компилятор уровней залезли?
Название: Dark Engine Viewer
Отправлено: Force от 03 Декабря 2019 07:31:54
nemyax
Да, они же чинили DromEd, расширяя ограничения, улучшая статические лайтмэпы и т.п.

У нас есть два варианта: попытаться реверснуть их новый формат (не думаю, что это шибко сложно) и надеяться, что они его больше не поменяют; либо самим компилировать уровни уже так, как нужно нам, приобретая целую гору преимуществ: можно будет убрать все существующие костыли - сейчас есть ворох дополнительных файлов для уровней и текстур, которые дёргаются во время каждой загрузки ресурсов, можно эту информацию интегрировать в откопилированный уровень в удобном для рендеринга виде, при этом не нужно будет портализовать миссию дромедом, все изменения будут видны сразу после сохранения, но это сложнее, надо найти этот код где-то в недрах доступных исходников (если он там есть) и попытаться разобраться в нём. Это CSG - constructive solid geometry.
Название: Dark Engine Viewer
Отправлено: Force от 06 Декабря 2019 15:22:26
Обновил первый пост, собрал там всю (вроде бы) актуальную информацию по разработке. Если кто что-то ещё вспомнит, скажите, добавлю.

Теперь сборки будут поставляться в обновляемом файле http://forcesw.com/deviewer_build.zip

Особая историчность версий, на мой взгляд, не нужна, поэтому архив сборки будет обновляться, и все желающие получать последнюю версию, должны будут перекачивать один и тот же архив.
Название: Dark Engine Viewer
Отправлено: Force от 10 Декабря 2019 14:58:36
Последние изменения
Цитировать
2019-12-10 15:00 MSK
+ исправлена распаковка нормалей моделей, теперь все объекты корректно освещаются источниками света

Обновил описание в первом посте. В архив сборки добавил readme на русском и английском языках. Буду признателен, если кто-нибудь, свободно владеющий английским, просмотрит английский текст на наличие ошибок! :yes:
Название: Dark Engine Viewer
Отправлено: Maxim от 10 Декабря 2019 18:54:29
Нифига-се - поддержка объёмных текстур  :o  :up:
Даа, глядя на обширный список "сделать", можно поразиться масштабам. А всё начиналось с утилитки для простых нужд.
Force, ты так скоро свой NewDark запилишь  ;D
Вот бы ещё Вор поддерживал "окклужн" текстурки.
Цитировать
Концепт, нарисованный Чужим, к которому мы сейчас подбираемся
Хорошо получилось в итоге. До сих пор нравится получившийся минимализм. Я правда ещё не пробовал качать более поздние версии.
Поиск прикручен - это здорово. А ты вроде говорил, что такая мелочь потребует многих усилий.

Сходу просится в глаза кое-что, что хочу внести как предложение. Сущая мелочь. Но я не уверен, что это правильно и прям нужно, поэтому тут зависит от поддержки большинства. Ну и тебя, как автора, естественно. Если они видят, что это хорошо, то пусть.
Так вот: на твоём скрине с моделью Будды как раз выделено слева название модели. Но выделение можно улучшить чисто визуально для чёткого отделения от остального хаоса названий, если помимо этой серой полоски, шрифт названия будет красного цвета или жёлтого (но только таких цветов). Желательно такого же оттенка красного, как применённый для написания названий сторон текстур. Вот эти, где "BUDDHA_X - not found"
Это мелочь, чисто косметическая фишка, но глазу будет особенно удобно. Выделение же менять по цвету не надо. Только само название. Можно и такого же оттенка синего, как то же указание сторон текстур, но красный, а особенно жёлтый, исходя из серой гаммы всего остального - мне кажется будут лучше.
Название: Dark Engine Viewer
Отправлено: Force от 10 Декабря 2019 19:10:57
Даа, глядя на обширный список "сделать", можно поразиться масштабам. А всё начиналось с утилитки для простых нужд.
Ну, не совсем, для меня началось всё ещё в 2011-м... А мечта сформировалась так вообще в 2004-м... Утилитка была лишь поводом применить наработки и опубликовать результат, чтобы работать не "в стол".

Force, ты так скоро свой NewDark запилишь  ;D
К тому и движемся ;). Хотя, по-любому, масштабы у меня поскромнее и цели немного другие. В первом посте всё написано.

Вот бы ещё Вор поддерживал "окклужн" текстурки.
Если ты про NewDark - то тут вопрос не ко мне. Если про DEViewer - то можно, если очень захочется. Вообще, PBR в планах и обычно там не используются оклюжн-текстуры, но сложности никакой нет, если что. Скажете - сделаем :).

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

Сейчас я занялся поддержкой моделей персонажей. Только после этого возьмусь за интерфейс и поиск.

Но выделение можно улучшить чисто визуально для чёткого отделения от остального хаоса названий, если помимо этой серой полоски, шрифт названия будет красного цвета или жёлтого (но только таких цветов).
Красным нельзя - это цвет ошибки, синим вроде как планировалось отображать ресурсы из архивов (надо посмотреть, как это будет всё выглядеть). Бледно желтым - можно. Надо чтобы Чужой высказал свое мнение и доработал концепт, при необходимости.
Название: Dark Engine Viewer
Отправлено: Force от 11 Декабря 2019 16:47:36
Последние изменения
Цитировать
2019-12-11 16:00 MSK
+ исправлена ошибка компиляции шейдера depth_tree на картах AMD
+ расширено логирование при ошибках поиска текстур для упрощения анализа логов
Обновлен первый пост, добавлена информация о версиях linux и legacy, добавлены благодарности (как я умудрился их забыть? :eeeh:).

Chuzhoi призывается в тему для обсуждения предложения Максима по поводу цвета имени текущей модели в списке файлов.
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 12 Декабря 2019 12:52:00
Я пока не перерисовывал концепт, т. к. в цветах и деталях он довольно сильно отличается от программы, и ограничился редактированием скриншотов.

По мне, текущее имя файла и так достаточно хорошо видно. Но если общественность просит... В общем, я согласен, что если выделять, то только желтым:

(http://chuzhoi.city/images/darkfate/de-viewer-yellow-left.jpg)

(Я бы еще немного потемнее сделал информацию о текстурах и прочем - оставив верхнюю строчку на прежнем уровне яркости; это тоже отражено на скриншоте.)

Можно еще выделить имя файла в этой самой строчке:

(http://chuzhoi.city/images/darkfate/de-viewer-yellow-left-top.jpg)

(Xотя, по-моему, это уже излишество. Лишние цвета во вьюпорте ни к чему).


Буду признателен, если кто-нибудь, свободно владеющий английским, просмотрит английский текст на наличие ошибок!
Я, конечно, не носитель языка, но я прочитал пару полноразмерных книжек и чувствую себя вправе давать некоторые советы. В целом текст мне показался весьма грамотным и понятным, каких-то грубых ошибок вроде отсутствия -s в третьем лице ед. числа или вопиющей нехватки артиклей не просматривается.

Бросилось в глаза следующее:

creating an association of model and mission file extensions (BIN and MIS) with a the viewer

When the a mission is opened
(Я бы также сделал это предложение в новом абзаце).

clicking on it and the program enters the "free flight" mode - надо как-то переформулировать, например: clicking on it switches the program in the "free flight" mode

In this mode the camera is controlled by the following keys:
WASD and arrows - camera movement, mouse - rotation along the x and y axes
C - move the camera down
SPACE - move the camera up

The effects that are turned off by default do not work correctly

It's planned to regularly publish updates.
Название: Dark Engine Viewer
Отправлено: Zontik от 12 Декабря 2019 13:08:51
Мне нравится с желтым выделением в колонке. Да, видно и без того хорошо... но, на мой взгляд, это одна из тех деталей, что отличают совершенный продукт от просто хорошего.
Вот во вьюпорте- действительно лишнее. И это выделение логически ничем не оправдано. Да еще и перечеркивает тут плюсик к комфорту, что дает желтый цвет в колонке. Видишь два одинаковых выделения - и невольно начинаешь сравнивать и искать разницу, отвлекаясь от основной задачи.
Название: Dark Engine Viewer
Отправлено: Force от 12 Декабря 2019 13:23:26
Chuzhoi
Отлично! Спасибо! Кстати, хочу сделать окантовку вокруг букв во вьюпорте, чтобы читаемость не страдала от светлого фона.

Zontik
Ты не проверял? У тебя работает последняя сборка? Какие перспективы на апгрейд у тебя? ;)
Название: Dark Engine Viewer
Отправлено: Zontik от 13 Декабря 2019 09:00:53
Нет, я сейчас категорически не успеваю ничего лишнего. Увы.
Перспективы на апгрейд у меня вполне определенные: однажды он станет неизбежен. Морально я уже к этому готов. Но, увы, пока не материально.
Цитировать
хочу сделать окантовку вокруг букв во вьюпорте
Не знаю, что ты называешь окантовкой, но если в буквальном смысле (буквы с контуром) - мелкие довольно плохо читаются. Полупрозрачный темный фон в этом смысле воспринимается куда лучше.
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 13 Декабря 2019 12:12:33
Не знаю, что ты называешь окантовкой, но если в буквальном смысле (буквы с контуром) - мелкие довольно плохо читаются. Полупрозрачный темный фон в этом смысле воспринимается куда лучше.
Можно оба варианта попробовать. Также можно попробовать окантовку вокруг букв сделать размытой, если это технически возможно.
Название: Dark Engine Viewer
Отправлено: Maxim от 15 Декабря 2019 12:25:39
Всё-таки жёлтый бледноватый сделали. Его можно либо насыщеннее сделать, выбрав эталонный жёлтый, либо сместить чуть ближе к оранжевому. Будь моя воля - сделал бы красно-оранжевым, но раз это цвет ошибки...
Таким я себе представляю идеал:

(https://i.ibb.co/SnjRwQV/DE-viewer-conc.png)

Цветовая легенда:
(https://i.ibb.co/Zzqx1TM/DE-viewer-color-legend.png)

1)
HTML: fffc00
RGB: 100  99  0 (%)
HSV: 59,4  100  100 (%)
---
2.
HTML: ff9939
RGB: 100  60  22,4 (%)
HSV: 29,1  77,6  100 (%)
---
3.
HTML: ffbc39
RGB: 100  73,7  22,4 (%)
HSV: 39,7  77,6  100 (%)

Так же у выделения есть окантовка в значении 0,25 (опционально)
Окантовку же вокруг букв размытой делать нельзя, при данном дизайне.

В общем, показанное — при желании/времени. А так, вполне нормально и то что есть.
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 15 Декабря 2019 14:43:49
Окантовку же вокруг букв размытой делать нельзя, при данном дизайне.
Имеется в виду окантовка для букв в самом вьюпорте - на тот случай, если просматриваемая модель или миссия будет светлой. На черном фоне ее не будет видно. Окантовка же для букв и других элементов на панели файлов совершенно не нужна.

Что касается желтого цвета, то, возможно, он и несколько бледноват, и можно сделать его немного поярче. Но насколько - вопрос дискуссионный, поэтому я предлагаю высказаться остальным заинтересованным. Мне кажется, что твой вариант слишком ярок. Оранжевый, кстати, тоже неплох - но только тот, который снизу, а не сверху (желто-оранжевый).
Название: Dark Engine Viewer
Отправлено: Maxim от 15 Декабря 2019 16:25:41
Да, это хорошая мысль. Спасибо за разъяснение.
Кстати, а какова конечная цель проекта? Что в идеале программа должна уметь делать?
Название: Dark Engine Viewer
Отправлено: Zontik от 16 Декабря 2019 11:02:29
Забавно, но на представленном скрине лучше всего читается именно средняя строка, желтая. Оранжевый на сером размывается.
Была бы еще указана цветовая формула для четвертого элемента  (фона) - можно было бы и глаза не напрягать, а просто проанализировать числа.
При этом ярко-желтый читается так же хорошо, как и бледно-желтый, но из сдержанного дизайна выбивается.
Может показаться, что мы тут цепляемся к мелочам. Ну да, после того, что сделали в последних версиях Премьера, слово "читабельность" вообще лучше забыть. И не такие дизайнерские причуды приходится терпеть. Но если уж вы спросили...
Название: Dark Engine Viewer
Отправлено: spy от 16 Декабря 2019 17:57:12
Есть возможность добавить нечто вроде статистики? Открываешь карту и видишь - на карте столько-то мобов (типы мобов), столько-то аммо (тип аммо). и тд.
Название: Dark Engine Viewer
Отправлено: Force от 17 Декабря 2019 11:32:13
spy
Есть возможность, рекомендую обговорить это сейчас всем вместе, что конкретно нужно, и это можно будет разместить на экране сразу после загрузки миссии, как у моделей. Информации много, поэтому всё может не влезть, а городить сейчас дополнительный интерфейс пока некогда.

Maxim
Цитировать
Кстати, а какова конечная цель проекта? Что в идеале программа должна уметь делать?
Мне видится конечная цель просмотрщика - это реализация ТЗ. Из ТЗ не хватает лишь поиска, некоторых информационных фич, типа цветной подсветки ресурсов из архива, расширенной информации о моделях и миссиях... Всё остальное идет бонусом - всякие тени, прозрачности, съемка скриншотов. А конечная цель ВООБЩЕ - прототип игры с ресурсами Thief. Это описано в первом посте. Но принимаются к рассмотрению любые предложения ;)
Название: Dark Engine Viewer
Отправлено: Maxim от 17 Декабря 2019 13:41:56
Да, я читал про всеобщую цель, но если честно, она мне показалась как бы с запасом на дальнее будущее. Не типа грёз, а что-то такое... сложное в достижении. Просто если рассматривать это на фоне того, что даже поиск трудно сделать, оказывается. И что, действительно может получиться в итоге?
И есть ещё одна вещь, которая любопытна чисто в теоретическом плане. Как мы знаем, француз Le Corbeau (или как пишется его имя... всё время забываю), по странному стечению обстоятельств получил исходники Thief. Так вот, при должных навыках программирования можно ли благодаря им настолько улучшить Thief, чтобы например модернизировать скелет моделей, сделать анимацию лица или какую-нибудь динамическую погоду? Как я понял, для этого не хватает исходников. И на этом фоне интересует и твоя конечная цель. Прототип игры с ресурсами Thief это как? Типа можно даже полноценную игру сделать? Или это так и остаётся всё равно каталогом по своей сути?
Название: Dark Engine Viewer
Отправлено: Force от 17 Декабря 2019 14:48:48
Цитировать
Не типа грёз, а что-то такое... сложное в достижении.
Да, так и есть.

Цитировать
И что, действительно может получиться в итоге?
Покажет время :). Очень на это надеюсь. Всякие специфические хотелки для просмотрщика (не лежащие в направлении игрового движка), несколько отдаляют этот момент.

Цитировать
Так вот, при должных навыках программирования можно ли благодаря им настолько улучшить Thief, чтобы например модернизировать скелет моделей, сделать анимацию лица или какую-нибудь динамическую погоду? Как я понял, для этого не хватает исходников.
Всего им хватает, они же собрали проект в итоге. И можно сделать абсолютно всё что только пожелаешь, вопрос в том, нужно ли? Как я уже когда-то говорил, пусть Thief остается Thief'ом, ему совсем ни к чему динамическая погода и т.п. навороты. Он есть, его у нас никто не отнимает. Вот например, пришел ты к Баффорду и фигакс, утро наступило, все проснулись, ходят по особняку, а там ты - слабый и беззащитный, что делать? Ныкаться до ночи или валить всех и брать скипетр? Короче, это уже совсем другая игра.

Но если пофантазировать, например, мы на официальной основе делаем ремейк Thief, нам зарплаты платят, мы фулл-тайм занимаемся только им, почему бы тогда не сделать всё современно и хорошо? Ну мы берем и делаем. Лицевую анимацию, погоду, управление транспортом, портальная пушка, все дела... Вот и всё. Да, если говорить в разрезе оригинальных исходников Thief, то пришлось бы повозиться, потому что обычно старые форматы ресурсов совсем несовместимы с нынешними технологиями, их банально неудобно использовать, поэтому пришлось бы писать конвертеры, а это в свою очередь, привело бы к значительному изменению оригинального кода, в итоге куча лишней работы, непонятно зачем сделанной, намного проще взять готовый движок и сделать всё заново на нём и это опять будет уже другая игра. Как было с Thief 3.

Цитировать
И на этом фоне интересует и твоя конечная цель. Прототип игры с ресурсами Thief это как? Типа можно даже полноценную игру сделать?
Ну, например, так: https://www.youtube.com/watch?v=DG9C4ouE1Fw только с графикой посовременней. Я не говорю что так и будет, просто чтобы было понятно, как это может выглядеть. Я сам ещё не знаю :).

Цитировать
Или это так и остаётся всё равно каталогом по своей сути?
Даже сейчас "каталог" - это дополнительный функционал, а не основной. Архитектура заточена именно на игровой движок, просмотр ресурсов - это лишь внешняя сторона программы (можно воспринимать это как меню в игре). Пока просто она отнимает всё основное время разработки, но код пишется так, чтобы всё это работало во время игрового процесса.
Название: Dark Engine Viewer
Отправлено: spy от 17 Декабря 2019 19:03:48
spy
Есть возможность, рекомендую обговорить это сейчас всем вместе, что конкретно нужно, и это можно будет разместить на экране сразу после загрузки миссии, как у моделей. Информации много, поэтому всё может не влезть, а городить сейчас дополнительный интерфейс пока некогда.

Только хотел написать про отдельное меню, как увидел выделенное. Не знаю насколько это сложно, хватило бы всплывающего окна, шифт-s (stats). Появляется окошко с инфой. Я примерно так представлял себе это. Смотришь и видишь - ага -
================
зомби - 15 штук,
призраки - 3,
хаунты - 8.
водяные стрелы - 20.
=============
Хотя решать тебе.

Меня в нынешнем воре устраивает почти всё. Еслиб можно было прикрутить тени как Т3 и сделать новые модели в замен существующих с квадратными плечами, было бы просто замечательно. Нравится идея которую в свое время вычитал у гоблина, который говорил, что мобы на эксперте, после оглушения через некоторое время приходят в себя, и начинают искать игрока.
Название: Dark Engine Viewer
Отправлено: Zontik от 18 Декабря 2019 09:43:17
Цитировать
Нравится идея которую в свое время вычитал у гоблина, который говорил, что мобы на эксперте, после оглушения через некоторое время приходят в себя, и начинают искать игрока.
Именно из-за подобных мобов я и бросил System Shock 2, не доиграв. Патроны конечны, а враги бессмертны - вот и вся убогая суть этой идеи, как я ее понял.
Хотя движок Вора даже в текущем варианте позволяет добиться подобного поведения AI, к счастью, у подавляющего большинства авторов хватает ума этого не делать.
Название: Dark Engine Viewer
Отправлено: Force от 18 Декабря 2019 09:59:49
Zontik
Цитировать
Именно из-за подобных мобов я и бросил System Shock 2, не доиграв.
А не приходила мысль связывать их или запирать где-нибудь? Ну то есть, это как бы получается "полуторный" вариант ghost-прохождения, когда ты можешь оглушать, но при этом вынужден морочиться с телами, либо искать место где их можно было бы запереть, либо связывать (а веревка конечный ресурс), в итоге проще оказывается играть ghost'ом, но в случае крайней необходимости - вот такой вариант. На мой взгляд, техника интересная, да и "мобы" конечны, они не спавнятся, а лишь "воскресают", но этот процесс можно контроллировать.

--------------------------
Кстати, по поводу нововведений. Вчера подумал об управлении навигацией с клавиатуры, предлагаю изменить её следующим образом:
- стрелки влево-вправо - переключают модель предыдущая-следующая
- стрелки вверх-вниз - просто смещают курсор
- клавишей ENTER можно открыть модель, на которой находится курсор
- клавиша BACKSPACE открывает родительский каталог
Таким образом у нас появляется возможность открывать каталоги при помощи клавиатуры..., короче, всю привычную логику работы с каталогами позволяет реализовать, плюс остается возможность листать модели, а поскольку список вертикальный, перемещение курсора стрелками вверх-вниз тоже выглядит логично.
Название: Dark Engine Viewer
Отправлено: Vorob от 18 Декабря 2019 10:29:52
Цитировать
Именно из-за подобных мобов я и бросил System Shock 2, не доиграв. Патроны конечны, а враги бессмертны - вот и вся убогая суть этой идеи, как я ее понял.
Хотя движок Вора даже в текущем варианте позволяет добиться подобного поведения AI, к счастью, у подавляющего большинства авторов хватает ума этого не делать.

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

Механика возрождения врагов работает в тандеме с возрождением игрока и поддерживает в постоянном напряжении. В воре ты хозяин положения, потому ты можешь и локации зачищать и двигаться незаметно, а в сисшоке ты - жертва. Всё там отлично разработчики реализовали.
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 18 Декабря 2019 11:33:21
Оффтопик:
А не приходила мысль связывать их или запирать где-нибудь?
Подобная система была в Cold War. Там, если оглушить врага обычным способом, он через некоторое время очухивается (более того, он будет приводить в чувство остальных оглушенных, которые попадут к нему в поле зрения). Но его можно усыпить насовсем (ну по крайней мере, до окончания миссии), вколов ему снотворное. А со снотворным, понятное дело, в игре напряженка...

Что касается SS2, то да, помню такую досадную мелочь, как респаун врагов. Но не помню, чтобы это сильно раздражало - по крайней мере, не до такой степени, чтобы из-за этого бросить игру. Тем более что там есть "будки воскрешения", которые за весьма умеренную плату (или, может, вообще бесплатно?) дают тебе почти (или полное?) бессмертие.

Зонт, ну ты тоже тот еще перец. Насажал дверей которые невозможно открыть, но которые простукиваются и вводят в заблуждение.
Это где?
Название: Dark Engine Viewer
Отправлено: Maxim от 18 Декабря 2019 11:43:53
Я вам больше скажу — в SS2 для меня даже необходимостью было, чтобы враги возрождались. Потому что ни раз попадал в такую ситуацию, когда деньги нужны для получения той или иной модификации и без которой не пройти, а они закончились, так как никогда не знаешь что ждёт в будущем и соответственно не можешь оптимально спланировать трату нанитов. Причём, эта ситуация возникла у меня даже в повторном прохождении, учреждённом через какое-то время. И снова именно на палубе возле лифта, в который надо попасть, чтобы двигаться дальше по прохождению истории. И приходилось бегать по палубе туда-сюда , отстреливать врагов и ожидать новых, дабы надыбать нанитов и сетуя каждый раз, если попадается "пустой" зомбак с бутылкой спиртного или пачкой чипсов, или же двумя патронами, вместо заветных нанитов. Я даже жалел, что они не возрождаются чаще, потому что набирать сумму было крайне однообразно и долго.  ;D
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 18 Декабря 2019 11:58:45
Кстати, по поводу нововведений. Вчера подумал об управлении навигацией с клавиатуры, предлагаю изменить её следующим образом:
- стрелки влево-вправо - переключают модель предыдущая-следующая
- стрелки вверх-вниз - просто смещают курсор
- клавишей ENTER можно открыть модель, на которой находится курсор
- клавиша BACKSPACE открывает родительский каталог
Таким образом у нас появляется возможность открывать каталоги при помощи клавиатуры..., короче, всю привычную логику работы с каталогами позволяет реализовать, плюс остается возможность листать модели, а поскольку список вертикальный, перемещение курсора стрелками вверх-вниз тоже выглядит логично.
Да, я думаю, что это хороший вариант.
Название: Dark Engine Viewer
Отправлено: Vorob от 18 Декабря 2019 12:22:04
Цитировать
Это где?

Оффтопик: Ну как где? Как минимум в первой миссии его новой кампании.
Название: Dark Engine Viewer
Отправлено: Zontik от 18 Декабря 2019 16:18:25
Оффтопик:
Цитировать
А не приходила мысль связывать их или запирать где-нибудь?
Ты так пошутил, что ли, или я чего-то не ухватил из базового интерфейса?
Цитировать
"мобы" конечны, они не спавнятся, а лишь "воскресают", но этот процесс можно контроллировать.
Этого вообще не понял. Я бы и рад установить контроль над рождаемостью, но... как-то забыли обеспечить механизмом реализации.
Цитировать
Насажал дверей которые невозможно открыть, но которые простукиваются и вводят в заблуждение. Совершил простейшую геймдизайнерскую ошибку, хотя сам - тертый калач в этом деле.
Никто не совершенен. Хотя двери, которые невозможно открыть, у меня, как правило, не активны, что их и  отличает. А простукивать у меня можно и стены с тем же успехом. Впрочем, это не оправдание, потому что есть и другие вещи, которые я бы сейчас сделал по-другому.
Цитировать
В воре ты хозяин положения, потому ты можешь и локации зачищать и двигаться незаметно, а в сисшоке ты - жертва. Всё там отлично разработчики реализовали.
Не спорю, просто мне такая игра удовольствия не доставляет. Одну боль.
Ладно, вернемся к теме.
Цитировать
- стрелки влево-вправо - переключают модель предыдущая-следующая
- стрелки вверх-вниз - просто смещают курсор
То есть в какой-то момент курсор и выделение оказываются в разных местах? На первый взгляд это как-то алогично. На тот же самый по счету взгляд - логичнее смещать курсор и выделение одновременно со сменой модели. Но в случае длинных списков это может привести к невозможности их листать, так?
Цитировать
- клавиша BACKSPACE открывает родительский каталог
Вот это правильно. А клавиша всегда будет работать, независимо от последних 1операций и смещения фокуса?
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 18 Декабря 2019 22:12:45
То есть в какой-то момент курсор и выделение оказываются в разных местах? На первый взгляд это как-то алогично.
И это верно. Как и то, что перемещаться между моделями клавишами "вверх" и "вниз" интуитивно понятнее (поскольку используется вертикальный список).

Я думаю, что все-таки стоит оставить нынешнюю систему, но иметь возможность перемещаться и по папкам, заходя в них Enter'ом. Когда выбрана папка, в центре вьюпорта можно писать ее имя в квадратных скобках тем же шрифтом, что и сообщение об ошибке (но только не красным цветом).

При вхождении в папку лучше, если будет открываться сразу первая модель, минуя папки (как сейчас). А клавиша Home может работать как сейчас - выбирать первую модель, но с рядом уточнений:
1. Если первая модель уже выбрана, то нажатие Home приведет в выбору папки [..].
2. Точно так же, если выбрана любая папка, кроме [..], нажатие Home приведет к выбору [..].
3. Если выбрана папка [..], нажатие Home приведет к выбору первой модели.
Таким образом, используя Home, можно будет попасть как на первую модель в списке, так и на папку [..]. Многократное нажатие Home будет приводить к циклическому переключению между папкой [..] и первой моделью.

Поведение клавиши PageUp аналогичное, но попроще - если листать дальше некуда, выбирается сначала первая модель, при следующем нажатии - папка [..]. И все. (Сейчас, кстати, PageUp переключает на конец списка, что неправильно; поведение PageDown корректное.)

И да, клавиша Backspace должна переходить на папку верхнего уровня.

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

Цитировать
Это где?
Оффтопик: Ну как где? Как минимум в первой миссии его новой кампании.
Оффтопик: А где именно? Не помню ни одной активной двери в кампании, в которую невозможно было бы войти.
Название: Dark Engine Viewer
Отправлено: Force от 18 Декабря 2019 23:40:10
Последние изменения
Цитировать
2019-12-18 23:30 MSK
+ пути к ресурсам игры удаляются из программы, если мы выходим из каталога игры (чтобы ресурсы разных игр не перемешивались при загрузке)
+ исправлено падение программы при клике или скролле на странице ошибки при первом запуске
+ окно программы при запуске располагается по центру экрана
+ исправлено поведение клавиши PgUp, перематывающей список в самый конец, при нажатии в верхней части списка
Название: Dark Engine Viewer
Отправлено: Maxim от 19 Декабря 2019 03:01:36
Я бы сделал перемещение через WSAD. В некоторых игровых эмуляторах, например, встречал навигацию в интерфейсе схожую игровой, что является как бы продолжением из одного в другое. Ну и привычно и тянуться рукой к стрелкам не надо.
Название: Dark Engine Viewer
Отправлено: Zontik от 19 Декабря 2019 08:54:57
Цитировать
Цитата: Zontik от Вчера в 16:18:25
На тот же самый по счету взгляд - логичнее смещать курсор и выделение одновременно со сменой модели. Но в случае длинных списков это может привести к невозможности их листать, так?
Не понял, почему?
Возможно, я что-то упускаю, но раз нельзя смещать курсор отдельно - значит, попасть в нижнюю часть списка можно, только пролистав его весь и посмотрев принудительно все промежуточные модели. Или тут есть альтернатива?
Цитировать
Я бы сделал перемещение через WSAD
А что будут делать в этом случае клавиши A и D? Список-то не трехмерный. И даже не двух.
Хотя на самом деле я приму любой интерфейс, поскольку уже ясно, что откровенно дурацким он все равно не будет. Но даже дурацкий интерфейс можно было бы простить за функциональность. Есть хороший пример, называется DromEd.
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 19 Декабря 2019 10:21:13
Возможно, я что-то упускаю, но раз нельзя смещать курсор отдельно - значит, попасть в нижнюю часть списка можно, только пролистав его весь и посмотрев принудительно все промежуточные модели. Или тут есть альтернатива?
Альтернатив достаточно: PageUp/PageDown, Home/End. Ну или воспользоваться мышью.  (У тебя медленно открываются модели?)

Хотя, в принципе, и Форсов вариант с вверх/вниз - навигация только по списку и вправо/влево - навигация с переключением модели тоже неплох. Просто потребует немного привыкания, и не каждый сразу догадается, что так можно. Выделение открытой модели (желтый шрифт) отдельно от выделения текущего файла в списке (серый фон) у нас теперь, по крайней мере в теории, есть.

В общем, я колебаюсь. Или колеблюсь.

Я бы сделал перемещение через WSAD.
Мне эта идея, скажем так, не особенно нравится. Я вот вообще не играю через WSAD. Тогда мне, пользуясь этой логикой, надо выбирать предыдущий файл правой кнопкой мыши, а следующий - клавишей M. Или выбирать нужный файл джойстиком. Нет уж, давайте лучше по-классически, стрелками.
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 19 Декабря 2019 10:52:48
Force, а ты уже выходил с этой программой, так сказать, на международную арену? TTLG в курсе твоих наработок?
Название: Dark Engine Viewer
Отправлено: Maxim от 19 Декабря 2019 13:20:06
Да я не настаиваю на предложении, делайте как угодно, лишь бы всё работало  :agree:
А как ты, Chuzhoi, играешь не с WSAD это занимательно. Ты же не только в авиасимуляторы играешь. Учитывая, что с точки зрения эргономики WSAD не просто так появилось. Находится в таком месте, где остальные клавиши, кои так же участвуют на исполнении других команд, располагаются по правую сторону и до них той же управляющей рукой легко дотягиваться. Со стрелками же предполагается, что основное управление сдвигается сугубо в правую, остаточную зону клавиатуры. А управлять правой рукой, а левой исполнять остальные команды это какая-то мозговыносящая фигня. Тем более, что в таком случае важные исполнительно-подтверждающие клавиши, которые должны быть в стороне от всего, оказываются именно в той зоне дотягивания правой рукой до них, как это было бы в случае левой руки и WSAD. То есть это не совсем правильно. Ибо что у тебя остаётся для дотягивания правой рукой на назначение остальных команд? /, ., \, ', ], Enter, Backspace, Delete, End, PgDn, PgUp, ну и правая цифровая клава. Большинство клавиш являются не свободными буквенными, а "системными", которым хорошо бы как раз отдельные команды исполнять. Либо руку искривлять, дотягиваясь куда-то. Всё это полная дичь и я всегда везде, где только можно, первым делом убираю дурацкое управление стрелками. В случае же использования буквенных клавиш на остальные команды левой рукой, ты лишаешься управления мышью. В общем, стрелки это архаика. Как правило, можно встретить в древних играх.

Можно предложить сделать возможность произвольного назначения клавиш на ту или иную команду, но предполагаю, что это воплотить в жизнь технически сложно. Force знает ответ. Это получается нужно пользовательский интерфейс иметь с опциями.
Название: Dark Engine Viewer
Отправлено: Force от 19 Декабря 2019 14:58:51
Maxim
Я тоже играю не на WSADе  ;D
Chuzhoi
Нет, хотел модели персонажей приделать и пойти.
Название: Dark Engine Viewer
Отправлено: nemyax от 19 Декабря 2019 15:04:28
Оффтопик: Если разобраться, ESDF так-то функциональнее, чем WASD. Но почему-то не прижилось.
Название: Dark Engine Viewer
Отправлено: Zontik от 19 Декабря 2019 15:49:45
Цитировать
У тебя медленно открываются модели?
Я пока на правах теоретика. В предыдущих версиях открывались околомгновенно.
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 19 Декабря 2019 19:28:02
хотел модели персонажей приделать
Вот это будет прорыв. Понятное дело, что интерфейс, который мы обсуждаем - дело важное, но все же уже сейчас у него лицо вполне человеческое, и речь идет скорее о его полировке. А персонажи - это будет уже совсем здорово.

А анимация будет показываться? Или пока это совсем фантастика?

В общем, стрелки это архаика.
Оффтопик: Макс, я играю не стрелками. У меня ПКМ - вперед, M - назад, <> - вправо-влево. Остальное вокруг. Могу и WASD'ом играть (мне попадались игры, в которых управление не переназначается), но мне это не так привычно.
Название: Dark Engine Viewer
Отправлено: Force от 20 Декабря 2019 22:29:00
Ковыряюсь тут в модельках, пока фиксил ориентацию костей друг относительно друга, выяснил одну любопытную вещь...

Я вижу исправление бага позиционирования костей в отдельной модели:
(http://forcesw.com/i/reports/object_transform_bug_3.jpg)(http://forcesw.com/i/reports/object_transform_fix_1.jpg)
(http://forcesw.com/i/reports/object_transform_bug_4.jpg)(http://forcesw.com/i/reports/object_transform_fix_2.jpg)

Но, по всей видимости, в DromEd'е есть некий дополнительный параметр ориентации модели, который я не учитываю, некоторые проблемные модели в миссиях так и остались кривыми:
(http://forcesw.com/i/reports/object_transform_bug_1.jpg)(http://forcesw.com/i/reports/object_transform_bug_2.jpg)

Кто-нибудь может подсказать, что это за параметр может быть, или где он хотя бы в меню DromEd'а находится?
Название: Dark Engine Viewer
Отправлено: nemyax от 20 Декабря 2019 22:49:50
Force
Там в модели массив матричек 3х4, и у каждого чайлда индекс в туда. Но жизнь была бы пуста, если бы вместо единичных матричек не попадались бы массивы нулей.
Трансформы вроде в системе координат родителя.
Название: Dark Engine Viewer
Отправлено: Force от 20 Декабря 2019 23:20:52
nemyax
Матрицы разве не 3х3?
С нулями в родителе я разобрался, а вот в остальных местах - посмотрю. Надо эти бажные модели исследовать.
Название: Dark Engine Viewer
Отправлено: nemyax от 20 Декабря 2019 23:32:18
3x3, а сразу после неё вектор трансляции.

Ну вот оно (matrixs.h):
typedef float mxs_real;

typedef struct mxs_vector {
   union {
      struct {mxs_real x,y,z;};
      mxs_real el[3];
   };
} mxs_vector;

typedef struct mxs_matrix {
   union {
      struct {mxs_real m0,m1,m2,m3,m4,m5,m6,m7,m8;};
      struct {mxs_vector vec[3];};
      mxs_real el[9];
   };
} mxs_matrix;

typedef struct mxs_trans {
   mxs_matrix mat;
   mxs_vector vec;
} mxs_trans;

Насчёт массива гоню, прямо на подобъекте хранится трансформ. В массиве там настройки лимитов вращения-скольжения. Забыл уже всё.
Название: Dark Engine Viewer
Отправлено: Force от 03 Января 2020 17:59:56
Ву-ху!  :yay:

Исправлена давнишняя проблема ориентации объектов на миссии. Теперь все объекты должны четко стоять на своих местах, как задумано!
Было и стало:
(http://forcesw.com/i/reports/object_transform_bug_1.jpg)(http://forcesw.com/i/reports/object_transform_fix_3.jpg)

Связано это было с какой-то загадочной особенностью инициализации кватернионов в библиотеке glm. В механизме считывания самих моделей всё было нормально.

Сборка будет чуть позже.
Название: Dark Engine Viewer
Отправлено: Force от 04 Января 2020 01:18:58
Последние изменения
Цитировать
2020-01-04 00:55 MSK
+ исправлена ошибка вращения объекта сразу после его открытия, без предварительного движения мышью
+ исправлена ориентация некоторых объектов в миссиях, связанная с особенностью указания ориентации кватернионов в библиотеке GLM
+ исправлено построение AABB и OBB для объектов и их костей
+ шейдеры теперь умеют принимать на вход массивы данных
+ добавлена заготовка схемы отрисовки для дебажного вывода bounding boxes

Последняя актуальная сборка:
deviewer_build.zip (http://forcesw.com/deviewer_build.zip) 2020-01-04 00:55 MSK

Первый пост обновлен.
Название: Dark Engine Viewer
Отправлено: nemyax от 04 Января 2020 10:29:20
В формате уровней используются кватернионы?
Название: Dark Engine Viewer
Отправлено: Force от 04 Января 2020 13:17:19
Нет, углы Эйлера. Я просто преобразую их в кватернионы для ориентации объектов, а GLM, имея конструктор кватерниона из углов Эйлера, накладывает их в порядке x, y, z. В общем, какая-то дурацкая ситуация. Как можно правильно наложить трансформацию на объект по углам Эйлера по дефолту, когда ты не знаешь договоренности, в какой последовательности это надо делать? Короче, зачем в GLM такой конструктор? Может ты, как опытный моделлер прольешь свет? Я чего-то не понимаю?
Название: Dark Engine Viewer
Отправлено: nemyax от 04 Января 2020 14:20:00
Ну скорее всего в глм дефолтный порядок углов - xyz. Ты такой эйлер создал, он так дальше и живёт.
А в движке какой используется порядок для эйлеров? Если взять не тот порядок, то само собой будет фейл. И зачем промежуточные кватернионы, если ты можешь переводить эйлеры сразу в матрицы, не накапливая ошибок.
http://www.songho.ca/opengl/gl_anglestoaxes.html
Название: Dark Engine Viewer
Отправлено: Force от 04 Января 2020 16:07:44
Цитировать
А в движке какой используется порядок для эйлеров?
Я полагаю, такой же, только из-за того что оси другие, накладывать их надо в другой последовательности. Я преобразовывал оси, но это были условия для декартовых координат. Подумал сейчас, надо будет ещё кое-что попробовать. Спасибо за ссылку :).

Цитировать
И зачем промежуточные кватернионы, если ты можешь переводить эйлеры сразу в матрицы, не накапливая ошибок.
Ну, ошибки там смешные, это ж не техническое моделирование. :) А кватернионы - просто удобнее и все зависит, в первую очередь, от физического движка. Во вторую - от анимаций вора, которые я ранее не планировал, но раз вы тут все про них знаете, то почему бы и нет? В общем, когда физический движок подключу, станет понятнее, как дальше быть и в чем хранить.
Название: Dark Engine Viewer
Отправлено: nemyax от 04 Января 2020 18:04:11
Раз другие оси, домножал бы на матрицу-переориентировалку. Если пытаться в кватернионах что-то тасовать, можно себе такое адище устроить.
Название: Dark Engine Viewer
Отправлено: Force от 04 Января 2020 21:35:31
Раз другие оси, домножал бы на матрицу-переориентировалку. Если пытаться в кватернионах что-то тасовать, можно себе такое адище устроить.
Да, сами модели я так и переориентирую в итоге. Но размещение их на уровне надо обрабатывать через отдельные повороты по углам Эйлера в исходной последовательности. Я подумал и пришел к выводу, что тут ничего нельзя сделать из-за того что оси другие - только исходные оси и исходные повороты. Сейчас работает, насколько я могу судить, но всё равно есть странные модели, выглядящие разобранными (Thief 2):
camera02.bin
camera03.bin
camera04.bin
но они, вроде как, не используются в игре... Но всё равно, подозрительно.

Из используемых странно выглядят:
turnew0.bin
turnew1.bin
turnew3.bin
Название: Dark Engine Viewer
Отправлено: nemyax от 05 Января 2020 01:20:28
turnew0.bin
Эта состоит из одного подобъекта, там нечему разваливаться.

turnew1.bin
turnew3.bin
У этих иерархия корень-дочка-внучка, притом у turnew1.bin ориджины дочки и внучки чёрти где. Впрочем, их оси X проходят как надо для локального вращения.
Название: Dark Engine Viewer
Отправлено: Force от 05 Января 2020 08:37:00
nemyax
А у тебя есть возможность открыть эту модель в каком нибудь редакторе и посмотреть, целая ли она?
Название: Dark Engine Viewer
Отправлено: nemyax от 05 Января 2020 11:25:47
Я их импортировал в блендер, чтобы посмотреть. У turnew0.bin нету ни одного чайлда. Там разрушенная турелька единым куском, как я понял.
Название: Dark Engine Viewer
Отправлено: Force от 05 Января 2020 12:20:58
Так я про turnew1.bin
Можешь и фотку приложить
Название: Dark Engine Viewer
Отправлено: nemyax от 05 Января 2020 12:35:15
Force
Да удобнее будет тебе скачать блендер 2.79b и мой импортёр да и проверить.
Название: Dark Engine Viewer
Отправлено: Force от 05 Января 2020 12:49:08
Тебе - удобнее, да. Ничего делать не придется.  :lol:
Название: Dark Engine Viewer
Отправлено: Zontik от 06 Января 2020 23:29:33
Цитировать
camera02.bin
camera03.bin
camera04.bin
Цитировать
turnew0.bin
turnew1.bin
turnew3.bin
Все они используются в игре, только динамически. Разные уровни тревоги = разные модельки (цвет лампочки).
Название: Dark Engine Viewer
Отправлено: nemyax от 07 Января 2020 13:25:40
Всё это планируется реализовать с ресурсами Dark Engine, поэтому логично ожидать от этого проекта появления какого-то игрового прототипа, внешне похожего на Thief.
Ты не думал вместо прямой поддержки этого шыта сделать конвертор в твои собственные форматы и избавить движок от совместимости со мрак-мотором?
Название: Dark Engine Viewer
Отправлено: Force от 07 Января 2020 13:48:33
Так я и использую по факту конвертер. У меня что структура миссии, что моделей - своя. Все загружаемые ресурсы на лету складываются в нужные структуры данных, и движок с ними работает. Когда достигну определенного запланированного этапа (когда набор данных устоится) - начну кэшировать эти структуры на диске после первого чтения. Для миссий это вообще позволит добиться практически мгновенной загрузки, поскольку будет грузиться только нужный кусочек уровня. Так что, да, фактически можно использовать любые форматы ресурсов - главное лишь написать для них "ридер" в формат движка.
Название: Dark Engine Viewer
Отправлено: Force от 14 Января 2020 15:10:01
Последние изменения
Цитировать
2020-01-14 15:00 MSK
- исправлено отображение уровней на видеокартах AMD
- отрефакторен рекурсивный обход BSP-дерева при открытии моделей, убрана рекурсия
- исправлено падение программы при открытии некоторых старых или поврежденных моделей
- откорректирована простановка доступных для выборки mipmap-уровней текстур
- добавлена отладочная схема отрисовки
Название: Dark Engine Viewer
Отправлено: Force от 05 Февраля 2020 23:37:35
Актуальная сборка
deviewer_build.zip (http://forcesw.com/deviewer_build.zip) 2020-02-05 23:30 MSK


Последние изменения
Цитировать
2020-02-05 23:30 MSK
+ исправлено отображение некоторых проблемных моделей, состоящих из нескольких костей

Наконец-то удалось выловить и исправить неприятный баг, способный весьма усложнить отображение моделей персонажей, состоящих из множества костей. Понимаю, что затянулось это значительно дольше чем ожидаемые две недели, но уж больно баг был досадный, нельзя было его игнорировать и приступать к персонажам. Теперь путь открыт. Наконец-то!
Название: Dark Engine Viewer
Отправлено: Force от 17 Февраля 2020 23:17:10
Актуальная сборка
deviewer_build.zip (http://forcesw.com/deviewer_build.zip) 2020-02-17 23:00 MSK


Последние изменения
Цитировать
2020-02-17 23:00 MSK
+ добавлена поддержка цветных полигонов в моделях
+ исправлено отсечение пути к текстурам, находящимся в одном подкаталоге с открытой моделью (информация о текстурах, отображаемая на экране)
+ различные внутренние оптимизации

В списке изменений информации не густо, но изменений много, хоть и мало заметных на первый взгляд. Была проведена довольно серьезная работа с моделями, устранены некоторые ошибки при поиске текстур. Исправлено падение программы в определенных ситуациях. Самыми заметными изменениями стали поддержка цветных полигонов моделей и исправление информации о текстурах, отображаемой на экране (если текстура находится в одном подкаталоге с моделью, абсолютная часть пути к текстуре отсекается).
Название: Dark Engine Viewer
Отправлено: Force от 25 Февраля 2020 12:48:33
Небольшой анонс для тех кто следит за темой. Это скриншот-загадка для внимательных тафферов, способных догадаться ЧЕГО ИМЕННО это анонс. Предлагайте свои варианты :)

(http://forcesw.com/i/dev_054_teaser.jpg)
Название: Dark Engine Viewer
Отправлено: HellRaiser от 25 Февраля 2020 12:50:04
Я угадал! Это анонс новой версии :yay:
Название: Dark Engine Viewer
Отправлено: Force от 25 Февраля 2020 12:56:00
:lol:
Да, так и есть  :biggrin:. Но смена циферок скорее следствие ЭТИХ изменений. Каких? На всякий случай скажу, что это не модели персонажей. :suspect:
Название: Dark Engine Viewer
Отправлено: HellRaiser от 25 Февраля 2020 12:59:34
Тени мне на скрине нравятся. Может динамическое освещение? И да, я невнимательный, поэтому это последняя попытка.
Название: Dark Engine Viewer
Отправлено: Force от 25 Февраля 2020 13:05:19
Тени мне на скрине нравятся. Может динамическое освещение? И да, я невнимательный, поэтому это последняя попытка.
Хотел тут ещё понаписать всякого... чтобы облегчить поиски отгадки, но решил повременить пока.
Скажу только, что динамическое освещение и такие вот тени были с самого первого релиза просмотрщика :). Проблема только в том, что пока не добавлено интерактивное взаимодействие, никто не узнает что тени динамические :biggrin:.
Название: Dark Engine Viewer
Отправлено: Zontik от 25 Февраля 2020 14:04:43
Анонс грядущего прохождения "Патриота"?
Из необычного же на экране вижу только тень от AI (хотя можно ли приравнивать модель игрока к AI - вопрос для меня спорный). Выглядит все безупречно, практически как в редакторе (за исключением веселой рожицы). Раньше просмотрщик не позволял такого? Насколько я помню, были различные проблемы с отображением миссий. Здесь же никаких проблем не вижу.
Название: Dark Engine Viewer
Отправлено: Force от 25 Февраля 2020 14:35:13
Zontik
Цитировать
Насколько я помню, были различные проблемы с отображением миссий. Здесь же никаких проблем не вижу.
Всё верно, это практически ответ :), не хватает только сформулированного логического вывода, резюме так сказать :).

Цитировать
Из необычного же на экране вижу только тень от AI
Да, сейчас тени рисуются вообще от всего, даже от чего не надо...

Цитировать
Выглядит все безупречно, практически как в редакторе...
Приятно слышать! :)
Название: Dark Engine Viewer
Отправлено: Zontik от 25 Февраля 2020 15:12:32
Резюме - анонсируется полноценный просмотрщик миссий?
Цитировать
сейчас тени рисуются вообще от всего, даже от чего не надо...
На скриншоте видно не очень хорошо, но, кажется, тень есть даже от пламени свечи?
Название: Dark Engine Viewer
Отправлено: Force от 25 Февраля 2020 15:42:45
Рассказываю. ВНЕЗАПНО пишет мне PinkDot (Juliusz Kaczmarek, ему не очень нравится его ник) и говорит, что он знает как открыть миссии New Dark'а! Мы пообщались с ним, я поковырялся и всё получилось! Это было так неожиданно и так круто! Так что да, теперь это полноценный просмотрщик миссий, поддерживающий все их форматы!

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

Это выглядит ещё большим достижением на фоне моих (и всех, кто мне в этом помогал) неудачных попыток связаться с разработчиками New Dark и их уходом от ответственности (и от помощи).

Так что, я очень рад! :yay: Огромная благодарность выражается тафферу TTLG с никнеймом PinkDot aka Juliusz Kaczmarek! Его имя будет увековечено в благодарностях! :agree:
Название: Dark Engine Viewer
Отправлено: Maxim от 25 Февраля 2020 22:06:44
А меня всё подмывает спросить: а какой в этом всём замечательном и интересном, собственно, практический толк? К чему всё это можно приспособить с пользой для дела? Просто... открыть миссию и полетать можно и в дромеде.
Название: Dark Engine Viewer
Отправлено: Force от 25 Февраля 2020 22:27:21
Maxim
Уже сейчас у меня меньше проблем с просмотром миссии в просмотрщике, чем в ДромЕде. Я открываю эту же миссию, в папке FMs о она вся в Jorge. Ну и в софтваре, и мышку не поддерживает и в микроскопическом окошечке. Я спрашивал в теме, как со всем этим быть и как исправить, никто не ответил.
Название: Dark Engine Viewer
Отправлено: Maxim от 26 Февраля 2020 02:25:55
Здорово. Кстати, вот что ещё мне надумалось. Это более удобное создание скринов-анонсов. Летаешь такой по миссии и в нужном месте останавливаешься с "камерой". Опять же, можно и в дромеде, но не столь удобно будет.
Название: Dark Engine Viewer
Отправлено: Zontik от 26 Февраля 2020 08:14:11
А как выглядят AI в твоем просмотрщике? Поза по умолчанию? Если так, то ни о каких скриншотах с людьми и речи быть не может.
Для просмотра миссии в Дромеде вообще-то используется игровой режим, а не превьюшечный глазок. Так что с ним и надо сравнивать.
Насчет Jorge могу сказать только одно - такого не должно быть (да ты и сам догадывался). Где-то конфликт ресурсов. Но я не Борис, так что готового рецепта у меня нет.
Название: Dark Engine Viewer
Отправлено: Force от 26 Февраля 2020 08:43:01
Zontik
AI надо подождать. Да там и без этого ещё куча лишних объектов висит в воздухе - все триггеры видны, споты в виде лопат  :lol:. Так что идея Максима со скринами не очень прокатывает пока.

Скажу так, если получится подключить AI-модели и их анимацию, можно будет сказать - дело в шляпе. Потому что сейчас только это осталось неизведанной территорией. Но ещё я видел, чего добился Juliusz (PinkDot) - это впечатляет, и если он подскажет, думаю, все будет хорошо. У нас будет всё. Это лишь вопрос времени.
Название: Dark Engine Viewer
Отправлено: Force от 26 Февраля 2020 20:21:29
Актуальная сборка
deviewer_build.zip (http://forcesw.com/deviewer_build.zip) 2020-02-26 20:00 MSK


Последние изменения
Цитировать
2020-02-26 20:00 MSK
+ добавлена поддержка миссий формата New Dark Engine! Ура! Особая благодарность выражается Juliusz Kaczmarek aka PinkDot!
+ незначительно ускорена загрузка миссий
+ при открытии миссии, камера позиционируется в стартовой позиции
+ класс цвета переделан на хранение данных в векторе с плавающей точкой, это обеспечивает лучшую точность
+ отключено "залипание клавиш", для предотвращения накопления смещений камеры при управлении интерфейсом
+ увеличена яркость режима просмотра миссий
Название: Dark Engine Viewer
Отправлено: Force от 06 Марта 2020 15:03:57
Актуальная сборка
deviewer_build.zip (http://forcesw.com/deviewer_build.zip) 2020-03-06 14:00 MSK


Последние изменения
Цитировать
2020-03-06 14:00 MSK
+ уменьшен радиус SSAO и соответственно, bent normals. Последние теперь включены в финальную картинку, отчего она выглядит немного зашумленной. Отключить вклад SSAO и bent normals можно клавишей k.
+ увеличено значение FOV c 50 до ~74 градусов по вертикали, что соответствует FOV New Dark Engine.
+ переработано взаимодействие с объектной иерархией. Считываются свойства Render Type и Self Illumination, это позволило не рисовать лишние объекты миссии и исправило отображение теней от светильников.
+ исправлено смещение полигонов для обратного буфера глубины. Это предотвращает мельтешение теней (артефакты) при повороте или перемещении камеры.

Работа с объектной иерархией оказалась очень увлекательной. Я наконец-то разобрался со связями и увидел, как фантастически досконально DromEd позволяет взаимодействовать с объектами! Это обещает быть очень интересным!

Уже сейчас миссии должны выглядеть почти как в игре. В том плане, что теперь ничего лишнего не висит в воздухе. :)

Можно заметить, что я добавил в финальный рендер такую штуку как искривленные нормали - bent normals. Это фэйковый эффект, симулирующий некое подобие глобального освещения. Он добавлен временно и в будущем планируется он него уйти. Дело в том, что миссии вора в оригинале (даже в New Dark'е) отображаются с использованием статических лайтмэпов, которые считаются по сложным алгоритмам, на подобие рейтресинга в момент построения уровня (вы это прекрасно знаете и без меня :)). Это построение создает эффект мягкого освещения, особенно на перпендикулярных стыках стен, в углах.

(http://forcesw.com/i/reports/butler_original.jpg)

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

(http://forcesw.com/i/reports/butler_bent_normals_off.jpg)

Поэтому чтобы хоть как-то минимально скомпенсировать недостаток вторичного освещения, я добавил искривленные нормали:

(http://forcesw.com/i/reports/butler_bent_normals_on.jpg)

Да, результат получился очень спорным. Скорее всего, я даже использую эти нормали некорректно. Но, ещё раз повторюсь, в будущем их вообще можно будет выбросить в угоду глобальному освещению, а пока, если они так сильно мешают, их можно отключить клавишей k. Так что вопрос освещения остается открытым, но высказывать свои пожелания вы всё равно можете. Возможно, у вас будет какая-нибудь прекрасная идея, которую я не учел. ;)
Название: Dark Engine Viewer
Отправлено: Zontik от 06 Марта 2020 19:34:08
C нормалями определенно не хуже, чем без них, хотя все равно достаточно плохо. Зачем и кому может понадобиться их отключать?
Но больше всего именно на этой картинке по глазам бьют даже не даркмодовские тени, а черная лампа. С этим-то можно что-нибудь сделать, надеюсь? DromEd каким-то образом интерпретирует данные текстур и заставляет светиться те из них, которым соответствующее свойство добавлено в 3D-редакторе.
Название: Dark Engine Viewer
Отправлено: Force от 06 Марта 2020 19:58:08
Zontik
Да, черная (неосвещенная сама собой) лампа - это решаемо. Надо только найти как :). Мне в DromEd'е "удалось" только что сделать вот такое:

(http://forcesw.com/i/reports/lanterns.jpg)

Причем, мне не удалось сделать по-нормальному, хотя я ничего особенного для этого не делал. Просто поменял яркость у включенного и выключенного светильников. Надо найти свойство, которое отвечает за "свечение" самого объекта. Если ты или кто-нибудь ещё мне подскажет, буду очень признателен! :)

P. S. Таааакс... Вскрылись новые подробности, оказывается, это и есть свойство Self Illumination... Только что-то у него с наследованием не то :(.

P. P. S. Хотя не, всё то. Это я накосячил... простое решение не прокатывает, увы :(. Ну, зато, наступила ясность, знаю как починить лампы! :)
Название: Dark Engine Viewer
Отправлено: Zontik от 06 Марта 2020 20:18:46
Я бы написал сразу, если хотя бы предположил, что ты этого не знаешь. Извини.
Название: Dark Engine Viewer
Отправлено: Force от 06 Марта 2020 20:25:42
Zontik
Я почти ничего не знаю. У меня есть потроха, все видно, но как они взаимодействуют - приходится искать в туториалах по редактору для новичков. Поэтому, я буду рад любым пояснениям по любым вопросам, касающимся редактора.
Название: Dark Engine Viewer
Отправлено: nemyax от 06 Марта 2020 21:10:59
У меня есть потроха, все видно
Ты и компилятор уровней накопал?
Название: Dark Engine Viewer
Отправлено: Force от 06 Марта 2020 21:19:54
nemyax
Да не, я просто говорю про листинг чанков. У них у всех имена говорящие - одноименные с полями в редакторе. Сложность только в расковыривании формата их хранения, и какая логика стоит за ними. Если со вторым помогут местные умельцы, или не только местные, то вот с первым - как повезет. Пока что всё нужное мне встречалось в OPDE, но я недавно забрел в DromEd'е в такие интересные места, что OPDE такое и не снилось! :sly:

Название: Dark Engine Viewer
Отправлено: Chuzhoi от 06 Марта 2020 22:05:46
статических лайтмэпов, которые считаются по сложным алгоритмам, на подобие рейтресинга в момент построения уровня
Любопытно. То есть ты хочешь сказать, что в оригинальных алгоритмах учитывается переотражение света от объектов, поэтому светотень такая мягкая (т. е. используется radiosity lighting)? Действительно, в Dromed есть опции RayCast и ObjCast Lighting (никогда их не включал) - получается, это оно и есть?

Вторая картинка похожа на TDM. Кажется, я, наконец, начинаю понимать, почему там все выглядит таким угловатым (хотя в последние, гм, годы стало вроде бы получше). А третья в углах выглядит неестественной вообще (осветленный угол стены слишком бросается в глаза).
Название: Dark Engine Viewer
Отправлено: Force от 06 Марта 2020 22:29:48
Chuzhoi
Цитировать
Любопытно. То есть ты хочешь сказать, что в оригинальных алгоритмах учитывается переотражение света от объектов, поэтому светотень такая мягкая (т. е. используется radiosity lighting)?
Вот ты сказал и я сам задумался. А ведь нет, действительно! Оно МОГЛО БЫ БЫТЬ ТАМ, но его нет.

(http://forcesw.com/i/reports/lanterns_no_radiosity.jpg)

Думаю тогда проблема в другом. В обратном подходе. Лайтмэп накладывается на абсолютно освещенную поверхность, тогда как реалтаймовое освещение пытается рассеять абсолютную тьму. В итоге лайтмэп не учитывает нормаль к поверхности, отсюда и равномерность освещения на всех "гранях" стены.

Цитировать
А третья в углах выглядит неестественной вообще (осветленный угол стены слишком бросается в глаза).
Меня тоже как раз это коробит, поэтому я и сделал эту штуку выключаемой, кому совсем плохо от неё станет :). Она ещё и исчезает у границ экрана при поворотах камеры как SSAO :cheesy:.
Название: Dark Engine Viewer
Отправлено: Force от 06 Марта 2020 23:26:24
ВНЕЗАПНО!!! :aaa: На меня снизошло откровение! Убрал учет нормалей, поставил честную формулу затухания света и вот:

(http://forcesw.com/i/reports/butler_without_normals.jpg)

Идеально! :yay:

Ну, это работает так только с условием, что никаких других эффектов нет... Ну что, оставить пока так?
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 06 Марта 2020 23:30:20
Думаю тогда проблема в другом. В обратном подходе. Лайтмэп накладывается на абсолютно освещенную поверхность, тогда как реалтаймовое освещение пытается рассеять абсолютную тьму. В итоге лайтмэп не учитывает нормаль к поверхности, отсюда и равномерность освещения на всех "гранях" стены.
А может, просто дело в элементарном разбавлении теней эмбиентом? На второй картинке эмбиента нет или он недостаточен, поэтому и углы такие резкие.

Любопытно, кстати, что тогда означают эти RayCast и ObjCast Lighting, если не radiosity. Кстати, в последнем нет ничего такого фантастического - уже в Quake 2 этот способ использовался.

Оффтопик: Кстати, вспомнил, что еще мне напоминает вторая картинка: освещение в классическом Unreal Engine (до второй версии включительно; в третьей, кажется, алгоритмы поменялись) с отключенной опцией Dark Corners (которая была включена по умолчанию). В этом движке использовался свой способ "оживления" освещенных примитивными компьютерными алгоритмами полигонов - затемнение углов. Видимо, по замыслу разработчиков, это должно было создать ощущение полумрака. Кстати, в редакторе на пустых комнатах это выглядело довольно неестественно, но в реальных игровых уровнях это вполне неплохо работало, придавая картинке своеобразный анриловский шарм.

Ага, обновление... Ну не знаю. На первый очень беглый взгляд вроде и неплохо, но на самом деле получается слишком примитивно - ведь между полигонами все-таки должны быть границы, а их тут совсем нет...
Название: Dark Engine Viewer
Отправлено: Force от 06 Марта 2020 23:51:19
Вот еще два скрина.
New dark (тут видно, что учет нормалей уже сделан):

(http://forcesw.com/i/reports/butler_original_new.jpg)

Без нормалей, эта же миссия, исправленная для New Dark:

(http://forcesw.com/i/reports/butler_without_normals_new.jpg)

Да, в общем, надо это дело тюнить и обкатывать. Искать/составлять алгоритмы, удовлетворяющие нашим потребностям.

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

P. S. Кстати, с этим затуханием искривленные нормали выглядят не так вырвиглазно. Гармонируют...
Название: Dark Engine Viewer
Отправлено: Zontik от 08 Марта 2020 19:39:15
Цитировать
Действительно, в Dromed есть опции RayCast и ObjCast Lighting
Фактически это одно и то же, только в последнем прочитываются тени еще и от объектов, а в первом - только от брашей. Но они в корне отличаются от первого режима Quick Lighting, где все делается как-то неаккуратно (но резких теней там все равно нет, если не считать артефакты).
Как говорится, чем могу... Листинг чанков лучше обсуждать не со мной.
Название: Dark Engine Viewer
Отправлено: Force от 08 Марта 2020 22:42:49
А какое свойство отвечает за то, чтобы фонарный столб начал отбрасывать тень хотя бы от других светильников? А то сейчас все фонари не отбрасывают теней вообще. Или это где-то в движке захардкожено?
Название: Dark Engine Viewer
Отправлено: Force от 09 Марта 2020 19:26:48
На ttlg нашел:
Цитировать
the object itself casting a shadow (Object System > Immobile: TRUE)
Это оно! Кажется, даже Zontik уже про это говорил когда-то...
Название: Dark Engine Viewer
Отправлено: Force от 09 Марта 2020 22:09:51
...вот только... Это совершенно унылый критерий для отбрасывания теней в современном проекте, потому что любой потенциально подвижный объект, типа ящика, бочки и т.п. тень отбрасывать не будет, потому что свойства Immobile у него быть не может. Пожалуй, приберегу это свойство до момента прикручивания физики, там оно даже семантически больше подходит, а для теней всё-таки использую Self Illumintation.

Насколько это будет объективная замена логики?
Название: Dark Engine Viewer
Отправлено: Zontik от 10 Марта 2020 08:38:19
Не получится ли в результате этой логики так, что светильник при выключении перестанет отбрасывать тень? Просто не знаю, что происходит со свойством в результате включения/выключения. Это уже задача движка - интерпретировать действия игрока, в редакторе этого не посмотришь.
Название: Dark Engine Viewer
Отправлено: Force от 10 Марта 2020 09:16:38
Zontik
А сейчас именно так и есть. Абсолютно все объекты, у которых нет свойства immobile, тень не отбрасывают никогда. Среди них все светильники, независимо от того, включены они или нет. Я же предлагаю наличие тени навесить на наличие свойства self illumination, причем даже с нулевым значением. Таким образом тени не будет только у светильников, которые могут или горят. "Мертвые" светильники, без свойства self illumination тень отбрасывать будут.
Название: Dark Engine Viewer
Отправлено: Zontik от 10 Марта 2020 11:22:31
Это какая-то инопланетная логика.
Цитировать
Я же предлагаю наличие тени навесить на наличие свойства self illumination
Цитировать
"Мертвые" светильники, без свойства self illumination тень отбрасывать будут.
Так наличие приравнять к наличию или все-таки к отсутствию?
В общем, сначала действительно хотелось бы понять логику, чтобы потом уже ее обоснованно разгромить. Потому что решение такое представляется более чем спорным: какая вообще связь между способностью светиться и способностью отбрасывать тень? Это имело бы смысл только в случае, если бы в помещении допускалось не более одного источника света - тогда понятно, что самому от себя тень отбрасывать затруднительно. (И то спорно.)
Название: Dark Engine Viewer
Отправлено: Force от 10 Марта 2020 11:52:12
Цитировать
В общем, сначала действительно хотелось бы понять логику, чтобы потом уже ее обоснованно разгромить.
Ты очень категоричен.

Цитировать
"Мертвые" светильники, без свойства self illumination тень отбрасывать будут.
Тут всё верно.

Цитировать
Я же предлагаю наличие тени навесить на наличие свойства self illumination
self illumination = 1.0 - тени нет.
self illumination = 0.5 - тени нет.
self illumination = 0.01 - тени нет.
self illumination = 0.0 - тени нет.
свойства self illumination нет вообще - тень есть.
Вот что имелось в виду.

Почему так? Предположим, если рядом стоят два фонаря, столбы, на которых они стоят не будут отбрасывать тень. Если один фонарь погасить рубильником, его self illumination станет 0.0 и он просто погаснет. Если же привязать тень к значению 0.0, то как только мы выключим один фонарь, у его столба внезапно появится тень, которой не было видно даже частично, хотя он горел очень тускло и её было бы видно, а это некрасиво и неправильно. Поэтому мы все потенциально работающие фонари теней лишаем, как и было в оригинале. Но даем тени никогда не работающим, чего в оригинале не было. Так же даем тени всем остальным объектам просто потому что можем, а Dark Engine не мог. Вот и вся логика.

Да, это тоже, в общем-то костыль, связанный с тем, что в оригинале светильники теней не отбрасывают вообще. Но это более логично, чем вешать тени только тем объектам, которые immobile.

Я планировал повозиться и сделать тени от всего вообще, только пофиксить светящиеся поверхности, которые раньше заслоняли свет, сделать так чтобы они тень не создавали и тогда всё станет почти как в реальности, но станет сильнее отличатся от оригинала, потому что теней станет больше, чего не предусматривали дизайнеры. Вот это вот решение и кажется спорным. В правильности же описанного в предыдущих абзацах я не сомневаюсь. Уверен, если бы не заговорил об этом, никто ничего бы и не заметил.
Название: Dark Engine Viewer
Отправлено: Force от 10 Марта 2020 12:06:40
Ну и self illumination все таки связано с освещением. Другого подходящего свойства я не знаю.
Название: Dark Engine Viewer
Отправлено: Zontik от 10 Марта 2020 13:39:20
Теперь понял. Ладно, разгром отменяется, раз уж придерживаемся подхода "как в оригинале". Меня смущает только то, что свойство Self Illumitation может назначаться не только светильникам, но и, например, огромному бойлеру с маленьким светящимся индикатором. Или вообще может быть назначено по ошибке объекту, которому оно вовсе не нужно. В то время как Immobile - это только слово, которое в реальности не имеет никакого влияния на подвижность/неподвижность объекта: его можно назначить хоть ящику, который поднимут и унесут, а тень от него останется лежать. То есть это слово-описание, а не слово-индикатор.
Название: Dark Engine Viewer
Отправлено: Force от 10 Марта 2020 13:58:45
Цитировать
Меня смущает только то, что свойство Self Illumitation может назначаться не только светильникам, но и, например, огромному бойлеру с маленьким светящимся индикатором.
Гм, а ведь и правда! Об этом я не подумал... Почему-то решил, что такие части есть только у светильников. Можно поступить более топорно - смотреть на родителей объекта, если, к примеру, это lanterns - тогда тени не рисовать. Но это уже hard code и этого бы не хотелось. Но я сейчас пока не вижу другого способа сделать красиво и правильно. Потому что Immobile нет у половины объектов, а значит и теней не будет у половины объектов. Да это будет выглядеть как в оригинале... но для этого тогда есть New Dark.

Цитировать
В то время как Immobile - это только слово, которое в реальности не имеет никакого влияния на подвижность/неподвижность объекта: его можно назначить хоть ящику, который поднимут и унесут, а тень от него останется лежать. То есть это слово-описание, а не слово-индикатор.
Ну не, оно ведь имеет функциональное значение, хоть и немного странное - рисовать тени. А ещё странно, что объект при этом можно взять... Он же немобильный...  :confused:
Название: Dark Engine Viewer
Отправлено: Zontik от 11 Марта 2020 09:53:51
А вообще в чем задача: сделать движок для каких-то будущих проектов или для еще одной имитации оригинала? Потому что в первом случае аргумент "Immobile нет у половины объектов" звучит по меньшей мере неубедительно. Нет - так пускай автор сделает, в чем проблема?
С другой стороны, если имитировать оригинал, а в особенности ФМ - это означает, что выглядеть должно как минимум похоже на задуманное авторами. И где тени не запланированы - их как-то не совсем правильно добавлять.
В общем, я, наверное, чего-то не понимаю, так что тебе виднее.
Название: Dark Engine Viewer
Отправлено: Force от 11 Марта 2020 10:19:02
Цитировать
"Immobile нет у половины объектов" <...> Нет - так пускай автор сделает, в чем проблема?
Immobile не подходит по семантике для всех объектов. Почему - я уже объяснял, если человек выставляет свойство "объект недвижим" - он таким и должен быть, иначе это профанация, а не редактор свойств.

Хотелось сделать "и нашим и вашим", но если консенсуса нет, я могу и не спрашивать. А то у меня такое чувство, что я не спрашиваю, а уговариваю, а это действительно странно.
Название: Dark Engine Viewer
Отправлено: Zontik от 11 Марта 2020 13:12:49
Я вовсе не протестую, просто хочу, чтобы ты яснее представлял себе ситуацию перед принятием решения.
А вот эта фраза -
Цитировать
если человек выставляет свойство "объект недвижим" - он таким и должен быть, иначе это профанация, а не редактор свойств.
заставляет сомневаться, что ты все понял правильно и до конца. Ну, может, это просто игра слов. Уточню в последний раз, что свойство Immobile никак не обеспечивает неподвижность предмета и только путает не вполне адекватным названием.
А если ты нацелен в будущем на движок с физикой, то там это свойство станет исчезающе редким, если в нем вообще останется какой-то смысл.
Название: Dark Engine Viewer
Отправлено: Force от 11 Марта 2020 13:46:57
Цитировать
Уточню в последний раз, что свойство Immobile никак не обеспечивает неподвижность предмета и только путает не вполне адекватным названием.
Я из этого сделал такой вывод - dark engine неправильно обрабатывает свойство Immobile, нужно сделать так, чтобы объекты, которым выставлено это свойство, оставались на своих местах всегда.

Но можно сделать другой вывод (который, судя по всему, ты и продвигаешь) - в DromEd'е свойство Cast Shadow названо Immobile и всё сейчас в игре совершенно нормально. Да, если считать так, то всё правильно, за тем лишь исключением, что у половины предметов нет теней. Даже у тех, которым бы они точно не помешали (стулья например). Отсюда снова напрашивается вывод, что свойство Immobile неправильно воспринимается дизайнерами миссий.

А раз в обоих случаях мы пришли к выводу, свойство Immobile всеми воспринимается неправильно, то нам ничего не остается, как сделать всё правильно самим - зафиксировать за свойством ровно то поведение, какое оно и обозначает своим названием - объект должен оставаться на своем месте абсолютно всегда. А это настенные факелы, бойлеры, баннеры, какой-нибудь закрепленный декор, который игрок не должен просто подойти и взять голыми руками. И если, например, бойлер нельзя будет взять из-за его массы, то факел - как раз из-за этого свойства. Ах да, логика DromEd настроена противоположным образом, ну, значит теперь будет иначе. По крайней мере до тех пор, пока не всплывут новые подробности или более подходящие свойства. Иного  более элегантного выхода я не вижу. Есть ли они?
Название: Dark Engine Viewer
Отправлено: nemyax от 11 Марта 2020 14:25:02
Но можно сделать другой вывод (который, судя по всему, ты и продвигаешь) - в DromEd'е свойство Cast Shadow названо Immobile и всё сейчас в игре совершенно нормально.
Ну да, лажанулись, когда придумывали название. А потом кривое название криво поняли дизайнеры.
Название: Dark Engine Viewer
Отправлено: Glypher от 11 Марта 2020 15:12:09
А раз в обоих случаях мы пришли к выводу, свойство Immobile всеми воспринимается неправильно
Почему неправильно? Зонтик всё правильно объяснил. Свойство Immobile = true добавляет постоянную тень неподвижному объекту. В данном случае Immobile - означает, что предмет, которому добавляется это свойство, должен быть неподвижным. В принципе его можно добавить любому объекту, но в этом случае, если взять объект, тень останется на месте, поэтому его добавляют только неподвижным объектам. Или добавляют со значением false, если надо, чтобы неподвижный объект не отбрасывал тень.
Цитировать
И если, например, бойлер нельзя будет взять из-за его массы, то факел - как раз из-за этого свойства.
За это отвечает другое свойство (FrobInfo), Immobile - на это никак не влияет.
Цитировать
Да, если считать так, то всё правильно, за тем лишь исключением, что у половины предметов нет теней. Даже у тех, которым бы они точно не помешали (стулья например).
У стульев это свойство стоит.
Название: Dark Engine Viewer
Отправлено: Force от 11 Марта 2020 15:34:02
Glypher
Ты не понял, видимо. Я говорю о том, что Immobile, по-хорошему, разрабам надо было бы переименовать в Cast Shadow. Всё.
Предположим, я - новичок, добавляю бочке свойство Immobile, ожидая, по названию свойства, что она будет неподвижна. Включаю игру, да у неё появилась тень, ура! Но что это, я толкаю бочку, она сдвигается, а тень остается на месте... Никакой это не Immobile, извините. И я не согласен с тем, что так и надо это дело оставить. Переименовать в DromEd'е я не могу, значит, у меня в движке это будет недвижимый объект. А уж с тенями придумаем что-нибудь.

При всем при этом, как новичок должен догадаться, что Immobile - означает "нарисовать тень от объекта"? А никак! Это ошибка именования свойства, как nemyax и сказал. Если ни у кого никаких новых соображений нет, предлагаю на этом вопрос Immobile закрыть.
Название: Dark Engine Viewer
Отправлено: nemyax от 11 Марта 2020 15:45:10
И я не согласен с тем, что так и надо это дело оставить.
Почему не надо? Мало ли на свете дурацких формулировок. Их на нём даже большинство.
Если тебе надо самому отображать свойства, то переименуй у себя в Cast Shadow или Affect Lightmap. А обездвиживание обзови Static, например, чтобы не путалось с иммобайлом.
Название: Dark Engine Viewer
Отправлено: Glypher от 11 Марта 2020 15:48:53
Я говорю о том, что Immobile, по-хорошему, разрабам надо было бы переименовать в Cast Shadow. Всё.
Теперь ясно. :) Согласен.
Название: Dark Engine Viewer
Отправлено: Maxim от 11 Марта 2020 16:07:00
Цитировать
добавляю бочке свойство Immobile, ожидая, по названию свойства, что она будет неподвижна. Включаю игру, да у неё появилась тень, ура! Но что это, я толкаю бочку, она сдвигается, а тень остается на месте... Никакой это не Immobile, извините
Вот у меня такая же песня была всегда. И до сих пор, добавляя эту опцию, каждый раз думаю о нелогичности названия.
Название: Dark Engine Viewer
Отправлено: Zontik от 13 Марта 2020 10:57:44
Все-таки уточню еще один нюанс. FrobInfo отвечает за взаимодействие игрока с объектом. Игрока, а не его физической модели! То есть позволяет объекту подсвечиваться и ожидать каких-то действий. А в примере с бочками взаимодействует именно физическая модель. Бочку можно зафиксировать флагами Location, Rotation или дико увеличить массу (сработает ли?), чтобы она не шевелилась при столкновении. Но нормального, адекватного, логичного способа "сделать объект неподвижным" (буквально!) как не было, так и нет. Те же упомянутые флаги не используются сами по себе, а входят в состав одного из физических свойств объекта (забыл название).
Название: Dark Engine Viewer
Отправлено: Force от 13 Марта 2020 11:00:37
Zontik
Цитировать
Но нормального, адекватного, логичного способа "сделать объект неподвижным" (буквально!) как не было, так и нет.
Обожди, в игре же есть неподвижные объекты (почти все). Факелы, генераторы, стулья, столы... Скорее это у бочки есть какие-то свойства, которые делают её подвижной, разве нет?
Название: Dark Engine Viewer
Отправлено: Zontik от 13 Марта 2020 15:29:53
У бочки отключены эти флаги - Location, Rotation, плюс физ модель тоже косвенно на это влияет. У бочек - сфера. Будучи приподнятой над уровнем пола (об этом должен позаботиться автор), при старте миссии она начинает падать, пока на столкнется с поверхностью. Это и дает ей подвижность. Если ее не приподнять, есть высокая вероятность, что при запуске миссии она провалится сквозь пол в бесконечность.
У столов и стульев модель OBB, при этом флаги фиксации установлены по умолчанию. Как и у всех подобных объектов.
То есть свойство, управляющее фиксацией, есть у всех, при этом у большинства объектов фиксация по умолчанию включена. Чтобы сделать тот же стол подвижным, придется превратить его в сферу, что может прокатить с более-менее кубическим столом, но совершенно не подходит для узких, длинных или низких. И положить на такой стол ничего будет нельзя. И выходит, что подвижность обеспечивается с куда большим напрягом, чем неподвижность.
Если же просто отключить флаги фиксации у того же стола, при входе в миссию ты в лучшем случае успеешь увидеть его крышку, прежде чем она провалится сквозь пол вслед за ножками.
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 14 Марта 2020 15:59:20
То есть получается, что подвижные объекты в Dark Engine физически могут быть только сферами? А когда мы делали разрушающийся завод, его обломки тоже были сферами?
Название: Dark Engine Viewer
Отправлено: Force от 15 Марта 2020 20:16:08
Zontik
Спасибо за информацию!
Какие-же всё-таки неудачные названия у свойств в DromEd'е! Совершенно неинтуитивные. При этом использовать их с толком будет довольно затруднительно как раз из-за их крайне специфического поведения в оригинале. Ну, то есть, я не могу в дромеде пометить стол как подвижный - у него либо тень пропадет либо он провалится сквозь пол :lol:, при этом мне не поможет даже сделать его физическую модель сферой - у меня он проваливается сквозь пол наполовину...

В общем, ладно, будем отстраиваться от того, от чего это в принципе возможно, на остальное успешно забьем... :embarassed:
Название: Dark Engine Viewer
Отправлено: Zontik от 16 Марта 2020 10:38:14
Цитировать
А когда мы делали разрушающийся завод, его обломки тоже были сферами?
Конечно. Поэтому в подобных эпизодах нужно всеми силами не допустить игрока в зону поражения, иначе несоответствие видимой формы реальной сведет его с ума. Или делать обломки совсем мелкими, чтобы несоответствие не так бросалось в глаза.
Цитировать
То есть получается, что подвижные объекты в Dark Engine физически могут быть только сферами?
Точнее, сдвигаемые. Лифты - подвижны, двери - подвижны, анимированные модели - также подвижны. Их просто сдвинуть телом нельзя. Так что убогость вполне скомпенсирована.
Не буду врать - кажется, есть еще какая-то редко используемая форма (с почти всеми недостатками сфер) - кажется, именно она использована у ящиков, благодаря чему на них можно залезать. Но в целом это картину не меняет. И выстроить из ящиков пирамидку по-прежнему остается нетривиальной задачей.
Название: Dark Engine Viewer
Отправлено: Force от 16 Марта 2020 10:51:06
Цитировать
Лифты - подвижны, двери - подвижны, анимированные модели - также подвижны.
Но ничто из перечисленного не вступает в коллизию с миром. Только с другими объектами и довольно специфически, избирательно.
Название: Dark Engine Viewer
Отправлено: Zontik от 16 Марта 2020 11:12:27
Верно, я просто отмечаю, из-за чего Thief не кажется нам таким примитивным, как, казалось бы, должен.
Название: Dark Engine Viewer
Отправлено: Force от 16 Марта 2020 11:27:28
Zontik
Верно, я просто отмечаю, из-за чего Thief не кажется нам таким примитивным, как, казалось бы, должен.
Да, у него уникальная система наследования архетипов. В ней ничего сложного нет, но она позволяет добиться невероятной гибкости, какая редко встречается в играх. В современных играх/движках, скорее всего, она есть и даже более совершенна, но на тот момент, с полной уверенностью могу сказать, аналогов у неё не было. Тут фактически вся логика выстраивается за счет связей, свойств и иерархии. В других движках за это отвечали отдельные компилируемые модули.
Название: Dark Engine Viewer
Отправлено: Force от 23 Марта 2020 10:56:08
Сегодня, в день двадцатилетия второй части нашей любимой игры, я рад предложить вашему вниманию очередную юбилейную сборку Dark Engine Viewer'а, которая теперь поддерживает модели персонажей! Ура!!! :yay:

(http://forcesw.com/static/files/440/087/158491990087440.jpg)

Актуальная сборка:
Thief 2: The Metal Age 20th Anniversary build (http://forcesw.com/deviewer_thief2_20th_anniversary.zip) 2020‒03−23 01:50 MSK (UTC+3:00)

Последние изменения
Цитировать
2020‒03−23 01:50 MSK Thief 2: The Metal Age 20th Anniversary Build
+ добавлено отображение моделей персонажей (выражается благодарность Juliusz Kaczmarek aka PinkDot и Randy Sybel aka Shadowspawn).
+ затухание в шейдере переключено на квадратичное. Теперь свет затухает по законам физики, но от этого стало темнее.
+ клавишами "+" и "-" теперь можно менять яркость изображения в режиме свободной камеры.
+ исправлено наследование свойств объектной иерархии.

Кроме того, я обновил мой вебсайт: forcesw.com (http://forcesw.com/rus) На нем можно найти много новых скриншотов, и в будущем там будет появляться больше интересной технической информации о проекте и вообще... :biggrin: Буду рад, если вы расскажете о новой версии просмотрщика и моем вебсайте своим друзьям и в социальных сетях :)!

Хочется выразить благодарность Juliusz Kaczmarek aka PinkDot и Randy Sybel aka Shadowspawn, которые помогли приделать поддержку моделей персонажей. Возникла странная ситуация, когда формат прочитать можешь, все данные имеешь, а они не складываются в целостную картину. И так соберешь, и эдак - ну никак не получается. Помогли исходники BinToE, любезно присланные Shadowspawn'ом. В результате решение было получено, но результат нуждается в рефакторинге для поддержки анимаций персонажей. Мы же хотим анимацию?

Теперь, когда, наконец-то, долеланы все модели, мы достигли некоей устойчивой стадии готовности проекта. Была создана тема на форуме TTLG (https://www.ttlg.com/forums/showthread.php?t=150408), где я презентовал Dark Engine Viewer. Посмотрим что скажут англоязычные тафферы :).

Еще на повестке дня стоит запрос Максима о текстовом фильтре. Есть у меня мысли, как это можно сделать в рамках существующей реализации:
в интерфейсе начинаем писать символы и они сразу же появляются в строке поиска (не надо на нем кликать мышкой и делать фокус). А как только символов стало больше одного, список перестраивается и сразу же открывается первая модель этого нового списка. Следовательно, клавиша BACKSPACE не возвращает нас в предыдущий каталог, а стирает символ поиска. Как-то так.

Какие у кого мысли?
Название: Dark Engine Viewer
Отправлено: Tetris2703 от 23 Марта 2020 13:23:06
Увидел скриншоты на сайте и понял, что свет играет ТАК МНОГО. Только вот у меня вопрос, есть возможность создать такой динамический свет на движке?
Приеду в город обязательно посмотрю программу. А для каких целей она будет использоваться? Или это вещь сугубо для редакторов?
Название: Dark Engine Viewer
Отправлено: Force от 23 Марта 2020 13:44:15
Увидел скриншоты на сайте и понял, что свет играет ТАК МНОГО. Только вот у меня вопрос, есть возможность создать такой динамический свет на движке?
А можно конкретнее, что именно имеется в виду? Какой свет? Какие скриншоты?

Приеду в город обязательно посмотрю программу. А для каких целей она будет использоваться? Или это вещь сугубо для редакторов?
Вообще, хотелось сделать вещь именно для игроков, дать им новый игровой и визуальный опыт. Я писал о некоем игровом прототипе в первом сообщении темы. А пока мы к этой цели движемся, разработчики миссий могут использовать Dark Engine Viewer для своих нужд, например, для поиска моделей. Сейчас, насколько мне известно, Dark Engine Viewer стал единственной программой, способной просматривать оригинальные модели персонажей без плясок с конвертерами, прямо из ресурсов игры. Обычные модели вроде как можно было, но это не точно. :)
Название: Dark Engine Viewer
Отправлено: Zontik от 23 Марта 2020 14:53:24
Именно что "вроде как". Был просмотрщик, который как-то что-то иногда показывал.
Поздравляю с релизом! Ну а остальных - с тем, что остался год до совершеннолетия (компания-то американская, а по их законам Thief все еще числится в подростках).
Название: Dark Engine Viewer
Отправлено: Glypher от 23 Марта 2020 15:12:05
Force, с релизом! :up:

Force, есть в планах сделать, чтобы показывалось и разрешения текстур, наложенных на модель?
Название: Dark Engine Viewer
Отправлено: Force от 23 Марта 2020 15:51:41
Спасибо за поздравления!

Glypher
Цитировать
Force, есть в планах сделать, чтобы показывалось и разрешения текстур, наложенных на модель?
Не было, но если надо - не проблема. Боюсь только, как бы вьюпорт не стал слишком захламленным.
Название: Dark Engine Viewer
Отправлено: nemyax от 23 Марта 2020 16:18:05
Поздравляю с майлстоуном!
А как только символов стало больше одного, список перестраивается и сразу же открывается первая модель этого нового списка. Следовательно, клавиша BACKSPACE не возвращает нас в предыдущий каталог, а стирает символ поиска. Как-то так.
Какие у кого мысли?
Я бы не хотел, чтобы фильтрация списка мне переключала текущую модельку. Лучше сам кликну куда надо.
Название: Dark Engine Viewer
Отправлено: Force от 23 Марта 2020 16:25:54
Поздравляю с майлстоуном!
Спасибо!  :agree:
А как только символов стало больше одного, список перестраивается и сразу же открывается первая модель этого нового списка. Следовательно, клавиша BACKSPACE не возвращает нас в предыдущий каталог, а стирает символ поиска. Как-то так.
Какие у кого мысли?
Я бы не хотел, чтобы фильтрация списка мне переключала текущую модельку. Лучше сам кликну куда надо.
Разумно, принимается!

А еще я подумал, что имеет смысл начинать поиск не со второго вбитого символа, а с первого, типа чтобы сразу "слистнуть" к нужной букве... Кстааааати! А ищем мы с начала строки или из любого места? Потому что из любого места найдет все-все вхождения, которые, скорее всего, не то что мы ищем, но с другой стороны мы можем помнить именно середину названия, а не начало. При этом на нужный символ начала строки можно просто промотать скролом. Поэтому, думается мне, что искать надо из любого места и всё-таки со второго вбитого символа...
Название: Dark Engine Viewer
Отправлено: Glypher от 23 Марта 2020 16:28:46
Не было, но если надо - не проблема. Боюсь только, как бы вьюпорт не стал слишком захламленным.
Было бы неплохо. Можно завязать на хоткей - Показать/скрыть.
Название: Dark Engine Viewer
Отправлено: nemyax от 23 Марта 2020 17:36:08
Поэтому, думается мне, что искать надо из любого места и всё-таки со второго вбитого символа...
А то и с третива. По-моему, если человек не в состоянии воспроизвести нужные ему три символа подряд, то он сам не знает, какого ч0рта он ищет.
Название: Dark Engine Viewer
Отправлено: Chuzhoi от 23 Марта 2020 19:17:47
Force, поздравляю с очередным релизом! И всех тафферов - с 20-летием Thief II: The Metal Age!

PS. Надо, наконец, запомнить, что Бассо одет в бордовое. А то мне все время кажется, что он в зеленом.
Название: Dark Engine Viewer
Отправлено: Force от 23 Марта 2020 22:14:35
Chuzhoi
Спасибо!
Да, я тоже путаю его со слугой :).
Название: Dark Engine Viewer
Отправлено: Force от 28 Марта 2020 13:19:37
Актуальная сборка:
Thief 2: The Metal Age 20th Anniversary build (http://forcesw.com/deviewer_thief2_20th_anniversary.zip) 2020‒03−28 13:00 MSK (UTC+3:00)

Последние изменения
Цитировать
2020‒03−28 13:00 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Build
+ улучшен механизм определения каталогов с ресурсами игры. Теперь миссия, расположенная внутри любой директории игры, легко находит путь к ресурсам.
+ улучшен механизм поиска текстур для моделей. Добавлена поддержка вложенных каталогов по названию языка (правда, пока ищется только "english").
+ добавлена поддержка замещаемых текстур, описываемых параметром TxtRepl r*, где * - номер текстуры [0, 3].
+ увеличен максимальный лимит экспозиции (для повышения яркости клавишами + и -).
+ теперь в миссиях Thief 1 отображаются высокополигональные модели (при наличии).
+ добавлена поддержка открытия программы в нужном каталоге через передачу параметра в командной строке или перетаскиванием каталога на окно программы.
Название: Dark Engine Viewer
Отправлено: Force от 06 Апреля 2020 15:14:53
Актуальная сборка:
Thief 2: The Metal Age 20th Anniversary build (http://forcesw.com/deviewer_thief2_20th_anniversary.zip) 2020‒04−06 14:30 MSK (UTC+3:00)

Последние изменения
Цитировать
2020‒04−06 14:30 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Build
+ исправлено отображение имен файлов и каталогов в списке навигации, они больше не переносятся на новую строку.
+ для режима LEGACY HARDWARE теперь требуется версия OpenGL 1.0 вместо 2.1. Но работа в этом режиме не тестировалась. Буду благодарен за отклик.
+ добавлено отображение свечения объектов, имеющих свойство Self Illumination.
+ добавлена поддержка свойства Anim Light. В некоторых режимах оно влияет на Self Illumination объектов. Полноценная анимация этого свойства пока не реализована, применяется только начальное состояние.
+ добавлена поддержка языков, прописанных в dark config файле. Ресурсы будут искаться в соответствующих подкаталогах по приоритету, указанному в darkinst.cfg или install.cfg.

Это последняя юбилейная сборка. Дальнейшие сборки будут размещаться в другом файле.

Я понизил требуемую версию OpenGL в режиме LEGACY до 1.0 вместо 2.1, но у меня нет возможности проверить работоспособность программы в этом режиме. Если у кого-нибудь есть комп с видюхой уровня DX8 и он сможет запустить Dark Engine Viewer в этой конфигурации, я буду признателен!

Спасибо!
Название: Dark Engine Viewer
Отправлено: Soul_Tear от 07 Апреля 2020 15:42:35
Force, на ТТЛГ уже выпустил?
Название: Dark Engine Viewer
Отправлено: Force от 07 Апреля 2020 15:48:28
Да. Правда, предлагают сменить раздел - разместить его в гильдии редакторов. Но у меня же нет возможности перенести тему...
Название: Dark Engine Viewer
Отправлено: Soul_Tear от 13 Апреля 2020 13:32:54
Да. Правда, предлагают сменить раздел - разместить его в гильдии редакторов. Но у меня же нет возможности перенести тему...

Так просто дай согласие и обратись к модераторам в постом в теме, или в личку Ники/Таннару. :)

Полезная... утилита? Или как это называется. В актуальной версии исправлено зависание? В старой есть проблема, когда прокручиваешь длинный список моделей до нужной, потом нельзя ни на что кликнуть. Таким образом сначала при открытии списка моделей надо кликнуть на ближайшую и потом уже прокручивать.
Название: Dark Engine Viewer
Отправлено: Force от 13 Апреля 2020 13:49:12
Soul_Tear
Спасибо!
Цитировать
В актуальной версии исправлено зависание? В старой есть проблема, когда прокручиваешь длинный список моделей до нужной, потом нельзя ни на что кликнуть. Таким образом сначала при открытии списка моделей надо кликнуть на ближайшую и потом уже прокручивать.
А можно подробнее? Какое именно зависание, насколько большой список моделей? Зачем кликать на ближайшую, что это меняет?
Название: Dark Engine Viewer
Отправлено: Soul_Tear от 17 Апреля 2020 12:31:44
А можно подробнее? Какое именно зависание, насколько большой список моделей? Зачем кликать на ближайшую, что это меняет?

В рабочей папке более 1800 бинов и 1900 текстур. Кликанье на любую модель в списке кажется странным решением, но помогает. Будто бы из-за нехватки памяти виснет, поскольку сразу много информации обрабатывает от прокрутки списка. Все три экзешника дают такой эффект.