Jump to content
Korean Random

SkepticalFox

Premium Member
  • Posts

    4,438
  • Joined

  • Last visited

  • Days Won

    72

Posts posted by SkepticalFox

  1. 32 minutes ago, Dragon armor said:

    И уже только неправильно ориентированы по оси Z (или Y, что там вверх направлено в физдвижке).

    Ибо надо по рукам бить за memcpy в объект класса )

    Шучу конечно

    Вообще я не понял, что там заработало и что ты там поменял в матрице

  2. 15 minutes ago, Dragon armor said:

    Или хз как это работает.

    ну так я же тебе ссылки кинул - в DirectX и OpenGL разные координатные системы

     

    16 minutes ago, Dragon armor said:

    Визуализатор может и с OpenGL, и с DirectX работать

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

  3. 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 вроде ни разу не менялся

  4. 11 minutes ago, Dragon armor said:

    getRotationDegrees

    https://github.com/zaki/irrlicht/blob/fd155bead0e24cc5018b9f4cee2d73c85b18badc/include/matrix4.h#L904

     

    11 minutes ago, Dragon armor said:

    scene::IMeshSceneNode *node_fr = smgr->addMeshSceneNode(mesh_preloaded[index], NULL, i, matrix_p.getTranslation(), matrix_p.getRotationDegrees());

    Тут еще scale передать можно, чего не передаешь?

  5. 40 minutes ago, Dragon armor said:

    ramp - скат, трап, уклон. Невидимый физический объект для более плавного передвижения по нему. Получается, так и есть.

    https://github.com/v2v3v4/BigWorld-Engine-2.0.1/blob/c881231e0f72a129c4dd92e3b76eb1610f4a92c4/src/lib/physics2/worldtri.hpp#L34-L54

    думаю bsp_material_kinds в BSMO ссылается на эти флаги, и у подобных невидимых объектов должны быть соответствующие флаги

    я пока не проверял это

     

    40 minutes ago, Dragon armor said:

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

    Так выложи в опенсорс, помогу с фиксом)

    Ты там лишние группы примитивов грузишь из .primitives_processed, а нужно строго те, что указаны в BSMO

  6. 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+ ? Конечно быстрее

  7. image.thumb.png.ad529cffabf73618e2437bcd9bb1876e.png

    А визуализатор-то сто лет как есть, зачем силы тратить?)

    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

    http://forum.worldoftanks.ru/index.php?/topic/745873-hell-hmhm-v2-минималистичный-ангар-15xx/page__st__520__pid__48918063#entry48918063

     

     

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

  8. 7 hours ago, Mixaill said:

     

    ¯\_(ツ)_/¯

    Могу предположить, что в нем будет помимо World, также Model и Particle редакторы (хотелось бы верить)

    Без редактора частиц ничего интересного сейчас не создать

  9. 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

     

    • Upvote 2
×
×
  • Create New...