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

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

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

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

Zontik

Подожди благодарить, сейчас последует опровергающее уточнение от Бориса.
Дайте глазам отдохнуть! Тёмное место

Призрак Boris'а3000

#226
Господи, Зонтик, что за бред??

Цитата: Zontik от 30 августа 2017 10:08:51
Что-то вы, по-моему, чрезмерно усложняете.
Вот уж кто усложнил, так это ты. С первого раза и не въедешь.

Цитата: Zontik от 30 августа 2017 10:08:51
текстуры следует искать в трех местах: в папке с моделью, в папке TXT16 и в папке TXT. Все остальные варианты следует считать частными случаями и не рассматривать вообще
Не вообще, а сейчас.

Цитата: Zontik от 30 августа 2017 10:08:51
Если в папке имеются текстуры с одним именем и разными расширениями, на экран выводится текстура, прописанная в модели. Она же натягивается просмотрщиком на модель
Угу, особенно если в папке просто НЕТ текстуры с тем расширением, которое прописано в модели. Во всех моделях для оригинала прописано gif, и при этом ни в одном моде не будет gif-текстур.
Да, Зонтик, придётся в очередной раз тебе напомнить про такую вещь, как моддинг оригинала. И людям, которые этим занимаются, данная прога тоже пригодится.

Да и редактор твой ненаглядный, в которым ты сейчас просматриваешь (и будешь продолжать просматривать) модели, разве по такому алгоритму действует? С какого перепугу логика просмотрщика должна отличаться от логики редактора??

Цитата: Zontik от 30 августа 2017 10:08:51
плевать, что рядом может лежать текстура с таким  же именем, с другим расширением и более высоким разрешением. Мы ведь пытаемся опознать модель, а не улучшить ее
Причём тут разрешение?? Какое ещё улучшение???
У Нью-Дарка есть чёткий приоритет типов файлов -- DDS, PNG, TGA, BMP, PCX, GIF, CEL
При просмотре в редакторе и в игре будет использоваться текстура в соответствии с этим приоритетом. Всё, чего тут тень на плетень наводить??

Цитата: Zontik от 30 августа 2017 10:08:51
Не надо подстраиваться под многочисленные приоритеты New Dark
1) Надо
2) Они не многочисленные. В данном случае всего один
3) Давно пора эти приоритеты изучить, а не пытаться подстроить весь мир под собственное незнание предмета

Цитата: Zontik от 30 августа 2017 10:08:51
Исхожу из того, что автору модели прежде всего следует навести порядок у себя в голове и не пытаться скормить модели текстуры с неправильным расширением, используя приоритетную систему NewDark и набивая себе на лбу шишки от грабельной ручки
Ты исходишь из собственного нежелания учить матчасть и порой просто идиотского консерватизма на пустом месте. Порядок в голове как раз у тех, кто использует приоритетную систему НьюДарка -- потому что именно НьюДарком и пользуются. А чью ещё приоритетную систему использовать тогда?
Кидание нескольких текстур -- обычная практика. Делается для выбора пользователем. Сам автор порой не может определиться, какая текстура лучше, и даёт пользователю несколько вариантов на выбор.

Повторюсь -- НьюДарку плевать на расширение, прописанное в модели. Вообще. Поэтому нет никаких "неправильных расширений".

А шишки набивают те, кто не желает изучить то, чем пользуется. Именно у тех, кто из-за каких-то там своих мозговых завихрений пытаются делать всё по старинке (ДаркЛоадер, там, и т. д.), и возникают бесконечные проблемы.

Цитата: Zontik от 30 августа 2017 10:08:51
Поменять расширение на актуальное с помощью HEX-редактора - дело нескольких секунд
Зачем его менять, если НьюДарк его ВООБЩЕ ИГНОРИТ?! Чисто порядку ради? Я так и представляю, как после каждой случайной смены типа файла человек лезет хексом в модель и её ковыряет. Ну не иначе в команде НьюДарка дураки сидят, раз сделали расширение, прописанное в модели, не имеющим никакого значения.

Цитата: Zontik от 30 августа 2017 10:08:51
Помимо всего прочего, это упрощает процедуру перетаскивания моделей из миссии в миссию.
Что "это"? Ковыряние хекс-редактором??

Цитата: Zontik от 30 августа 2017 10:08:51
В папке TXT вообще могут находиться только текстуры со стандартной 256-цветной Thief-палитрой, которая сегодня почти никем не используется.  Если в эту папку ошибочно угодит что-то другое, оно все равно не будет корректно отображаться движком, поэтому такую возможность не стоит даже рассматривать.
Ну вот не надо ля-ля. Сейчас в txt можно кидать всё то же самое, что и в txt16.
Поставь себе HDMod и посмотри, чего и где там лежит. Там же увидишь и по нескольку текстур в одной папке -- на выбор.

Цитата: Zontik от 30 августа 2017 10:08:51
пересечение имен текстур в папках TXT и TXT16 - крайне маловероятное событие, свидетельствующее, помимо прочего, о неорганизованности автора, которая должна быть наказана.
Зонтик, наказано должно быть твоё незнание, а главное -- ничем разумным не мотивированное НЕЖЕЛАНИЕ изучить Нью-Дарк и по-человечески им пользоваться. Один из твоих заскоков на ровном месте. Вместе с ДаркЛоадером, вместе с упёртым сидением на забагованной 1.23, вместе с нежеланием сменить видеокарту за 500 рублей и т. д. и т. п. Уже давно пора подвергнуть жестокой порке.


Цитата: Force от 30 августа 2017 13:02:08
спасибо за разъяснения...
..., товарищ Иван Сусанин.
Это не разъяснения, а полный аналог с эпопеей со слезанием с Win98 и этой древней видеокартой.

Цитата: Force от 30 августа 2017 13:02:08
Так и сделаем...
Не надо так делать. Выводиться должно имя той текстуры, которая будет натянута на модель. При наличии нескольких вариантов выбор натягиваемой текстуры должен производиться по алгоритму работы Нью-Дарка. А Нью-Дарк вообще не обращает внимание на расширение в модели, и выбор производится в соответствии с приоритетом (по убыванию) -- DDS, PNG, TGA, BMP, PCX, GIF, CEL.
Всё. Всё просто и элементарно.
Единственная альтернатива, касающаяся отображения названия на экране, -- это вариант Чужого со скобками, но он, естественно, длинней.

Если просмотрщик будет натягивать то, что прописано в модели (читай, GIF), то для любого мододела эта программа будет практически бесполезной. Потому что никто не будет лазить хексом в модель, чтобы поменять текстуру. :doh:
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

Призрак Boris'а3000

#227
Проверил как следует на примере папки Mesh.

1) Непосредственно в папке Mesh текстура лежать НЕ может. Движок её игнорирует.
2) Текстура может лежать ТОЛЬКО в подпапке txt16 или подпапке txt. Никаких txt32 и прочих *txt*
3) По типу и формату файлов текстур, которые можно класть в эти папки, txt16 и txt абсолютно равноценны
4) txt16 имеет приоритет над txt
5) Приоритет расширений уже озвучивал -- DDS, PNG, TGA, BMP, PCX, GIF, CEL
6) Приоритет папок имеет приоритет над приоритетом расширений.

Исходя из этого строится логика работы просмотрщика:
1) Из файла модели считывается имя текстуры. Только имя, без расширения.
2) В папке с моделью ищется папка txt16. Если нашлась, то в ней ищется DDS с именем из п.1. Если нет DDS, то PNG и т. д. Если текстура с этим именем нашлась, то поиск завершён.
3) Если текстуры с нужным именем в папке txt16 не нашлось, или самОй папки txt16 нет, то в папке с моделью ищется папка txt. Если нашлась, то в ней ищется DDS с именем из п.1. Если нет DDS, то PNG и т. д. Если текстура с этим именем нашлась, то поиск завершён.
4) Если текстуры с нужным именем в папке txt также не нашлось, или самОй папки txt тоже нет, то выдаётся запрос на ручное указание файла текстуры (ну, это опционально).

На экран выводится имя и расширение применённой текстуры с огрызком пути, начиная с имени той папки, в которой лежит файл модели.

Именно на этот алгоритм рассчитывает любой адекватный моддер, и согласно именно этому алгоритму называет и размещает свои текстуры. Поэтому именно по этому алгоритму должен действовать просмотрщик. Иначе в ряде случаев он просто будет выдавать неадекватные результаты.
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

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

Призрак Boris'а3000

Chuzhoi
Так Зонтик же не столь давно возмущался "беспорядком на винте" у тех, кто желает возможности ручного указания текстуры. При этом "беспорядок" обосновывался именно логикой работы движка [spoiler](да, двойные стандарты -- они такие двойные)[/spoiler]. Так что поставка моделей с текстурами в общей куче является тем самым "беспорядком", от которого Зонтик призывал избавляться вручную.
Тем не менее, папку модели можно и не игнорировать, да. Только вот насчёт её приоритета не согласен -- наоборот, он должен быть самым низким. Просмотрщик должен натянуть ту текстуру, которая отобразится в игре, поэтому все приоритеты должны совпадать с Нью-Дарком. Нью-Дарк же вообще не позволяет класть текстуру в папку модели, а это значит, что приоритет папки модели должен быть самым низким.
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

Zontik

ЦитироватьПо типу и формату файлов текстур, которые можно класть в эти папки, txt16 и txt абсолютно равноценны
ЦитироватьПриоритет расширений уже озвучивал -- DDS, PNG, TGA, BMP, PCX, GIF, CEL
Уточним: в текущей версии движка. Что будет потом - никому не известно. Что было раньше - известно даже мне.
Цитироватьtxt16 имеет приоритет над txt
Пожалуй, самое ценное из уточнений. Вероятно, в оригинале было то же самое, и нет никаких оснований предполагать, что это когда-либо изменится.
По поводу текущей папки - ну ясно же, моддерам ни к чему знать, как делаются 3D-модели. Вообще их мнение об авторах, мягко говоря, не позитивное:
ЦитироватьКидание нескольких текстур -- обычная практика. Делается для выбора пользователем. Сам автор порой не может определиться, какая текстура лучше, и даёт пользователю несколько вариантов на выбор.
Так с какого перепугу для этих раздолбаев вообще что-либо делать? Есть специалисты по перетяжке, вот они пускай и заказывают музыку.
Дайте глазам отдохнуть! Тёмное место

Force

Цитата: Boris3000 от 31 августа 2017 02:45:59
Проверил как следует на примере папки Mesh.

1) Непосредственно в папке Mesh текстура лежать НЕ может. Движок её игнорирует.
2) Текстура может лежать ТОЛЬКО в подпапке txt16 или подпапке txt. Никаких txt32 и прочих *txt*
3) По типу и формату файлов текстур, которые можно класть в эти папки, txt16 и txt абсолютно равноценны
4) txt16 имеет приоритет над txt
5) Приоритет расширений уже озвучивал -- DDS, PNG, TGA, BMP, PCX, GIF, CEL
6) Приоритет папок имеет приоритет над приоритетом расширений.

Исходя из этого строится логика работы просмотрщика:
1) Из файла модели считывается имя текстуры. Только имя, без расширения.
2) В папке с моделью ищется папка txt16. Если нашлась, то в ней ищется DDS с именем из п.1. Если нет DDS, то PNG и т. д. Если текстура с этим именем нашлась, то поиск завершён.
3) Если текстуры с нужным именем в папке txt16 не нашлось, или самОй папки txt16 нет, то в папке с моделью ищется папка txt. Если нашлась, то в ней ищется DDS с именем из п.1. Если нет DDS, то PNG и т. д. Если текстура с этим именем нашлась, то поиск завершён.
4) Если текстуры с нужным именем в папке txt также не нашлось, или самОй папки txt тоже нет, то выдаётся запрос на ручное указание файла текстуры (ну, это опционально).

На экран выводится имя и расширение применённой текстуры с огрызком пути, начиная с имени той папки, в которой лежит файл модели.

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

Именно подобная информация мне и нужна, я рад что кто-то сделал это вместо меня. Спасибо :yes:. Единственное что смутило: что за формат текстур CEL?

Force

#232
ЦитироватьЕдинственное что смутило: что за формат текстур CEL?
Нашел на вики описание... но, подумав... ну его в лес. :biggrin:

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

nemyax

Папку с самой моделькой, конечно, тоже неплохо бы проверять (в последнюю очередь).
Цитата: Zontik от 31 августа 2017 10:01:01моддерам ни к чему знать, как делаются 3D-модели
А как они делаются?
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!

Zontik

#234
В основном как попало, но вряд ли кто распихивает текстуры заранее по адресным папкам.
Да, кстати, насчет расширений: по-моему, то ли старая версия движка, то ли одна из новых поддерживала еще один экзотический формат - RLE. Ну Борис-то наверняка знает.
Дайте глазам отдохнуть! Тёмное место

Force

Цитата: Zontik от 31 августа 2017 10:43:49
Да, кстати, насчет расширений: по-моему, то ли старая версия движка, то ли одна из новых поддерживала еще один экзотический формат - RLE. Ну Борис-то наверняка знает.
GIMP такой не поддерживает. :)

Zontik

Главное - что его никто из авторов не поддерживает. Как и CEL, я думаю.
Дайте глазам отдохнуть! Тёмное место

Force


Zontik

Посмотрел сейчас - Фотошоп может теоретически сохранить в RLE (хотя считает его разновидностью BMP, наверное, так оно и есть). Про CEL он не знает ничего.
Дайте глазам отдохнуть! Тёмное место

nemyax

Цитата: Zontik от 31 августа 2017 10:43:49
В основном как попало, но вряд ли кто распихивает текстуры заранее по адресным папкам.
Можно и не распихивать. В директории с модельками с-под администратора:
mklink /d txt16 .
Ну если действие происходит не на XP, разумеется.
Желаю тебе из тысячи рулеток одну — самую русскую!
Желаю тебе из тысячи надежд одну — самую крупскую!