Expropriator 2 107 Опубликовано 12 Июля 2020 Поделиться Опубликовано 12 Июля 2020 @Zander_driver, по хиту. Если торкнуло, то .... В визуалке в поиск набери SGameMtl или material Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
abramcumner 925 Опубликовано 12 Июля 2020 Поделиться Опубликовано 12 Июля 2020 (изменено) 3 часа назад, Zander_driver сказал: А как в X-Ray проще всего проверить коллизию произвольных координат, (x,y,z), с статичной геометрией локации? Точки нигде и ни с чем не коллизятся, им бы еще измерений несколько накинуть. В xrCDB.h в классе COLLIDER есть методы ray_query, box_query, frustum_query. Изменено 12 Июля 2020 пользователем abramcumner 1 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
DoberBull 284 Опубликовано 14 Июля 2020 Поделиться Опубликовано 14 Июля 2020 В связи с тем, что куда-то утерялись ссылки на исходники ЛА 2014 года с тремя рендерами. Удалось найти, поделюсь ссылкой, вдруг кому-то пригодится: Тык Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Марка демченков 5 Опубликовано 16 Июля 2020 Поделиться Опубликовано 16 Июля 2020 Люди, движок не компилится. Отсутствует файл config.h при компиляции ode.dll. также компилятор ругался на стандартную библиотеку. Если что, visual C++ 19 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Zander_driver 6 163 Опубликовано 18 Июля 2020 Поделиться Опубликовано 18 Июля 2020 (изменено) 12.07.2020 в 21:42, Expropriator сказал: по хиту. Если торкнуло, то От таких ответов было бы смешно, если бы не было так грустно А вообще, ввиду того что раскопки по движку не обнаружили ничего готового к немедленному применению для обозначенной цели, даже в составе OGSR-движка. Ну или я плохо искал... во всяком случае, готового удобоваримого инструмента такого назначения, я в свободном доступе не видел. Написал быстренько свой клас-обертку над api движка, для тестирования коллизий с геометрией локации и объектов. Уже тестировалось - работает, причем даже сразу без всяких багов. Выкладываю, может быть, кому-то пригодится. Куда нажимать и за что дергать: InitSet(Fvector3, bool, bool) - Стартовые настройки. Задает центр лучеиспускания, и флаги - считать ли столкновения с актором, считать ли столкновения с игровыми объектами. Если оба false, то будет фиксировать столкновения только с геометрией локации. Valid(Fvector3) - Пустить (из стартовых координат), луч с указанной дирекцией. Можно передавать не-нормализованные вектора - по их длине определит дальность трассировки. Возвращает true/false. Столкнулись/не столкнулись. CollisionDist() - узнать дистанцию от старта до точки столкновения, если с чем-то/кем-то столкнулись. Скрытый текст /** Класс для проверки коллизии любого произвольного луча с геометрией уровня и объектов. Zander, 2020 */ #pragma once class CLevel; class CObject; struct S_LRQ_fvPacket { Fvector3 A; Fvector3 B; Fvector3* C; bool stopOnActor; bool stopOnObjects; S_LRQ_fvPacket(Fvector3 a, Fvector3 b, Fvector3 c, bool d, bool e) { A.set(a); B.set(b); C = &c; stopOnActor = d; stopOnObjects = e; } }; class CLevelRQCast { public: CLevelRQCast(); virtual ~CLevelRQCast(); private: // For collision testing bool TestRQ(Fvector3 a, Fvector3 b); // Запуск теста столкновения. collide::rq_results rq_storage; friend CLevel; bool initialized; bool withActor; bool withObjects; bool collided; protected: Fvector3 test_dir; // Дирекция ожидаемых координат относительно старта трассировки Fvector3 initialCoords; // Старт трассировки в мировых координатах Fvector3 collisionPoint; // предполагаемое следующее положение камеры в мировых координатах static BOOL test_callback(const collide::ray_defs& rd, CObject* object, LPVOID params); static BOOL trace_callback(collide::rq_result& result, LPVOID params); public: void InitSet(Fvector3 pos, bool a, bool b); // Старт подключения. Указываем центр луче-испускания, и управляющие флаги. bool Valid(Fvector3 target); // Возвращает true, если текущий луч (источник-таргет) ни с чем не столкнулся. false в обратном случае. float CollisionDist(); }; Скрытый текст /** Класс для проверки коллизии любого произвольного луча с геометрией уровня и объектов. Zander, 2020 */ #include "stdafx.h" #include "CLevelRQCast.h" #include "level.h" #include "actor.h" CLevelRQCast::CLevelRQCast() { initialized = false; withActor = false; withObjects = false; collided = false; } CLevelRQCast::~CLevelRQCast() { } bool CLevelRQCast::Valid(Fvector3 target) { if (!initialized) return false; test_dir.set(pos); collided = TestRQ(initialCoords, test_dir); return collided; } float CLevelRQCast::CollisionDist() { if (initialized && collided) return initialCoords.distance_to(collisionPoint); return (-1); } void CLevelRQCast::InitSet(Fvector3 pos, bool a, bool b) { initialCoords.set(pos); initialized = true; withActor = a; withObjects = b; } bool CLevelRQCast::TestRQ(Fvector3 a, Fvector3 b) { rq_storage.r_clear(); collisionPoint.set(initialCoords); float range = test_dir.length(); test_dir.normalize(); collide::ray_defs RD(initialCoords, test_dir, range, CDB::OPT_CULL, collide::rqtBoth); BOOL result = FALSE; VERIFY(!fis_zero(RD.dir.square_magnitude())); S_LRQ_fvPacket* rda = xr_new<S_LRQ_fvPacket>(initialCoords, test_dir, collisionPoint, withActor, withObjects); result = Level().ObjectSpace.RayQuery(rq_storage, RD, trace_callback, rda, test_callback, rda); xr_delete(rda); return (!result); } BOOL CLevelRQCast::trace_callback(collide::rq_result& result, LPVOID params) { BOOL R; S_LRQ_fvPacket* pfd_RDA = (S_LRQ_fvPacket*)params; //динамический объект if (result.O) { R = TRUE; if (pfd_RDA->stopOnObjects) R = FALSE; if (result.O->ID() == Actor()->ID() && pfd_RDA->stopOnActor) R = FALSE; } else R = FALSE; //вычислить точку попадания Fvector3 ep; ep.mad(pfd_RDA->A, pfd_RDA->B, result.range); pfd_RDA->C->set(ep); return R; } BOOL CLevelRQCast::test_callback(const collide::ray_defs& rd, CObject* object, LPVOID params) { BOOL R = TRUE; S_LRQ_fvPacket* pfd_RDA = (S_LRQ_fvPacket*)params; if (object) { if (pfd_RDA->stopOnObjects) R = FALSE; if (object->ID() == Actor()->ID() && pfd_RDA->stopOnActor) R = FALSE; } return R; } Изменено 18 Июля 2020 пользователем Zander_driver 2 Цитата 08.01.2012 в 03:30, xStream сказал(а): Те, у кого свои руки есть, копипастить это не будут, проще свое написать, которое тоже велосипедное, но более понятное автору. Мод, где не бывает одинаковых путей - Судьба Зоны. Подхалимов и льстецов не терплю. Не нравится, что я сделал? Сделай сам, как тебе нравится. Не умеешь - твои проблемы, я тоже когда-то не умел. Да и сейчас, не умею, не знаю, но делаю что хочу. Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
dsh 3 104 Опубликовано 18 Июля 2020 Поделиться Опубликовано 18 Июля 2020 (изменено) @Zander_driver, а в чем изобретение? В движке постоянно такие лучики пускаются для разных проверок. Можно вспомнить моё замечание о костылях и велосипедах. Я писал через год, но ты похоже идёшь опережающим темпом. Изменено 18 Июля 2020 пользователем dsh Цитата dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Zander_driver 6 163 Опубликовано 18 Июля 2020 Поделиться Опубликовано 18 Июля 2020 (изменено) 16 часов назад, dsh сказал: В движке постоянно такие лучики пускаются для разных проверок. Естественно, да. Но удобной обертки для внешнего использования, на всем этом как-то не было. И вот любопытно, что есть костыль по твоему: лапша из вызовов пускания лучиков для проверок в 100500 разных классов, или один удобный класс к которому можно обратиться откуда угодно. Upd. Не вижу смысла спорить об этом. Да и тема не для этого. p.s. Для чего там колбеки и что в них делается, ты видел) Изменено 19 Июля 2020 пользователем Zander_driver Цитата 08.01.2012 в 03:30, xStream сказал(а): Те, у кого свои руки есть, копипастить это не будут, проще свое написать, которое тоже велосипедное, но более понятное автору. Мод, где не бывает одинаковых путей - Судьба Зоны. Подхалимов и льстецов не терплю. Не нравится, что я сделал? Сделай сам, как тебе нравится. Не умеешь - твои проблемы, я тоже когда-то не умел. Да и сейчас, не умею, не знаю, но делаю что хочу. Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
dsh 3 104 Опубликовано 19 Июля 2020 Поделиться Опубликовано 19 Июля 2020 (изменено) @Zander_driver, вот то, что ты написал, кажется мне велосипедом. Т.к. материалы ты не обрабатываешь, то и коллбеки не нужны и можно обойтись уже готовыми средствами. Например чем-то вроде Level().ObjectSpace.RayPick(Position(), dir, m_fJumpHeight, collide::rqtBoth, RQ, this) Это я просто скопировал из первого попавшегося кода. Что означают параметры разобраться не сложно. Изменено 19 Июля 2020 пользователем dsh Цитата dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Podosinovik97 0 Опубликовано 21 Августа 2020 Поделиться Опубликовано 21 Августа 2020 Всем доброго времени суток. Не знаю уже кого и спросить.. Не сочтите идиотом, но простая задача завела в тупик. Хотел вернуть второй слот исключительно под пистолеты, а третий под автоматы, smg, шотганы и прочее, как это было в ЧН и ТЧ. Казалось бы, сократи сетку в actor_menu.xml и дело в шляпе, дык нет же, при любом удобном способе ГГ пытается запихать дробовик в кобуру, от чего получает ожидаемый вылет с логом "нет места на ячейках". Тщательно сломав голову о конфиги и написав различные варианты решения скриптами, убедился что править нужно xrGame А так как я далёк от распаковок, перепаковок, исходников и самого С++, принял решение НЕХнуть xrGame ЧН и напялить код блокировки неподходящего слота на ЗП, что разумеется так же ни к чему не привело. Поняв что где-то внутри, в каком-нибудь dragdrop'e сидит строчка которая вопреки моему мнению говорит что "slot2 и slot3 считай одно и то же, прыгайте хоть туда, хоть сюда, значения не имеет" решил с ней бороться. Помогите пожалуйста её найти и направить на путь истины, сил моих больше нет Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
XinnogeN XinnogeN 2 Опубликовано 21 Августа 2020 Поделиться Опубликовано 21 Августа 2020 Всем доброго вечера! Подскажите пожалуйста, какие основные и дополнительные компоненты при установке VS2019 нужно установить для сборки движка? Заранее благодарен! Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Expropriator 2 107 Опубликовано 10 Сентября 2020 Поделиться Опубликовано 10 Сентября 2020 (изменено) Крайэнгина 2 отдыхает Изменено 10 Сентября 2020 пользователем Expropriator 2 1 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Zander_driver 6 163 Опубликовано 10 Сентября 2020 Поделиться Опубликовано 10 Сентября 2020 Только что, Expropriator сказал: отдыхает Мне кажется, что в этой теме, хорошим тоном считается постить фрагменты программного кода, а не скрины... Вот если б вы исходниками своего рендера поделились - это другое дело... Цитата 08.01.2012 в 03:30, xStream сказал(а): Те, у кого свои руки есть, копипастить это не будут, проще свое написать, которое тоже велосипедное, но более понятное автору. Мод, где не бывает одинаковых путей - Судьба Зоны. Подхалимов и льстецов не терплю. Не нравится, что я сделал? Сделай сам, как тебе нравится. Не умеешь - твои проблемы, я тоже когда-то не умел. Да и сейчас, не умею, не знаю, но делаю что хочу. Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Expropriator 2 107 Опубликовано 10 Сентября 2020 Поделиться Опубликовано 10 Сентября 2020 (изменено) @Zander_driver, специально для тебя премьера нового движка. Эксклюзив! https://yadi.sk/d/cF2kYZjrM00XDA Основано на движках SCS (1510), ALL(1602) Рабочий рендер R3 + R1 серверный. R1 еще пока в хламе. Я его не почистил. Меня прошу не материть за код Я для себя это делаю. Тестировать можно на старой базе движка SCS : https://www3.gameru.net/forum/index.php?s=&showtopic=71230&view=findpost&p=1680257 Мелкий патч: https://www3.gameru.net/forum/index.php?s=&showtopic=71230&view=findpost&p=1680614 Последний билд https://yadi.sk/d/4iHz5YDV2dUFAw Изменено 10 Сентября 2020 пользователем Expropriator 1 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Zander_driver 6 163 Опубликовано 11 Сентября 2020 Поделиться Опубликовано 11 Сентября 2020 (изменено) 2 часа назад, Expropriator сказал: SCS https://ru.wikipedia.org/wiki/SCS_Software (Тут была шутка но совпадение и правда забавное) впрочем, я все равно в этом не разбираюсь. 2 часа назад, Expropriator сказал: специально для тебя Спасибо, но меня и моё устраивает) А так, здорово что выложил, кому-нибудь пригодится. Изменено 11 Сентября 2020 пользователем Zander_driver Цитата 08.01.2012 в 03:30, xStream сказал(а): Те, у кого свои руки есть, копипастить это не будут, проще свое написать, которое тоже велосипедное, но более понятное автору. Мод, где не бывает одинаковых путей - Судьба Зоны. Подхалимов и льстецов не терплю. Не нравится, что я сделал? Сделай сам, как тебе нравится. Не умеешь - твои проблемы, я тоже когда-то не умел. Да и сейчас, не умею, не знаю, но делаю что хочу. Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Кот Смерч 0 Опубликовано 16 Сентября 2020 Поделиться Опубликовано 16 Сентября 2020 Где можно найти рабочие исходники SDK 0.7? Те что идут с исходниками движка скомпилил, но сдк не запустился. Да и размер LevelEditor.exe у меня получился 2.1 мб, а в сдк этот файл 2.4 весит. Т.е. скорее всего исходники не полные. Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
AndreySol 149 Опубликовано 16 Сентября 2020 Поделиться Опубликовано 16 Сентября 2020 @XinnogeN XinnogeN А исходники движка вы откуда взяли? Так, вот к ним и прилагается, обычно, все что необходимо для сборки. 1 Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Zander_driver 6 163 Опубликовано 16 Сентября 2020 Поделиться Опубликовано 16 Сентября 2020 10 минут назад, AndreySol сказал: к ним и прилагается, обычно Вообще-то, нет. Не всегда. Тем более речь об СДК, а не самом движке. Цитата 08.01.2012 в 03:30, xStream сказал(а): Те, у кого свои руки есть, копипастить это не будут, проще свое написать, которое тоже велосипедное, но более понятное автору. Мод, где не бывает одинаковых путей - Судьба Зоны. Подхалимов и льстецов не терплю. Не нравится, что я сделал? Сделай сам, как тебе нравится. Не умеешь - твои проблемы, я тоже когда-то не умел. Да и сейчас, не умею, не знаю, но делаю что хочу. Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
aromatizer 2 513 Опубликовано 16 Сентября 2020 Поделиться Опубликовано 16 Сентября 2020 11.09.2020 в 00:09, Expropriator сказал: Крайэнгина 2 отдыхает Для нормальной реализации фокусировки зрения и прочих размытий нужен шлем виртуальной реальности, потому как на обычном мониторе игрок может сфокусировать взгляд на произвольной области экрана (а не только на его центре) и увидеть некрасивое мыло, как, например, на твоем третьем скрине замыленное оружие. Как вариант, можно уменьшить интенсивность размыливания до минимального значения (дабы не коробило), но тогда возникает резонный вопрос: а зачем оно "жрет", если его почти не заметно? Цитата Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Expropriator 2 107 Опубликовано 16 Сентября 2020 Поделиться Опубликовано 16 Сентября 2020 (изменено) @aromatizer, r2_dof_kernel 1. естественно. У меня же 7 вкорячено. Последняя версия, уже точно. https://www.amk-team.ru/forum/topic/14029-scs-redux/?do=findComment&comment=1348758 Изменено 16 Сентября 2020 пользователем Expropriator Цитата Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
aromatizer 2 513 Опубликовано 16 Сентября 2020 Поделиться Опубликовано 16 Сентября 2020 37 минут назад, Expropriator сказал: r2_dof_kernel 1. естественно. У меня же 7 вкорячено. Я не тактик, а стратег.) Цитата Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Поделиться этим сообщением Ссылка на сообщение Поделиться на других сайтах
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.