Программа-просмотрщик объектов: требуется помощь программистов!

Автор Zontik, 21 июля 2017 10:16:53

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

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

Force

Я приступил, как только появился черный эскиз с буддой...

nemyax

Force
А исходники выложишь на гитхаб там или ещё куда?
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

Force

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

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

Force

#213
Ура! Прототип готов!


Chuzhoi

#214
Ух ты! И уже все крутится?

PS. У меня есть некоторое ощущение, что камера близковата и FOV широковат. Я бы немного отодвинул и сузил.

Force

Крутится, но пока не совсем так, как должна. Еще многое предстоит сделать, но начало положено - всё собрано воедино :).

Я практически всё это время дорабатывал интерфейс. Многое переделал. Сделал поддержку distance field шрифтов. Переработал загрузку dds-текстур. Даже написал простой шаблонизатор для подстановки переменных и разворачивания списков в интерфейсе... В общем, работа движется.

Chuzhoi


Force

Цитата: Chuzhoi от 26 августа 2017 22:18:20
[off]А что за ОС? Явно не Windows.[/off]
[off]Да, это linux mint. Следующий скрин могу сделать на винде для разнообразия :biggrin:.[/off]


Force

Возник вопрос.

Модель хранит только имена используемых текстур без пути, но с расширением. Например, STAT3B.GIF . Но в самом изощренном случае это может привести нас к тому, что мы используем текстуру txt32/stat3b.dds, а не STAT3B.GIF . В связи с чем возникает вопрос, какое имя выводить? Потому что существуют разные варианты:
  • выводить как есть - STAT3B.GIF
  • выводить имя как есть и путь по которому удалось найти текстуру по приоритетам - txt16/STAT3B.GIF (какие приоритеты? а если используется более качественная текстура, а не gif?)
  • выводить имя с тем расширением, с которым удалось найти соответствующий файл по каталогам с самым высоким приоритетом - txt32/stat3b.dds (например, то что используется по факту. Но тут есть оговорки, это может использовать Force Engine, но не New Dark Engine, например)
  • .....
  •   :littlecrazy:

Призрак Boris'а3000

Я за третий вариант. Расширение, прописанное в модели, New-Dark'у абсолютно пофиг.
Corsair HX1000i / Gigabyte GA-X48-DS4 / Intel Core2-Quad Q9650@4.1GHz / Hynix 8GB DDR2-800@1100MHz /
EVGA 6GB GDDR5 <GeForce GTX 980Ti> K|NGP|N Edition / Creative SB X-Fi Xtreme Gamer Fatal1ty Pro Edition /
2xSSD Intel X25-M 120GB в RAID 0 / Samsung SyncMaster 957MB (CRT 2048х1536) / UPS PCM SKP-2000A /
Windows XP Professional SP3 VL 32-bit + Windows 7 Enterprise SP1 U 64-bit / ForceWare 368.81 / New-Dark 1.26

Chuzhoi

#221
Мне кажется, приоритеты в поиске текстуры лучше сделать такими, какие они в текущей версии NewDark. Если NewDark'у действительно пофиг, какое расширение у текстуры, указанной в модели, и он действует исключительно по неким зашитым в него приоритетам, то Форс Энджину следует прикинуться Нью Дарк Энджином и действовать точно так же. Хотя, мне кажется, нелишним будет в случае расхождения расширений указывать что-то вроде: TEXTURE.GIF (txt16/texture.dds used). Если же подходящая текстура не найдена вообще, то можно указывать: TEXTURE.GIF (not found).

Какой приоритет поиска текстуры по папкам? Наверное, так:
1. Текущая папка
2. txt и txt16 в текущей папке (не знаю, какая из них приоритетнее, но, наверное, стоит посмотреть, какую из них предпочтет Dark Engine)
3. Дополнительные папки, указанные в ini

Zontik

Что-то вы, по-моему, чрезмерно усложняете.
Как уже неоднократно говорилось, текстуры следует искать в трех местах: в папке с моделью, в папке TXT16 и в папке TXT. Все остальные варианты следует считать частными случаями и не рассматривать вообще.
Если в папке имеются текстуры с одним именем и разными расширениями, на экран выводится текстура, прописанная в модели. Она же натягивается просмотрщиком на модель. И плевать, что рядом может лежать текстура с таким  же именем, с другим расширением и более высоким разрешением. Мы ведь пытаемся опознать модель, а не улучшить ее.
Самый критический случай - если автор начал разрабатывать модель, поместил одну текстуру в текущей папке для разработки, затем в этой же папке создал для готовых материалов подпапку TXT16 (или, боже упаси, TXT) и поместил туда идентичные или модифицированные копии. В этом случае одна и та же текстура или различные ее версии могут оказаться в двух разных местах. Чтобы устранить неоднозначность, достаточно вывести на экран относительный путь для использованной при просмотре текстуры. В этом случае логично установить приоритет сверху вниз: текущая папка (то есть с моделью) по умолчанию считается главной.
Не надо подстраиваться под многочисленные приоритеты New Dark. Автор вполне в состоянии разобраться, куда он какие текстуры понапихал. Если же он и сам не может разобраться, самое глупое, что можно сделать - это попытаться решить проблему за него.
P.S. Исхожу из того, что автору модели прежде всего следует навести порядок у себя в голове и не пытаться скормить модели текстуры с неправильным расширением, используя приоритетную систему NewDark и набивая себе на лбу шишки от грабельной ручки. Поменять расширение на актуальное с помощью HEX-редактора - дело нескольких секунд. Помимо всего прочего, это упрощает процедуру перетаскивания моделей из миссии в миссию.
Дайте глазам отдохнуть! Тёмное место

Zontik

Еще вдогонку: пересечение имен текстур в папках TXT и TXT16 - крайне маловероятное событие, свидетельствующее, помимо прочего, о неорганизованности автора, которая должна быть наказана.
В папке TXT вообще могут находиться только текстуры со стандартной 256-цветной Thief-палитрой, которая сегодня почти никем не используется.  Если в эту папку ошибочно угодит что-то другое, оно все равно не будет корректно отображаться движком, поэтому такую возможность не стоит даже рассматривать.
Дайте глазам отдохнуть! Тёмное место

Force