-
Posts
4,438 -
Joined
-
Last visited
-
Days Won
72
Posts posted by SkepticalFox
-
-
@Dragon armor естественно, я же тебе уже все расписал
То что я тебе написал я сам проверил в nuTerra
-
@Дизель можно автоматизировать, наверное, конвертирование из одного движка в другой
такой скрипт был бы намного интереснее
-
32 minutes ago, Dragon armor said:
И уже только неправильно ориентированы по оси Z (или Y, что там вверх направлено в физдвижке).
Ибо надо по рукам бить за memcpy в объект класса )
Шучу конечно
Вообще я не понял, что там заработало и что ты там поменял в матрице
-
15 minutes ago, Dragon armor said:
Или хз как это работает.
ну так я же тебе ссылки кинул - в DirectX и OpenGL разные координатные системы
16 minutes ago, Dragon armor said:Визуализатор может и с OpenGL, и с DirectX работать
это еще как? бэкэнды должны абстрагироваться от данных, и скорее всего данные ему нужны в формате DX, раз матрицы и вершины из игры без изменений принимает
-
1 hour ago, Dragon armor said:
Почему в визуализаторе правильная ориентация, не требуется менять X на Z?
Возможно твой визуализатор работает с форматом DX, а движок с форматом OpenGL
https://docs.microsoft.com/en-us/windows/win32/direct3d9/coordinate-systems?redirectedfrom=MSDN
11 minutes ago, Dragon armor said:Или брутфорсить правильный вариант, как с ландшафтом было.
Кстати, а что с ним было?) heights.png вроде ни разу не менялся
-
1 minute ago, Dragon armor said:
Коэффициент масштабирования единица по умолчанию
А зачем тебе эта единица, когда у тебя в matrix_p есть scale -> matrix_p.getScale()
-
2 minutes ago, Dragon armor said:
Единичку передать?
scene::IMeshSceneNode *node_fr = smgr->addMeshSceneNode(mesh_preloaded[index], NULL, i, matrix_p.getTranslation(), matrix_p.getRotationDegrees(), matrix_p.getScale());
Ну я про это
-
11 minutes ago, Dragon armor said:
getRotationDegrees
11 minutes ago, Dragon armor said:scene::IMeshSceneNode *node_fr = smgr->addMeshSceneNode(mesh_preloaded[index], NULL, i, matrix_p.getTranslation(), matrix_p.getRotationDegrees());
Тут еще scale передать можно, чего не передаешь?
-
6 minutes ago, Dragon armor said:
irrlicht
Где ты вообще откопал это? Впервые слышу о таком
-
1 minute ago, Dragon armor said:
Зачем?
Ну как бы... DirectX
http://www.mindcontrol.org/~hplus/graphics/matrix-layout.html
-
Ну что тут скажешь) Без кода нихрена не понятно.
Ты матрицы BSMI транспонировал?
-
@Dragon armor за объекты зависящие от типа боя должна отвечать visibilityMask
-
40 minutes ago, Dragon armor said:
ramp - скат, трап, уклон. Невидимый физический объект для более плавного передвижения по нему. Получается, так и есть.
думаю bsp_material_kinds в BSMO ссылается на эти флаги, и у подобных невидимых объектов должны быть соответствующие флаги
я пока не проверял это
40 minutes ago, Dragon armor said:Ещё не всё гладко, нужно будет с разрушаемыми объектами поработать, а то похоже, что друг на друга накладываются.
Так выложи в опенсорс, помогу с фиксом)
Ты там лишние группы примитивов грузишь из .primitives_processed, а нужно строго те, что указаны в BSMO
-
@Nya009 надо .visual файлы руками править, шейдеры и параметры прописывать.
-
6 hours ago, Dragon armor said:
С разрушаемыми объектами ещё много непонятного. Вот есть модель bldAF_004_vhouse\merged\lod0\bldAF_004_vhouse.primitives_processed. Домик глиняный.
А есть объект bldAF_004_vhouse\normal\lod0\bldAF_004_vhouse.primitives_processed - это тот же дом, но разрушаемый. Оба есть на карте. Недоступных мест нет, значит оба можно разрушить. Один объект подменяет другой? А разрушения как происходят? Там есть секции для разрушений. Это primitiveGroup?
В destructibles.xml есть ссылки на материал модели. Но в space.bin нет этих строк. Как тогда клиент узнаёт об этом? Всё-таки открывается .visual_processed?
Да все же понятно ) BSMI ссылается только на неразрушенные модели внутри BSMO.
А вот уже эти модели модели внутри BSMO ссылаются на разрушенные модли внутри BSMO (смотри последний коммит в момем репо).
Для примера - в BSMO есть список моделей (models_loddings) а также список с информацией о типе объекта (model_info_items) той же размерности.
Так вот если type=0 - это статик объект, если type=1 - это объект, который можно свалить на землю, если type=2, то это объект который можно разрушить.
Также там есть info_index, который ссылается на секции falling_model_info_items/fragile_model_info_items в зависимости от типа (1/2)
Вот уже там, во fragile_model_info_items есть destroyed_model_index - model_id разрушенного объекта, и если model_id = 0xFFFFFFFF, то объект при разрушении просто исчезнет.
6 hours ago, Dragon armor said:13 hours ago, SkepticalFox said:wsmo
А этой секции ещё нет в 0.9.22.
И не будет ее больше никогда, она только до 0.9.20 была, потом объеденили её в 0.9.20 с BSMO
Даже комментарии оставил (похоже только мне понятные)
class BSMO_Section_0_9_20(Base_JSON_Section): header = 'BSMO' int1 = 1 _fields_ = [ (list, 'models_loddings', ModelLoddingItem_v0_9_12 ), (list, 'models_colliders', ModelColliderItem_v0_9_12 ), (list, 'bsp_material_kinds', BSPMaterialKindItem_v0_9_12 ), (list, 'models_visibility_bounds', MinMax ), # *.model/visibilityBox (list, 'model_info_items', WoTModelInfoItem_v0_9_12 ), # 0.9.12: WSMO['1'] (list, 'model_sound_items', '<I' ), # 0.9.12: WSMO['5'] (list, 'lod_loddings', '<f' ), # *.model/extent (list, 'lod_renders', LODRenderItem_v0_9_12 ), (list, 'renders', RenderItem_v0_9_12 ), (list, 'node_affectors1', '<I' ), # link section 'pgroups' with 'visual_nodes' (list, 'animations', AnimationItem_v0_9_12 ), (list, 'node_affectors2', '<I' ), (list, 'visual_nodes', '<I16f' ), # *.visual/nodes (list, 'model_hardpoint_items', '<16f' ), # 0.9.12: WSMO['4'] (list, 'falling_model_info_items', WoTFallingModelInfoItem_v0_9_12 ), # 0.9.12: WSMO['2'] (list, 'fragile_model_info_items', WoTFragileModelInfoItem_v0_9_12 ), # 0.9.12: WSMO['3'] (list, 'vertices_data_sizes', VerticesDataSize_v0_9_20 ), ]
Вообще по структуре моего репо это должно быть очевидно -> каталог с каждой секцией содержит секции, в имени файла которых присутствует версия, с которой эта секция претерпела изменение(или появилась). Также и с именами секций/структур.
6 hours ago, Dragon armor said:Да и как интегрировать этот визуализатор?
Это опенсорс, как моешь так и делай)
6 hours ago, Dragon armor said:Неужели всё это быстрее будет загружаться вместо того, чтобы загрузить один файл visual_processed?
всмысле один помноженный на 300+ ? Конечно быстрее
-
А визуализатор-то сто лет как есть, зачем силы тратить?)
https://github.com/mikeoverbay/nuTerra
On 2/29/2020 at 1:18 AM, DrWeb7_1 said:Вероятно, с помощью довольно старой версии BigWorld World Editor, могу ошибаться.
Вроде там tankPosition в space.settings просто поднималась над ангаром и питоном добавлял модель минимального ангара, не влезая в space.bin
Собственно тут я своими руками(и свое утилитой) как раз и дополнил этот минималистик влезанием в space.bin
P.S. По разрушенным объектам есть отдельный файл "res\packages\scripts.pkg\scripts\destructibles.xml"
P.P.S. В space.bin также есть секции по разрушенным объектам - внутри bsmo/wsmo
P.P.P.S. В World Editor'е destructibles.xml с комментариями на русском
<!-- Замечание: health разрушаемых объектов дожен быть integer'ом из [0, 2^16)
Если выставить 0, объект будет считаться разрушенным, но визуально сохранит свое начальное состояние.
Указываемое значение является референсным, здоровье конкретного объекта находится в
квадратичной зависимости от его скейла по оси Y, и вычисляется по формуле:
health = referenceHealth * scale * scale -->
<!-- Падающие деревья и мелкие объекты анимируются с помощью физической симуляции.
Физическая модель представляет собой стержень с пружиной в центре.
Параметры:
масса, длина, угол пружины, жесткость, сопротивление пружины, сопротивление воздуха, углубление в землю
угол пружины - угол между прямой стержня и
прямой проходящей через один из концов стержня и конец пружины -->
<!-- Эффект разрушения задается параметрами:
effect, lifetimeEffect, fractureEffect, touchdownEffect - имя эффекта в соответствующей секции destructibles_effects.xml,
lifetimeEffectChance - вероятность запуска lifetimeEffect (от 0 до 1).
Если это поле остутствует, вероятность принимается равной defaultLifetimeEffectChance.
effectHP - хардпоинт эффекта.
Замечание: деревья не имеют хардпоинта, эффект крепится к scene root дерева. -->
<!-- Деревья. density - плотность листвы, влияет на видимость -->
<!-- Trees, fallingAtoms, fragiles.
kineticDamageCorrection - коэффициент позволяющий сделать зависимость урона от массы танка
более ярко выраженной. Честная формулой для рассчета урона:
damage = Ek * normaliser
где: Ek - кинетическая энергия танка, Ek = 0.5 * mass * speed^2
normaliser - коэффицинт масштабирования
Работает скорректированная формула:
damage = Ek * normaliser * (mass/unitVehicleMass)^kineticDamageCorrection
где: unitVehicleMass - опорная масса.
Эта масса, при которой совпадают урон по честной формуле и скорректированный урон.
Пример: значение kineticDamageCorrection = 1, сделает зависимость урона от маcсы квадратичной.
При отсутсвии поля kineticDamageCorrection, его значение принимается равным 0 и работает честная формула. -->
<!-- achievementTag - тег (строка), позволяющий группировать объекты, в соответсвии с ачивками за их разрушение.
Всем деревьям автоматически присваивается тег 'tree' -->
<!-- fallingAtoms
preferredTiltDirections - опциональный список направлениий падения объекта
Значения указываются в градусах, разделяются пробелом. Значния могут быть десятичными дробями.
Угол отсчитывается в локальной системе координат объекта в плоскости XOZ от оси OZ против часовой стрелки.
Пример: Направление оси OZ = 0, Нарпавление оси ОХ = -90
По умолчанию, если список не задан или пустой, направление падения совпадает с направлением воздействия.
Если список задан, то будет выбрано направление падения, ближайшее к направлению воздействия.
На скорость падения эти настройки не влияют.
--> -
Нельзя эту нормалмапу в этот шейдер загонять. GMM также вовсе не specular А что вы хотите решить?
WG давно на PBS шейдеры перешла.
-
7 hours ago, Mixaill said:
¯\_(ツ)_/¯
Могу предположить, что в нем будет помимо World, также Model и Particle редакторы (хотелось бы верить)
Без редактора частиц ничего интересного сейчас не создать
-
Hi Mike,
9 hours ago, Coffee_ said:I was wondering If you have charts showing the table formats of the data in the sections.
I was thinking about creating them. I can write a simple script that creates data format tables from Python code.I'll try to write it this weekend.- 1
-
@TULLIE хочешь проспонсировать?
Всегда пожалуйста
- 2
-
5 hours ago, olix_vameshu said:
So thats way i cannot update the hangar :( with WE lite.
Can i update with your tool to add the lights? Or at least is working like that?
Of course you can )
Pack with the wg lite compiler, then unpack with my utility (1.6.1.3 mode) and pack again with it (1.7.0.2 mode)
Utility fills new sections with zeros
- 2
-
В WoT 1.7 расширили сецию источников освещения для эффектов новогоднего ангара.
- 1
-
22 hours ago, Tima177 said:
Код программы компилятора енкодера в grf
Это код установщика (setup.py), а не компилятора
- 1
-
15 hours ago, anomal3 said:
А есть вариант новые карты вытащить?
не вижу проблем
По поводу сети:
- 3
Мод "Эмулятор сервера World of Tanks".
in Modding General Discussion
Posted
@Dragon armor unknownв chunkmodel это флаги по типу cast shadows, reflection visible
Естественно у невидимых объектов нет ни теней ни отражений
@Dragon armor я про bsmo_models_id в BSMI =)