Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
ed_rez
ed_rez,
как минимум этой информации не хватало, чтобы объяснить необходимость. Это разрушаемый объект.



Цитата(Дизель @ 06.02.2020, 00:55) *
дестроябле-объект. рассыпается он по конфигу

Точно так и есть.
Zagolski
Вот сделал видео тряски с GetPosition (рецепт от Shoker). Что важно, в режиме прильнуть к прицелу тряска даже в оригинале заметно снижается. А если сменить IPosition на GetPosition, тогда при прицеливании тряска исчезает полностью. Почему именно в режиме прицеливания? Наверное, потому что при прицеливании direction не меняется, а при анимированном покачивании смена происходит. И при обзоре камерой тряска всегда есть.
Важно то, что тряска в одном из режимов полностью ликвидируется. По идее это значит, что точность float тут ни при чем...


А здесь то же самое, только оружие без аттачей. Тоже трясет само оружие приаттаченное к рукам.
ed_rez
Zagolski,
видео не пашет.
Zagolski
У меня норм. Да и судя по тому, что там немало просмотров, значит пашет. У тебя какие-то проблемы с воспроизведением или доступом.
ed_rez
Zagolski,
разобрался. Мешает пройти блокировщик рекламы. Нужно на время прохода по видео-превью отключить.
Shoкer
Zagolski, форум вместо видео открывает превью-картинку (UPD: подсказали про блокировщик).

Вот прямые ссылки:
https://radikal.ru/video/f37sRufsDBT
https://radikal.ru/video/NxHrTMeF82b

Мне кажется факт того что виновата точность float уже очевиден. Вот видео где я нахожусь на дне на расстоянии 9.000 метров от центра и 99.000 метров от центра - на последнем даже прицеливание уже кривое.

https://yadi.sk/i/ljgMvQmLmiCMIw

PS: Модели от 3-его лица на таком расстоянии даже не отображаются laugh.gif .

Плюс я уже говорил что даже в режиме прицеливания модель всё равно смещается слегка смотря в какую сторону сейчас смотрит игрок. Очевидно что когда происходит расчёт новой позиции модели (с учётом поворота камеры) где то закрадывается погрешность вычислений.

PSS: Это кстати вполне себе актуальная проблема для идеи "сделать бесшовную зону". Интересно как с этим борятся те же Ray of Hope, у которых по 4-6 локаций склеено в одну было.

- - - - - -
И вот ещё в догонку: https://yadi.sk/i/HnffjLNbWjJyKA

1) Движок по какому принципу разбивает одну модель на несколько .ogf при отрисовке (FHierarchyVisual)? Только по разным текстурам? Если да то такие модели не трясёт по кускам (в модели из видео 6-8 текстур, но материал вроде один).

2) Также видно что руки, магазин и сам ствол дёргаются даже когда камера стоит на месте. Потому что играет анимация и она заставляет модель смещаться.
Zagolski
Цитата(Shoкer @ 08.02.2020, 14:42) *
Мне кажется факт того что виновата точность float уже очевиден.

Я когда выше отписал, не с той стороны подумал и слишком рано выводы сделал. То ведь было в режиме прицеливания без движения, било по одной координате и не тряслось. А небольшой сдвиг - сразу прыжок. Точность однозначно виной всему. А у тебя на видео это вообще сильно проявляется. На моем видео - край ЧН болот, от центра локи где-то ~500 м.

Цитата(Shoкer @ 08.02.2020, 14:42) *
Это кстати вполне себе актуальная проблема для идеи "сделать бесшовную зону".

Очень даже актуальная. Кстати, на видео в Ray of Hope слегка заметно, что худ трясет. Мне так показалось, если приглядеться. Так что они наверное тоже страдальцы. biggrin.gif
Zagolski
Руки не дрожат. Не знаю, почему. В прошлый раз вроде замечал тряску рук, а может что напутал. И фонарик на голове тоже дрожит, кстати. Но не так сильно. И мировая модель ствола. Сам перс не дрожит. Какая-то проблема в аттаче, скорее всего координаты приаттачивания сбоят, во флоат упираются. И это на любом оружии, даже если болт в руки взять, он дрожит. И это не скиннинг и не шейдеры, тогда бы вообще вся динамика дрожала.

Прямая ссылка: https://radikal.ru/video/2uiTCAq97U3
SkyLoader
Что-то вы тут заморочились по поводу тряски худа, решил тоже посмотреть.
Что тут можно сказать. Как известно, проблема действительно в точности float координат. А худ - это объект, рисующийся в отдельной очереди со своей несколько измененной проекцией. Это значит, что для очереди худа можно изменить отрисовку по своему желанию. Зачем рисовать худ из координат камеры, когда мы можем их рисовать в координатах 0,0,0? Тем более, что теней от худа всё-равно нет. Если рисуем в нулевых координатах, значит и точность у нас будет выше. Собственно, решил опробовать идею, и записал результат. Толком не тестировал, но проблем пока не заметил.
Видео до правок:
https://youtu.be/4PynL2gQeIg
Видео после правок:
https://youtu.be/WLK2yzSh4r4

Собственно, что сделал:
В CActor::UpdateCL() ищем код апдейта матрицы худа:
Код
    if(IsFocused())
        g_player_hud->update            (trans);

Нам нужно вычесть позицию камеры из матрицы трансформации, чтобы остались только смещения от камерных эффектов:
Код
    if (IsFocused())
    {
        trans.c.sub                    (Device.vCameraPosition);
        g_player_hud->update            (trans);
    }


Далее нужно сделать так, чтобы отрисовка худа велась от нулевых координат. Идем в R_dsgraph_structure::r_dsgraph_render_hud(). После:
Код
    Fmatrix FTold                = Device.mFullTransform;

Добавляем сохранение оригинальной view матрицы и создаем матрицу из нулевых координат:
Код
    Fmatrix Vold                = Device.mView;
    Device.mView.build_camera_dir(Fvector().set(0.f, 0.f, 0.f), Device.vCameraDirection, Device.vCameraTop);


После строки:
Код
    Device.mFullTransform.mul    (Device.mProject, Device.mView);

Добавляем обновленную матрицу:
Код
    RCache.set_xform_view        (Device.mView);


В конце функции после:
Код
    Device.mFullTransform        = FTold;

Возвращаем оригинальную матрицу
Код
    Device.mView                = Vold;
    RCache.set_xform_view        (Device.mView);


В случае наличия отрисовки полупрозрачных объектов худа и подобных отдельных очередей (r_dsgraph_render_hud_emissive(), r_dsgraph_render_hud_sorted(), r_dsgraph_render_hud_ui() и прочих), следует повторить эти же действия.

Теперь мы имеем проблему, что на удалении от центра координат худ начинает пропадать. Это связано с тем, что расчет SSA работает от координат камеры. Сделаем для худа свой расчет SSA. В r__dsgraph_build.cpp добавим функцию расчета SSA от нулевых координат:
Код
ICF    float    CalcHudSSA            (float& distSQ, Fvector& C, dxRender_Visual* V)
{
    float R    = V->vis.sphere.R + 0;
    distSQ    = Fvector().set(0.f, 0.f, 0.f).distance_to_sqr(C)+EPS;
    return    R/distSQ;
}


Теперь применим её в R_dsgraph_structure::r_dsgraph_insert_dynamic. Строку:
Код
    float SSA = CalcSSA(distSQ, Center, pVisual);

Заменим на следующее:
Код
    float SSA;
    if (!RI.val_bHUD)
        SSA = CalcSSA(distSQ, Center, pVisual);
    else
        SSA = CalcHudSSA(distSQ, Center, pVisual);


Собственно, пока данных правок достаточно. Было бы неплохо, чтобы кто-то у себя это потестил и сказал результат.
Zagolski
SkyLoader,
Великолепно! Это так просто, что я бью себя за то, что эта идея не пришла мне в голову и было потрачено столько времени зря. Действительно, зачем искать потери в точности неизвестно где, когда можно пойти другим путем и рендерить худ там, где его не трясет, т.е. на нулевых координатах.

Сделал у себя, все работает корректно. Тряска полностью исчезла.
FL!NT
Цитата(Zagolski @ 05.02.2020, 16:23) *
Недавно встречал ванильную модель баржи на болотах, вот она:

Вроде это динамика, хотя может и статика. В ней ~28 групп (не помню точно). То есть эта баржа обрабатывается как 28 отдельных моделей. Куда это годится?
Завод нефтеперегонный в центре болот тоже около того.

Сколько текстур на барже используется? Наверняка 28, от туда и твои группы они же материалы. Если бы текстура была одна навесь меш, то разделение по материалам требовалось бы только если на разных участках меша нужно было бы обеспечить разный звук и партиклы при выстреле (резина, дерево, метал). А динамика или статика по большому счету без разницы, единственное ограничение по шейдерам, для динамики и статики они разные. Завод тоже по этим же принципам делался.
На счет скелета, спроси у автора, на кой ему нужно было 16 сурфейсов, один вполне достаточен.
Цитата(ed_rez @ 05.02.2020, 21:09) *
Предположу, но не факт. Мне нужно разместить эту модель, как статику в разных позах и с разными разрушениями. Скелет позволяет быстро сделать. Затем скелет удаляется, а статическая модель остается. Годится для локаций. Иного применения разделения на столько материалов не вижу.

Ерунда, скелет ни как не повлияет.
Цитата(ed_rez @ 05.02.2020, 21:09) *
Если статика, то очень даже годится, если модель разбита на множество мешей. Удобно работать в редакторе, а также создавать сектора,... на локациях.

Сектора идут отдельными мешами, что бы выделить сам объем сектора и построить порталы
Цитата(Zagolski @ 06.02.2020, 03:39) *
Эти скелеты в игре функционируют таким образом: при спавне на локе он стоит в полный рост, но стоит к нему применить физ. воздействие, как скелет падает и рассыпается на части - череп и кости. Может быть разбитие на разные группы как раз и нужно для того, чтобы он рассыпался на отдельные модели. Если он будет цельный, вряд ли рассыплется.

Дизель прав, целевой объект убирается, а куча мусора спавница.

SkyLoader
В дополнение к посту #4460:
Забыл про худовые партиклы и лайты. Ведь теперь позиции строятся от нулевых координат, а значит партиклы и лайты будут рисоваться неправильно. Можно, конечно, их тоже рисовать из нулевых координат, но правок по коду будет гораздо больше. Думаю, ничего страшного не будет, если оставить им отрисовку "по-старому". Для этого в attachable_hud_item::setup_firedeps(firedeps& fd) следует поправить fire/shell point'ы. После строки:
Код
        m_item_transform.transform_tiny                    (fd.vLastFP);

Добавить прибавление позиции камеры:
Код
        fd.vLastFP.add                                    (Device.vCameraPosition);


После:
Код
        m_item_transform.transform_tiny(fd.vLastFP2);

Добавить:
Код
        fd.vLastFP2.add                (Device.vCameraPosition);


После:
Код
        m_item_transform.transform_tiny    (fd.vLastSP);

Добавить:
Код
        fd.vLastSP.add                (Device.vCameraPosition);


После этого партиклы и лайты должны заработать.
ed_rez
Цитата(FL!NT @ 08.02.2020, 20:40) *
скелет ни как не повлияет

Каждый делает, бесспорно, по-своему. К примеру, мне нужно сделать 200 различных трупов на локации, где у каждого будут различные позы смерти, а также оторванные конечности. Делается модель, где какие-то части тела делаются различными мешами на одной модели. Привязываю к скелету, а после начинаю играться и дергать за "ниточки"- создавать различные позы, сохраняя сцены в тех позициях. Где-то тупо вырезаю мешь, к примеру, руки. Дыр не будет, т.к. каждая мешь самодостаточна. 200 моделей склепаю за часа 3. Ты предлагаешь двигать вертексы. Что быстрее? Вопрос риторический.
FL!NT
Цитата(ed_rez @ 08.02.2020, 23:53) *
Цитата(FL!NT @ 08.02.2020, 20:40) *
скелет ни как не повлияет

Каждый делает, бесспорно, по-своему. К примеру, мне нужно сделать 200 различных трупов на локации, где у каждого будут различные позы смерти, а также оторванные конечности. Делается модель, где какие-то части тела делаются различными мешами на одной модели. Привязываю к скелету, а после начинаю играться и дергать за "ниточки"- создавать различные позы, сохраняя сцены в тех позициях. Где-то тупо вырезаю мешь, к примеру, руки. Дыр не будет, т.к. каждая мешь самодостаточна. 200 моделей склепаю за часа 3. Ты предлагаешь двигать вертексы. Что быстрее? Вопрос риторический.

И при чем здесь материалы? Говоришь запечь как статику и вуаля. Матерьял остается темже. Меш делить можешь хоть на 200 хоть по атомам.
ed_rez
Цитата(FL!NT @ 08.02.2020, 20:40) *
Сектора идут отдельными мешами, что бы выделить сам объем сектора и построить порталы

Так ты повторяешь мои слова. Я начало работы, когда моделируется какая-то модель, а ты завершающую стадию. Меши объединить куда проще, чем разобрать 1 секторную локацию на меши для секторного деления. Да и работать с материалами проще, когда одна мешь- один материал. В завершающей части работы все именно так, как пишешь.
В общем, каждый делает, как ему удобнее. В моем случае, многое создается своими руками, подгоняется все под ИИ сетку, поэтому за полную идентичность со зданиями в реальной жизни не претендую. Исхожу из удобства проложения ИИ сетки. Свой способ создания локаций и описываю.

Цитата(FL!NT @ 08.02.2020, 21:00) *
И при чем здесь материалы?

Я отделяю все материалы на меши. У трупа в руках пистолет, совсем иной материал. У трупа на голове каска, совсем иной материал. Мне так удобнее работать. Используются несколько текстур. К примеру, куртка, штаны, ботинки,... и всяческие цацки. Смотри дальше, чем модельки сталкеров от ПЫС.
Я ответил про скелет и ерунду? Про материалы не думай, это мой способ работы.
FL!NT
Цитата(ed_rez @ 09.02.2020, 00:06) *
Цитата(FL!NT @ 08.02.2020, 20:40) *
Сектора идут отдельными мешами, что бы выделить сам объем сектора и построить порталы

Так ты повторяешь мои слова. Я начало работы, когда моделируется какая-то модель, а ты завершающую стадию. Меши объединить куда проще, чем разобрать 1 секторную локацию на меши для секторного деления. Да и работать с материалами проще, когда одна мешь- один материал. Но в завершающей части работы все именно так. как пишешь.
В общем, каждый делает, как ему удобнее. В моем случае, многое создается своими руками, подгоняется все ИИ сетку, поэтому за полную идентичность со зданиями в реальной жизни не претендую. Исхожу из удобства проложения ИИ сетки.

Цитата(FL!NT @ 08.02.2020, 21:00) *
И при чем здесь материалы?

Я отделяю все материалы на меши. У трупа в руках пистолет, совсем иной материал. У трупа на голове каска, совсем иной материал. Мне так удобнее работать. Используются несколько текстур. К примеру, куртка, штаны, ботинки,... и всяческие цацки. Смотри дальше, чем модельки сталкеров от ПЫС.

А что у трупа каска, другого материала чем у живого? Если есть один набор материалов, то и у трупа он будет тем же. А если смотреть дальше, то на том же UE моделить приходится совсем по другим принципам.
ed_rez
Цитата(FL!NT @ 08.02.2020, 21:14) *
что у трупа каска, другого материала чем у живого?

Вшиваю свои трупы на локации, как статику, т.к. свой сюжет и свои локации. Динамические модели вообще другое дело. Именно поэтому я посчитал, что со скелетом (объект) кто-то также сделал, как я делаю. Правда там привязка жесткая, такое, как выше описал, можно делать и без скелета (кости). Поэтому добавил, что вероятно или как-то так, не помню точно.
Zagolski
SkyLoader, Проблемы всплыли. На худе нет ни теней, ни освещения от лайтов. Здесь единственный вариант, как мне думается, в шейдере делать отдельный расчет освещения для худа, точно также с добавлением мировой позиции.
ed_rez
Цитата(FL!NT @ 08.02.2020, 21:14) *
на том же UE моделить приходится совсем по другим принципам

Это да. Самому не приходилось, я любитель, это все не мой хлеб. Это хобби. Но видел, как моделируются локации. Реально для человека все сделано.
SkyLoader
Zagolski, ну тут как. Мой вариант годится только для дефферед рендера. Так как мы записываем всё в G-buffer и забываем. Для форварда придется лайтами освещать от центра координат. Собственно, и тени и освещение у меня работают исправно на деффереде.
Zagolski
Да, я уже понял. У меня расчет освещения ведется в мировых координатах, нужно на видовые переводить.
В мировых производительность выше, нам не нужно лишнее умножение на матрицу вида поголовно во всех вершинных шейдерах делать, напрямую выводим мировые (они в шейдер уже мировые передаются, кроме динамических моделей). Выигрыш ~1%. Хотя я все равно собирался на видовые переводить, там точность позиции выше. Но на статике расчет в мировых ведется, так что там этот способ с "нулевым худом" не будет работать, стоит это учесть.

Хотя есть еще кое-что и на ванильной отложке. В hmodel присутствует выборка из кубмапы по мировым координатам, возможно там что-то будет шалить (криво вектор для отражений будет выбираться для худа).
FL!NT
Цитата(ed_rez @ 09.02.2020, 00:27) *
Цитата(FL!NT @ 08.02.2020, 21:14) *
что у трупа каска, другого материала чем у живого?

Вшиваю свои трупы на локации, как статику, т.к. свой сюжет и свои локации. Динамические модели вообще другое дело. Именно поэтому я посчитал, что со скелетом (объект) кто-то также сделал, как я делаю. Правда там привязка жесткая, такое, как выше описал, можно делать и без скелета (кости). Поэтому добавил, что вероятно или как-то так, не помню точно.

Отличия при настройке материалов в СДК будет только в шейдерах, остальное ни как не отличается.
Цитата(ed_rez @ 09.02.2020, 00:32) *
Цитата(FL!NT @ 08.02.2020, 21:14) *
на том же UE моделить приходится совсем по другим принципам

Это да. Самому не приходилось, я любитель, это все не мой хлеб. Это хобби. Но видел, как моделируются локации. Реально для человека все сделано.

Ну я тоже любить, основная профессия далека от этого.)) К сожалению тут нет темы для 3д-шников, было бы интересно.
ed_rez
Цитата(FL!NT @ 08.02.2020, 21:51) *
остальное ни как не отличается

В основном так и есть, почти все на дефолте. Очень редко бывали иные настойки. Так сходу даже не вспомню, где применял на уже созданных локациях. Нужно смотреть свои рабочие текстовые файлы.

Цитата(FL!NT @ 08.02.2020, 21:51) *
нет темы для 3д-шников

Есть отдельные темы по 3д редакторам, но не сильно популярны.
ForserX


Тут накидал на скорую руку плагин для NotePad++ с поддержкой X-Ray типов (Oxy включительно), немного классов, немного std и WinAPI. В общем, лично мне работать стало проще.
Link
RayTwitty
На гитхабе есть возможность заливать бинарные файлы? Речь идет не о репо, а о разделе Downloads (на битбакете так).
Иногда нужно в репо положить разные скомпиленные либы, другие файлы.

Пример: https://bitbucket.org/stalker/xray-csky/downloads/
ForserX
Вкладка Releases
xrModder
SkyLoader, на ТЧ перенести никак?
RayTwitty
Никто не замечал, что при проигрывании звука скриптом от объекта в 3д пространстве (_НЕ_ в голове ГГ !!!) громкость звука получается немного разной - то тише, то громче? Может это как-то связано с позицией на уровне, а не громкостью (точность координат float)?

Код
xr_sound.get_safe_sound_object("snd_name"):play_at_pos(obj, obj:bone_position("bone_name"), 0, sound_object.s3d)
https://xray-engine.org/index.php?title=Кла...ect#play_at_pos

На практике очень заметно на коротких но часто повторяющихся звуках.
В частности столкнулся когда делал звуки открытия/закрытия дверей машин: https://youtu.be/ovnoIhQrVDk
SkyLoader
xrModder, проблем с переносом на первый взгляд быть не должно. Вычитание позиции камеры только надо делать где-нибудь в CHudItem::UpdateHudPosition.
Основная проблема - это то, что данный метод подходит только рендеров с динамическим освещением. Если у движка есть рендеры со статическим освещением, то в игровом коде вычитание позиции камеры надо делать только под проверкой на рендер. Например, так:
Код
if (::Render->get_generation() == IRender_interface::GENERATION_R2)
{
/* вычитаем позицию камеры */
}
XinnogeN
Подскажите, пожалуйста! Перевожу движок ЧН в Visual Studio 2019 - Можно ли выпилить родной stlport и использовать майкрософтский ? Или какой лучьше использовать ?
ForserX
Цитата(XinnogeN @ 21.02.2020, 11:00) *
Можно ли выпилить родной stlport и использовать майкрософтский ?

Можно
xrModder
Как правильно настроить выходные пути и пути библиотек импорта проектов Dedicated и Priquel движка? Для чего нужен последний?
XinnogeN
Помогите пожалуйста разобраться с предупреждениями! Использую VS-2019.

Тык
1>------ Перестроение всех файлов начато: проект: BugTrap, Конфигурация: Release Win32 ------
1>stdafx.cpp
1>AboutDlg.cpp
1>DescribeErrorDlg.cpp
1>MachineInfoDlg.cpp
1>MachineStateDlg.cpp
1>MainDlg.cpp
1>PreviewDlg.cpp
1>SendMailDlg.cpp
1>SimpleDlg.cpp
1>TransferProgressDlg.cpp
1>WaitDlg.cpp
1>ColHelper.cpp
1>StrHolder.cpp
1>AnimProgressBar.cpp
1>HexView.cpp
1>HyperLink.cpp
1>ImageView.cpp
1>LayoutManager.cpp
1>Splitter.cpp
1>TextView.cpp
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(649,28): warning C4456: объявление "rLineInfo" скрывает предыдущее локальное объявление
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(629,20): message : см. объявление "rLineInfo"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(715,34): warning C4456: объявление "rLineInfo" скрывает предыдущее локальное объявление
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(703,19): message : см. объявление "rLineInfo"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(730,34): warning C4456: объявление "rLineInfo" скрывает предыдущее локальное объявление
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(703,19): message : см. объявление "rLineInfo"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(778,33): warning C4456: объявление "rLineInfo" скрывает предыдущее локальное объявление
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(703,19): message : см. объявление "rLineInfo"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(799,27): warning C4456: объявление "rLineInfo" скрывает предыдущее локальное объявление
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(703,19): message : см. объявление "rLineInfo"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(808,32): warning C4456: объявление "rLineInfo" скрывает предыдущее локальное объявление
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(703,19): message : см. объявление "rLineInfo"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(821,28): warning C4456: объявление "rLineInfo" скрывает предыдущее локальное объявление
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\TextView.cpp(808,20): message : см. объявление "rLineInfo"
1>WaitCursor.cpp
1>Создание кода...
1>Компиляция...
1>CMapi.cpp
1>EnumProcess.cpp
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\EnumProcess.cpp(82,1): warning C4996: 'GetVersionExA': объявлен deprecate
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\sysinfoapi.h(387): message : см. объявление "GetVersionExA"
1>InMemLogFile.cpp
1>LogFile.cpp
1>LogStream.cpp
1>ModuleImportTable.cpp
1>NetThunks.cpp
1>SymEngine.cpp
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\SymEngine.cpp(1177,1): warning C4996: 'GetVersionExA': объявлен deprecate
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\sysinfoapi.h(387): message : см. объявление "GetVersionExA"
1>SymEngineNet.cpp
1>TextLogFile.cpp
1>ThemeXP.cpp
1>XmlLogFile.cpp
1>BugTrap.cpp
1>BugTrapNet.cpp
1>BugTrapUI.cpp
1>BugTrapUtils.cpp
1>ResManager.cpp
1>AssemblyInfo.cpp
1>Globals.cpp
1>Encoding.cpp
1>Создание кода...
1>Компиляция...
1>TextFormat.cpp
1>XmlReader.cpp
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\XmlReader.cpp(1582,21): warning C4456: объявление "arrChar" скрывает предыдущее локальное объявление
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\XmlReader.cpp(1491,8): message : см. объявление "arrChar"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\XmlReader.cpp(1583,24): warning C4456: объявление "nCharSize" скрывает предыдущее локальное объявление
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\XmlReader.cpp(1492,9): message : см. объявление "nCharSize"
1>XmlWriter.cpp
1>FileStream.cpp
1>InputStream.cpp
1>MemStream.cpp
1>OutputStream.cpp
1>StrStream.cpp
1>Создание кода...
1> Создается библиотека C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\..\..\bin\BugTrap.lib и объект C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\..\..\bin\BugTrap.exp
1>BugTrap.vs2015.vcxproj -> C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\..\..\bin\BugTrap.dll
1>Сборка проекта "BugTrap.vs2015.vcxproj" завершена.
========== Перестроение всех проектов: успешно: 1, с ошибками: 0, пропущено: 0 ==========
iOrange
Цитата(XinnogeN @ 27.02.2020, 20:12) *
Помогите пожалуйста разобраться с предупреждениями!

Код
warning C4456: объявление "rLineInfo" скрывает предыдущее локальное объявление
warning C4456: объявление "arrChar" скрывает предыдущее локальное объявление

Всего лишь означает что у вас была объявлена переменная "arrChar", а чуть ниже по коду объявлена еще раз. Это то что называется в программировании "shadowing".
Исправление зависит от логики кода, но в целом должно быть впеолне очевидно.

Код
warning C4996: 'GetVersionExA': объявлен deprecate

Да, эта функция устарела, используйте Version helpers вместо нее:
https://docs.microsoft.com/en-us/windows/wi...ion-helper-apis
XinnogeN
Спасибо большое! А вот эти:
Тык
C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\SymEngine.cpp(1177,1): warning C4996: 'GetVersionExA': объявлен deprecate
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\sysinfoapi.h(387): message : см. объявление "GetVersionExA"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\SymEngine.cpp(2243,1): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winsock2.h(2219): message : см. объявление "gethostbyname"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\SymEngine.cpp(2254,1): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winsock2.h(1849): message : см. объявление "inet_ntoa"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\SymEngine.cpp(2287,1): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winsock2.h(2219): message : см. объявление "gethostbyname"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\SymEngine.cpp(2299,1): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winsock2.h(1849): message : см. объявление "inet_ntoa"
1>SymEngineNet.cpp
1>TextLogFile.cpp
1>ThemeXP.cpp
1>XmlLogFile.cpp
1>BugTrap.cpp
1>BugTrapNet.cpp
1>BugTrapUI.cpp
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\BugTrapUI.cpp(344,1): warning C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winsock2.h(1831): message : см. объявление "inet_addr"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\BugTrapUI.cpp(347,1): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\winsock2.h(2219): message : см. объявление "gethostbyname"
1>C:\Users\XinnogeN\Desktop\BugTrap-1.4.9\source\Client\BugTrapUI.cpp(357,1): warning C4996: 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings

Их можно просто отключить добавив - #define _WINSOCK_DEPRECATED_NO_WARNINGS в stdafx.h перед winsock2.h ?
xrModder
Кто-нибудь сталкивался с проблемой невозможности запуска Debug и Mixed v1.0007rc1 после переноса на VS 2013?
Diesel
У KD реально рабочие компиляторы 64 бита для ЧН?
Как я только не выёживался, что бы запустить их в локациях после Бардака - ни как.
Работают только на новых локациях, причем в самом начале.

Я бы посоветовал KD их переделать, уж слишком они привередливые.
ed_rez
Цитата(Дизель @ 01.03.2020, 13:44) *
посоветовал KD их переделать

Вряд ли, свалил с моддинга.
WolfHeart
Цитата(Дизель @ 01.03.2020, 14:44) *
Как я только не выёживался, что бы запустить их в локациях после Бардака - ни как.

Дизель, Вожможно в этом и проблема. После декомпила локаций, много лодов и объектов, чем больше декомпилишь лок, тем их больше.
А у компиляторов, на это дело есть ограничение, у компилей от K.D. 3000 + лодов, у обычных немного больше, сколько точно не скажу, но оно есть.
Пробуй на время компиляции, перенести в другое место папку lod из gamedata/textures и папку objects из rawdata, должны запуститься.
Diesel
Цитата(WolfHeart @ 01.03.2020, 17:13) *
Пробуй на время компиляции, перенести в другое место папку lod из gamedata/textures и папку objects из rawdata, должны запуститься.

Я бы рад это делать, но до этого стадия геома не компилируется, а без него и трава не будет соттвественно.
WolfHeart
Цитата(Дизель @ 01.03.2020, 17:43) *
Я бы рад это делать, но до этого стадия геома не компилируется,

Так я и говорю про компилятор геометрии, именно он и не запускается при превышении лимита лодов и обжектов. Другие не проверял.
Пробуй сначала папку lod/s убрать, а если не поможет тогда уже objects.
RayTwitty
Цитата(RayTwitty @ 28.01.2019, 01:30) *

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

Я как-то писал про баг с дерганием визуала при движении. Мне тогда вроде бы удалось его пофиксить путем изменения некоторых настроек в конфиге модели, но как оказалось этот способ неверный. Просто во время некоторых тестов у машины были отключены фары, а именно при включении фар начиналось это дергание (на деле, скорее всего будет дергаться из-за любого источника света (кроме солнца), если он есть в кадре).
Более того, проблема явно не в самой машине. Визуал актора от 3 лица точно также дергается в некоторых ситуациях, то есть очевидно, что проблема общая для всех физ. объектов. Может дело действительно в интерполяции?

Кстати способ исправления через консольную команду ph_frequency у меня не сработал, какие бы значения не ставил.
Diesel
RayTwitty, убавь количество полигонов. При большом их количестве появляется точно такой же баг.
RayTwitty
Ленин, я тебе год назад уже писал, что не в модели дело - конкретно в этой ниве меньше 12к полигонов точно biggrin.gif В модели актора, так вообще почти полигонов нет...
Diesel
RayTwitty, ну да меньше, там одни диски весят больше самой нивы.
ed_rez
Цитата(RayTwitty @ 04.03.2020, 22:34) *
в этой ниве меньше 12к полигонов точно

Вот и мне показалось, любительским взглядом, на 10 косарей, не больше.
Цитата(Ленин @ 04.03.2020, 22:37) *
одни диски весят больше самой нивы

Вероятно, что там на альфе все сделано, причем 2-sided. А это "копейки".

Эвона как на 23 косаря без дерганья. Лишь мой ноут "малость" на онлайн пережатии видео просаживает ФПС.
RayTwitty
ed_rez, при таком фпс это конечно бессмысленно. Кстати важный момент - дергается при виде от 3 лица, от первого лица дергания нет. И скорость нужна больше 40 км/час. Я думаю это происходит когда во фрустуме дин объекты очень быстро двигаются.

ЗЫ я могу потом видео записать как выглядит баг во всех плоскостях))
Diesel
RayTwitty, у тебя вот эта нива?


Руки мододелам ЛА бы поотрывал за такой перенос техники.
RayTwitty
Ленин, не, это какой-то недогелик biggrin.gif Вообще в ЛА довольно таки всратый транспорт, в SA намного лучше: https://youtu.be/tG2MhiZiXTQ
rentgenluch
Хотел поделиться способом выдачи собственных варнингов в окно "Error List"
Не знаю Африка ли это, но сам гуглил и не нагуглил ничего. Для плюсов есть только #pragma error, но нет warning,
так что мб кому пригодится для организации работы в комманде.
smile.gif
Код
#define _QUOTE(x) # x
#define QUOTE(x) _QUOTE(x)

#define WARNING_EXPRESSION(x, y) __FILE__"("QUOTE(__LINE__)")"":" x ": " y "\n"

#define warning1100( x )  message( WARNING_EXPRESSION("Warning CU1100", "Perfomance problem: " x))

#pragma warning1100("Too much geometry to render")


Работает для 2017 вижлы, в других версиях думаю тоже будет
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.