В папке textures\part есть текстуры облака storm_***.512, но они неполные
Есть даже текстуры просящие о помощи ))
ТЫЦ
Witch-King
08.03.2019, 20:27
Цитата(xrModder @ 08.03.2019, 20:00)
В папке textures\part есть текстуры облака storm_***.512, но они неполные
Так ты путь переведи Текстуры\части от того они и не полные, их или собирать надо или я хз.
xrModder
08.03.2019, 20:34
Есть например storm_2_00000, 00006...00011, 00026...00031. Где остальные хз
Xottab_DUTY
08.03.2019, 21:01
light_fonar, light_oblaka... Всё в лучших традициях
DaaGuda
08.03.2019, 23:05
Не подскажите, что делать? Есть скажем текстура, есть нормали на него в 2048, но вот атласа карт на 2048 нет. Это так и должно быть? просто охото использовать текстуры в высоком разрешении.
тык
xrModder
08.03.2019, 23:36
Цитата(DaaGuda @ 09.03.2019, 02:05)
Не подскажите, что делать? Есть скажем текстура, есть нормали на него в 2048, но вот атласа карт на 2048 нет. Это так и должно быть? просто охото использовать текстуры в высоком разрешении.
тык
Наверняка используется 1024 пиксельная карта. Нечто похожее видел ещё в первом сталкере.
DaaGuda
08.03.2019, 23:39
xrModder, всё бы хорошо, но сдк ругается, на то, что разный размер у текстур. А если растянуть, то и качество уходит?
xrModder
08.03.2019, 23:44
Цитата(DaaGuda @ 09.03.2019, 02:39)
xrModder, всё бы хорошо, но сдк ругается, на то, что разный размер у текстур. А если растянуть, то и качество уходит?
Качество потеряешь это да, но это вблизи.
DaaGuda
08.03.2019, 23:45
xrModder, ок, буду экспериментировать.
xrModder
09.03.2019, 00:45
Знаменитое слово в текстуре террейна (кто-то вспоминает сталкер).
Осторожно! 18+
iOrange
09.03.2019, 02:20
Похоже на запечённый АО, надо в игре на это место посмотреть
Hunter01
09.03.2019, 19:58
iOrange А можно как то заделать так, что бы при экспорте в FBX был выбор, экспортить с костями, например, ставить галочку, а нет, галочку убрать, и тогда экспорт в FBX только тушки, без костей, мне например, с костями FBX не нужен, так как большинство монстров при попытке конверта их в FBX вылетает прога с ними. Ну в общем, я имел ввиду что бы был выбор, кому нужна модель с костями, тот пусть конвертит поставив крестик, галочку, что то типа этого, а кому кости не нужны, но нужна именно тушка в FBX тот выберет конверт без костей. FBX-модель наиболее лучше, чем в obj, там всё равно, куски полигонов на тушке, кое где вывернуты наизнанку, а в FBX всё нормально. Это как на пример в GIMS-инпортере в максе, там есть функция загрузки модели после рипа, вместе с костями ( если они есть у модели ) по умолчанию, после установки GIMS'a там стоит галочка на загрузку модели из рипов, вместе с костями, я эту галочку убираю, мне не нужно, да и не доработана эта фишка там, и гружу чисто один меш, без костей.
Hunter01
09.03.2019, 21:55
Да, ещё, у меня почему то на моделях, после конверта их в FBX и затем загружаю их в макс 2010, но он мне показывает полностью серую модель, посмотрел каналы, а они почему то не с 1вого начинаются, а со 2го или 3тьего, то е, по умолчанию стоит, например 2рой канал, когда поправляешь на 1вый, текстура становится на место, по идее, после загрузки модели, каналы должны стаять на самом первом, не знаю почему так, может это только у меня, у меня модели сразу после загрузки в максы, что в fbx что в obj, серые без текстур, текстуры нужно ложить на них в ручную, а у всех, как я смотрю, почему то всё нормально, текстуры грузятся вместе с моделью.
xrModder
09.03.2019, 22:10
Продукция Сушкасампридумал
Thekello
09.03.2019, 22:38
Цитата(Hunter01 @ 09.03.2019, 21:55)
Да, ещё, у меня почему то на моделях, после конверта их в FBX и затем загружаю их в макс 2010, но он мне показывает полностью серую модель, посмотрел каналы, а они почему то не с 1вого начинаются, а со 2го или 3тьего, то е, по умолчанию стоит, например 2рой канал, когда поправляешь на 1вый, текстура становится на место, по идее, после загрузки модели, каналы должны стаять на самом первом, не знаю почему так, может это только у меня, у меня модели сразу после загрузки в максы, что в fbx что в obj, серые без текстур, текстуры нужно ложить на них в ручную, а у всех, как я смотрю, почему то всё нормально, текстуры грузятся вместе с моделью.
У меня всё ок, это походу у тебя косяк .
inuway
09.03.2019, 22:55
Цитата(Hunter01 @ 09.03.2019, 19:58)
iOrange А можно как то заделать так, что бы при экспорте в FBX был выбор, экспортить с костями, например, ставить галочку, а нет, галочку убрать, и тогда экспорт в FBX только тушки, без костей, мне например, с костями FBX не нужен, так как большинство монстров при попытке конверта их в FBX вылетает прога с ними. Ну в общем, я имел ввиду что бы был выбор, кому нужна модель с костями, тот пусть конвертит поставив крестик, галочку, что то типа этого, а кому кости не нужны, но нужна именно тушка в FBX тот выберет конверт без костей. FBX-модель наиболее лучше, чем в obj, там всё равно, куски полигонов на тушке, кое где вывернуты наизнанку, а в FBX всё нормально. Это как на пример в GIMS-инпортере в максе, там есть функция загрузки модели после рипа, вместе с костями ( если они есть у модели ) по умолчанию, после установки GIMS'a там стоит галочка на загрузку модели из рипов, вместе с костями, я эту галочку убираю, мне не нужно, да и не доработана эта фишка там, и гружу чисто один меш, без костей.
Формата .obj более чем достаточно для импорта геометрии, не понимаю в чем проблема. А .fbx на данный момент у меня тоже критует да, но нужно просто подождать версию 0.29, и думаю там всё будет работать.
DaaGuda
10.03.2019, 00:17
В связи большого объёма материала ищу человека для кооперации, который так же занимается перегонкой моделей под x-ray. Если ты этим заинтересован, то пиши в лс.
NiutoN
10.03.2019, 17:17
Здрайствуйте друзья)
Сходу благодарность iOrangeу з апрделланную работу) Но не все так гладко, и мне необходима ваша помощь...
Я работаю в UnrealEngine 4.21.2 но перечитав форум, я понял что схожую проблему получили пользователи 3d maxa. Думаю вам будет интересно как оно вышло и на других "инструментах". Подробное описание и скрины - ниже: Итак, проконвертировав модель и загрузив ее в проэкт я обнаружил что все модели "вывернутые", имеют нужную текстуру внутри и прозрачные снаружи (рис 1 и 2) Пробовал решить проблему при помощи "костыля". Отобразил текстуру с двух сторон, но к сожалению Я радовался не долго, так как выяснилось, что освещение все-равно воспринимает модель "вывернутой" На фото 3,4 и 5 это видно на примере цистерны с холодильником... А далее на скринах 6а и 6b мы видим две модели рядом (исправленная костылями и нет ) с освещением внутри и снаружи, но как вы понимаете работать с моделями в таком виде - нельзя..
А во только теперь я обнаружил что есть версия унпакера v028с и там походу все работает - норм. Извините за беспокойство, оюнарухил это только что. Сообщение всеравно оставлю, ибо много потратил сил Вот вам и мораль, ВНИМАТЕЛЬНЕЙ ЧИТАЙТЕ ФОРУМЫ
xrModder
10.03.2019, 17:50
NiutoN, эх ты
xrModder
10.03.2019, 19:52
Текстура с ироничной надписью "ЕШҚАЙДА", что в переводе "НИКУДА": textures\misc\train_station_name
Hunter01
10.03.2019, 20:24
Цитата(inuway @ 09.03.2019, 22:55)
Формата .obj более чем достаточно для импорта геометрии, не понимаю в чем проблема. А .fbx на данный момент у меня тоже критует да, но нужно просто подождать версию 0.29, и думаю там всё будет работать.
Проблема в obj, на некоторых моделях, с вывернутыми полигонами на частях тела всё ещё имеет место быть, у демона ( demon_m3 ), крылья, верхняя часть, и некоторые части шерсти наизнанку, у носача ( nosach ), на частях туловища у mantabat, ноги вывернуты, ну и так далее по мелочи, но сейчас уже, конечно не то что раньше было, у большинства моделей в obj с полигонами всё в порядке. Например демона ( из той папки ( demon_m3 ) не могу в FBX, вылетает прога, а в obj у него вывернуты полигоны на частях тушки. Конечно я уверен, что уважаемый iOrange в новых версиях программы, всё это поправит.
Thekello
10.03.2019, 22:25
Ребята, кто-нибудь находил вагон для авроры(Купе)?Подскажите пожалуйста как папка называется и где находиться и ещё фурнитуру к нему там кровати
GreenTachyon
10.03.2019, 23:02
iOrange, спасибо за крутую тулзу! Теперь я смогу лепить [/color]говно[color="#000000"]фанарты еще и по по этой игруле)
Картинко
Удалось дернуть одну из моделек Мельника со скелетом, так что он следующая жертва)) Вот и мопэд для него есть)
Велодрезина
GreenTachyon
10.03.2019, 23:32
Цитата(Thekello @ 10.03.2019, 21:25)
Ребята, кто-нибудь находил вагон для авроры(Купе)?Подскажите пожалуйста как папка называется и где находиться и ещё фурнитуру к нему там кровати
dynamik/objects/vagon_pas -- базовая модель интерьера/экстерьера, дверь, сцепка static/vagon_pas -- опять модель экстерьера(без внутренностей), колесные тележки,окна static/sostav -- всякие внутренние детали(в т.ч. и для метровагонов)
iOrange
11.03.2019, 07:27
Отчет по разработке - малозначительный для конечного пользователя, но огромный для меня - произошла смена технологий. Раньше проект базировался на wxWidgets + OpenGL 3.3. Теперь проект переехал на WinForms + Direct3D 11.0.
Для пользователей, как я уже писал, это будет малозаметно, но это был необходимый шаг для обеспечения дальнейшей успешной разработки. Здесь уже неоднократно просили те или иные улучшения юзабилити, и многи из них были либо тяжело воплотимы, либо же практически невозможны на прошлой платформе.
На данный момент полностью воссоздана версия v0.28c Возьму день на отдохнуть , и полностью погружусь в раскопки скелетов, ибо пора бы уже версию v0.29 выпускать
Так что всех кто ждет обновления - прошу извинить меня за растягивание, обещаю поднажать.
Thekello
11.03.2019, 08:10
Цитата(GreenTachyon @ 10.03.2019, 23:32)
Цитата(Thekello @ 10.03.2019, 21:25)
Ребята, кто-нибудь находил вагон для авроры(Купе)?Подскажите пожалуйста как папка называется и где находиться и ещё фурнитуру к нему там кровати
dynamik/objects/vagon_pas -- базовая модель интерьера/экстерьера, дверь, сцепка static/vagon_pas -- опять модель экстерьера(без внутренностей), колесные тележки,окна static/sostav -- всякие внутренние детали(в т.ч. и для метровагонов)
Спасибо большое
Цитата(iOrange @ 11.03.2019, 07:27)
Отчет по разработке - малозначительный для конечного пользователя, но огромный для меня - произошла смена технологий. Раньше проект базировался на wxWidgets + OpenGL 3.3. Теперь проект переехал на WinForms + Direct3D 11.0.
Для пользователей, как я уже писал, это будет малозаметно, но это был необходимый шаг для обеспечения дальнейшей успешной разработки. Здесь уже неоднократно просили те или иные улучшения юзабилити, и многи из них были либо тяжело воплотимы, либо же практически невозможны на прошлой платформе.
На данный момент полностью воссоздана версия v0.28c Возьму день на отдохнуть , и полностью погружусь в раскопки скелетов, ибо пора бы уже версию v0.29 выпускать
Так что всех кто ждет обновления - прошу извинить меня за растягивание, обещаю поднажать.
Отлично , жду с нетерпением новой обновы)
SkyLoader
11.03.2019, 10:30
Цитата(iOrange @ 11.03.2019, 07:27)
Теперь проект переехал на WinForms + Direct3D 11.0.
Всё же предлагаю добавить сортировку древа контента, ибо нужные текстуры адово искать, когда всё вразнобой. А раз WinForms, то предлагаю воспользоваться вариантом, который юзаю сам:
Реализация
Код
ref class NodeSorter : public System::Collections::IComparer { public: virtual int Compare(Object^ x, Object^ y) { System::Windows::Forms::TreeNode^ left = safe_cast<System::Windows::Forms::TreeNode^>(x); System::Windows::Forms::TreeNode^ right = safe_cast<System::Windows::Forms::TreeNode^>(y);
if (left->Nodes->Count) { if (right->Nodes->Count) return left->Text->CompareTo(right->Text); return false; }
if (right->Nodes->Count) return true; return left->Text->CompareTo(right->Text); } }; // ref class NodeSorter
Применение: После заполнения древа применить сортировку
P.S. Заметил, что экспорт в TGA сообщает об ошибке экспорта, даже если экспортировал текстуру. И также выдает ошибку, если отменить сохранения файла, закрыв окно выбора пути сохранения.
Antnigm
11.03.2019, 10:34
Спасибо огромное автору. Теперь как минимум можно ресурсы использовать для творчества. Небольшая просьба - можно, чтобы кроме normal map извлекалась и bump текстура? В последней содержатся карты блеска, отражений и т.п.
iOrange
11.03.2019, 17:05
Цитата(SkyLoader @ 11.03.2019, 09:30)
Всё же предлагаю добавить сортировку древа контента
Да, как я и писал выше - подобные просьбы и толкнули меня на смену платформы. Теперь реализовывать их будет гораздо проще.
Цитата(SkyLoader @ 11.03.2019, 09:30)
Заметил, что экспорт в TGA сообщает об ошибке экспорта, даже если экспортировал текстуру. И также выдает ошибку, если отменить сохранения файла, закрыв окно выбора пути сохранения.
Да, это исправлено. Спасибо.
Цитата(Antnigm @ 11.03.2019, 09:34)
можно, чтобы кроме normal map извлекалась и bump текстура? В последней содержатся карты блеска, отражений и т.п.
Как разберусь с материалами - так и добавлю. Пока даже нормармапы угадывать приходится.
iOrange
12.03.2019, 00:08
Кстати, спрошу вдруг кто натыкался - никто не находил в архивах шейдеры?
Я нашел только паки шейдеров для Dx11 рендера в патче. Но меня больше интересуют Dx12. Если кто чего видел - отпишите мне плиз.
разбивка шейдерных паков на отдельные шейдеры
Код
use std::env; use std::fs::File; use std::io::prelude::*;
fn read_u32(buf: &Vec<u8>, offset: usize) -> u32 { let a = buf[offset + 0] as u32; let b = buf[offset + 1] as u32; let c = buf[offset + 2] as u32; let d = buf[offset + 3] as u32;
(a | (b << 8) | (c << 16) | (d << 24)) }
fn main() { let args: Vec<String> = env::args().collect(); if args.len() == 2 { let file_name = &args[1]; let mut file = File::open(file_name).expect("file not found");
let mut content: Vec<u8> = Vec::new(); let file_size = file .read_to_end(&mut content) .expect("Can't read file content");
let mut shd_idx: u32 = 0; let mut offset: usize = 44; while offset < file_size { let dxbc: u32 = read_u32(&content, offset); let size = read_u32(&content, offset + 24) as usize;
if dxbc == 0x43425844 { let shader_name = format!("{}{:04}.bin", "shd_", shd_idx); let mut shd_file = File::create(shader_name).expect("Can't create output file"); shd_file .write(&content[offset..(offset + size)]) .expect("Can't write to output file"); shd_file.sync_all().unwrap();
println!("Unpacking shader #{} of size {}", shd_idx, size);
Немного прогресса. Изначальный мой подход к чтению скелета был неверен, ибо это тоже reflection (бывает с дебаг инфой и без оной). Благодаря тому что у меня уже был написан костяк MetroReflection, чуть допилив его напильником получилось сделать универсальное и гибкое чтение скелетов. Теперь читаются и встроенные в модель скелеты (такие, например, у крутилок в главном меню).
Осталось доразбираться с составными скелетами и будет версия v0.29 После которой я засяду за уже сами анимации.
Скриншотик для затравки:
inuway
12.03.2019, 19:52
iOrange
13.03.2019, 05:22
Уххх, мучаюсь я с этим скелетом. Формат скелета большой и сложный (не то что в первом Метро 9 лет назад) К тому же наличие тех или иных полей зависит от версий и прочих флагов....
Но! Прокрасноглазив пару ночей до состояния я смог кой-чего наваять
Например, вот Lurker, еще недавно крашивший программу при попытке экспорта в FBX:
А вот .... хехе, интрига!
спойлер!
Тадам! Че я могу
Дайте мне денек на тесты-утряски, и будет версия v0.29
А я отсыпаться.
Antnigm
13.03.2019, 10:06
Цитата(iOrange @ 13.03.2019, 05:22)
А вот .... хехе, интрига!
спойлер!
Тадам! Че я могу
Что-то дофига косточек на грудь. В игре у неё, вроде, и "физики" особой нет. Хотя может просто не замечал.
Тем временем уже первые кривые моды на сталкач подкатили.
spoiler
lafugix
13.03.2019, 10:37
Цитата(Antnigm @ 13.03.2019, 12:06)
Что-то дофига косточек на грудь.
Они на платок почти все. По идее в катсценах каких-нибудь более-менее юзаются, или просто чтобы он по ветру красиво развевался во время стартовой сцены на Каспии.
NiutoN
13.03.2019, 16:51
iOrange Скажи пожалуйста, а сделаешь ли ты утилиту, позволяющую запаковывать "измененные" файлы обратно в игру??
Я и мои друзья ждут с нетерпением этой тулзы...
iOrange
13.03.2019, 17:39
Цитата(NiutoN @ 13.03.2019, 15:51)
а сделаешь ли ты утилиту, позволяющую запаковывать "измененные" файлы обратно в игру??
Такой функционал планируется, но обещать на данный момент ничего особо не могу
iOrange
14.03.2019, 08:30
Итак, обещанная v0.29 Основные изменения: - смена платформы (с wxWidgets + OpenGL 3.3 на WinForms (CRL) + Direct3D 11.0) - загрузка любых скелетов (надеюсь) - экспорт в FBX со скелетом (теперь без падений (надеюсь)) - улучшена поддержка игровых текстур - улучшение юзабилити (текстуры можно склоллить "тягая" мышкой, можно включать-выключать альфу кнопкой на панели) - куча переписанного/дописанного кода для более правильной работы с игровыми форматами - долгожданная сортировка файлов и папок*
* эта самая сортировка, огромному моему сожалению, занимает прилично времени (около 15 секунд), из-за огромного количества файлов в архиве. Я работаю над этим и постараюсь оптимизировать это. Заранее прошу прощения.
Как всегда - рад всем отзывам / предложениям.
Скриншот для порядку (хотя визуально мало что поменялось)
mmyr
14.03.2019, 08:34
Простите, всё отлично работает Нужно было немного подождать. Спасибо большое автору за его труды!
Hellroon
14.03.2019, 10:22
Цитата(iOrange @ 14.03.2019, 08:30)
Итак, обещанная v0.29
беееез понятия в чем фишка, но у меня ту же самую Гуль не откывает) тыкнул на нее, и ничего
Antnigm
14.03.2019, 11:11
Hellroon, я так понимаю, программа пока работает только с файлами, имеющими расширение .model .mesh и .ph_model она не открывает. Если первое - просто элемент меши, который собирается потом в .model (так что его не обязательно вытаскивать), то второе - х.з. Физическая модель (?) Ты как раз попытался ph_model открыть.
SkyLoader
14.03.2019, 11:57
Цитата(iOrange @ 14.03.2019, 08:30)
* эта самая сортировка, огромному моему сожалению, занимает прилично времени (около 15 секунд), из-за огромного количества файлов в архиве. Я работаю над этим и постараюсь оптимизировать это. Заранее прошу прощения.
А оно столько времени занимает даже при использовании BeginUpdate()/EndUpdate()? Просто как-то довольно долго получается. У меня обычно быстро обрабатывает:
Пример
Код
this->treeSpawns->BeginUpdate();
// Очистка перед заполнением древа this->treeSpawns->Nodes->Clear(); this->treeSpawns->SelectedNode = nullptr;
А оно столько времени занимает даже при использовании BeginUpdate()/EndUpdate()? Просто как-то довольно долго получается. У меня обычно быстро обрабатывает:
открой меня
Нет, при заполнении дерева я отключаю в нем сортировку и обновление
Кстати, Sort() вызывать не нужно, дерево реагирует на присвоение сортировщика и сразу сортируется.
Так вот вся основная работа происходит при присвоении сортировщика - тут мы и сидим около 15 секунд. И все это внутри самого дерева.
Размер дерева - 203383 элементов (папки + файлы).
Я пока думаю над вариантами (отсортироваться самому перед заполнением дерева, переписать компонент дерева, т.д.)
slik
14.03.2019, 16:41
А on demand сортировки нет? Сортировать только то, что видно.
iOrange
14.03.2019, 17:13
Цитата(slik @ 14.03.2019, 15:41)
А on demand сортировки нет? Сортировать только то, что видно.
Я исследую варианты оптимизации. Прошу прощения за неудобства.
SkyLoader
14.03.2019, 19:51
iOrange,
Цитата
SuspendLayout()
Это всё же не BeginUpdate() Применение предложенного мной варианта отключает переотрисовку древа при каждом действии, будь то добавление нода или сортировка. Потому что отрисовка получается дорогая, особенно если количество нодов растет с каждым разом. Сейчас даже сравнил. BeginUpdate() выигрывает в скорости у SuspendLayout() как минимум в два раза. И, кстати, лучше это:
применить до окончания работ с древом, то бишь до вызова EndUpdate().
iOrange
14.03.2019, 20:11
Цитата(SkyLoader @ 14.03.2019, 18:51)
Это всё же не BeginUpdate()
Это не имеет значения, заполнение дерева занимает 700ms всего. А вот после заполнения дерева - я включаю сортировку, и именно она тупит.
Цитата(SkyLoader @ 14.03.2019, 18:51)
рименить до окончания работ с древом, то бишь до вызова EndUpdate().
Посмотрите как работает сортировка дерева - оно само включает Update перед началом сортировки
SkyLoader
14.03.2019, 20:27
Цитата(iOrange @ 14.03.2019, 20:11)
Это не имеет значения, заполнение дерева занимает 700ms всего.
Ну так если BeginUpdate() быстрее хоть на сколько-то, то почему бы и нет?
Цитата(iOrange @ 14.03.2019, 20:11)
Цитата(SkyLoader @ 14.03.2019, 18:51)
рименить до окончания работ с древом, то бишь до вызова EndUpdate().
Посмотрите как работает сортировка дерева - оно само включает Update перед началом сортировки
Видимо в случае в активным BeginUpdate() при Update всё-равно игнорируется отрисовка, потому что перемещение сортировки в пределы BeginUpdate()/EndUpdate() даже визуально на форме заметно.
iOrange
14.03.2019, 20:41
Цитата(SkyLoader @ 14.03.2019, 19:27)
Ну так если BeginUpdate() быстрее хоть на сколько-то, то почему бы и нет?
Попробовал BeginUpdate/EndUpdate - время не поменялось. В ваших тестах у вас сколько нодов было?
У меня в профайлере показывает что все время мы сидим в сортировке, отрисовка даже не вклинивается там
Thekello
14.03.2019, 21:03
Добавьте пожалуйста в версию v3.0 выгрузку уровней умоляю
:(
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.