|
3D-программирование Вопросы, касающиеся программирования 3D мира |
11.02.2009, 18:59
|
#61
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Re: Обсужение учебника по PhysX Wrapper для Blitz3D
нда, отклычи физикс и выучи блиц... для начала...
разумно делать физ модель чтобы расталкивать физ объекты...
это возможно - делаешь физическое тело и всё...
|
(Offline)
|
|
12.02.2009, 01:30
|
#62
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
NitE, а ты используешь в своих играх пули? если да то как проверяешь попадание ентити в физ тело? что, кроме пик энтити вообще никаких альтернатив?
|
(Offline)
|
|
12.02.2009, 02:38
|
#63
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Хм, насчёт пулей это вообще отдельная большая тема, уже поздно, могу позже написать.
Насчёт персонажа - используй Капсулу - очень удобно. Если у тебя очень технологичная игра, и важен RagDoll и его динамичное взаимодействие с миром, придётся делать целый RagDoll и уже им орудовать.
Пули конечно проверяются по RagDoll'у, а не по цилиндру..
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.02.2009, 03:04
|
#64
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
ARTMAN, да, целесообразно, я так делаю (капсула с отключенным поворотом по осям). Кстати это будет шустрее чем если дополнительно врубать блицовую коллизию по полигонам.
Найт, ты сам-то делал, чтоб говорить?
Насчёт капсулы - самый оптимальный вариант Причём можно так сделать, что никто и не заметит, что это на самом деле капсула (ящики отскакивают как положено)) (у меня так). Капсула хороша тем, что почти не жрёт вычислений.
Если важно точное моделирование физики костей, то можно делать так: оболочка - по-прежнему капсула, к ней "пристёгнута" модель, но к каждой кости модели привязывать синематик-хулл и отключить капсуле коллизию с динамикой, оставить только со статикой. А синематики будут распихитвать ящики и т.п. Но ето имхо лишнее, хотя и позволяет всё моделировать очень точно.
Высшая степень точности - это нечто подобное Euphoria - где все кости изначально физические, и где анимация создаётся программно. Таким образом не только кости действуют на динамику, но и динамика - на кости. Ну, в GTA4 наверное уже видели. Но это требует нехилого знания анатомии человека + мышц и т.д., короче придётся штудировать спец. литературу чтобы получить качественные движения и кушать будет только так, но нет ничего невчозможного - было бы желание (кстати я вижу более дешёвый метод получения похожего эффекта, но не хотел бы пока что озвучивать до тех пор пока не удостоверюсь в его состоятельности)
Короч капсула - самое лучшее для игрока. Всё остальное - только если это действительно требуется и без этого не обойтись.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
12.02.2009, 15:50
|
#65
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Найт, ты сам-то делал, чтоб говорить?
|
да, делал.
|
(Offline)
|
|
12.02.2009, 18:19
|
#66
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
ABTOMAT, спасибо что развернул мой вопрос! +n!
Насчёт стрельбы (сразу оговорюсь что не реализовывал, но считаю это наглядно реальным и оптимальным).
Есть класс пуль, у пуль есть параметр скорости полёта, это зависит от оружия, длины дула, и калибра пули. К примеру натовские пули, из M16 (достаточно длинный ствол), имеют начальную скорость пули ~900 м/с. Тоесть она пролитает почти киллометр в секунду.
Зная скорость полёта пули в секунду, мы можем узнать сколько она пролетела за один такт, для этого нам нужно узнать продолжительность такта:
TickLenghtMS = (CurMS - LastMS)
TickLenghtMS% - длительность такта в MS
CurMS% - текущее системное время в MS (функция MilliSecs()).
LastMS% - прошлое значение CurMS, до присвоения ему нового данного текущего системного времени.
Предположим что TickLenghtMS=16.667 - это примерно 60 кадров в секунду.
Значит пройденный путь пули за один такт равен:
BulletTickLenght=BulletSpeed/float(TickLenghtMS)
BulletTickLenght# - Длина пройденного пути в метрах (как и единица указания скорости).
BulletSpeed# - скорость пули, у нас она 900.
BulletTickLenght будет примерно: 53.999, тут конечно нужна максимальная точность, чтобы где-то не оплошать.
Значит столько метров пуля пролетела за такт, делаем от прошлой позиции пули в направлении вектора полёта, RayCast пик, и если точка пересечения с динамикой не дальше чем BulletTickLenght метров, тогда пуля попала в цель.
Далее задача исходя из скорости полёта пули, точки пересечения, веса пули, и направления полёта, применить импульс к динамическому объекту, чтобы он соответствующе себя вёл при поподании в него. По моим наблюдениям, во всех играх это поведение очень отличается!
Если поподание в статику, то импульс применять не нужно, но тут есть другой моммент, этот метод просчёта, даёт хорошую возможность реализовать отскоки, т.к. есть чёткие данные для этого: вектор пика, вектор пикнутой плоскости, далее немного математики, и получим вектор отскока. И будут у вас стрелы из арбалета как в HL2!
Но тут есть один моммент, если в моммент просчёта первого такта, точка коллизии была чучуть длинее чем длина пройденного пути, а на следующий такт, тот объект двигаясь, уже ближе стал, то в слудующем пике, точка будет уже позади пули. Тут нужно чётко пересмотреть просчёт, либо делать какие-то зазоры на пиках, толи ещё чего. Но естественно такой шанс совпадения Очень невелик, но он есть, и с ним можно иногда сталкиваться, особенно если стреляешь по большому колличеству в тебя летящих объектов.
Такая сложноватая система по сути себя не сильно оправдывает, и я рекомендую обойтись вообще без скорости, и делать мгновенные пики. Но если кто-то хочет по задротничеть - почему бы и нет Это хорошая фича в игре, темболее с ней можно приятно визуализировать полёт пули! Простым отрезком от прошлой до текущей точки полёта пули, такой прозрачненький шлейфик - и будет реальный полёт пули, а если ночью, так вообще как на роликах с ютуба.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.02.2009, 19:12
|
#67
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Да это элементарно:
делаем пик, получаем координаты попадания, вектор и дистанцию
заносим их в новый элемент типа "пападания пули"
в зависимости от дистанции включаем таймер, который обрабатывается в цикле перебора попаданий.
как таймер истек - бум-бах-чмок (мясо), импульс на физобъекты и тд, все что нужно
элемент удаляем - он отработан
делов на 10 минут с отладкой
__________________
|
(Offline)
|
|
12.02.2009, 19:35
|
#68
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
tormoz, если полёт пули будет дольше чем 2 секунды, в твоём варрианте на пути пули может что-то встать, тогда твой варриант будет слишком этим бросаться в глаза, при этом если поподание просчитывается в моммент выстрела, и поподаем в двигающийся объект, то представь как будет выглядеть, если это ОЧЕНЬ быстрый к примеру поезд, бум-бух-чмок, произойдёт уже за километром, даже если пройдёт 100мс будет сильно заметна разница.
|
(Offline)
|
|
12.02.2009, 20:20
|
#69
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
зачем делать задержку полета пули ?? делаем просто пик + проверку на дистанцию и в зависимости от этого уменьшаем импулсь
|
(Offline)
|
|
12.02.2009, 20:26
|
#70
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
NitE, ты постоянно тупишь.
Читать ещё раз:
Такая сложноватая система по сути себя не сильно оправдывает, и я рекомендую обойтись вообще без скорости, и делать мгновенные пики. Но если кто-то хочет по задротничеть - почему бы и нет Это хорошая фича в игре, темболее с ней можно приятно визуализировать полёт пули! Простым отрезком от прошлой до текущей точки полёта пули, такой прозрачненький шлейфик - и будет реальный полёт пули, а если ночью, так вообще как на роликах с ютуба.
|
|
(Offline)
|
|
12.02.2009, 20:36
|
#71
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
так я непонял, ты отвечал на чейто вопрос ? если да то пост был ему адресован, а если нет то зачем вообще столько бесполезной информаций ?
|
(Offline)
|
|
12.02.2009, 20:44
|
#72
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
NitE, иди соси сосочку, ты начинаешь реально выбешивать.
Я тебе объяснять не буду зачем нужна та или иная информация. Эт форум, комьюнити, и его задача нести информацию, если твой мозг не видит в этом информации, тогда гуляй мимо, и не пости дебильных постов. Будь я модером в этом разделе, сразу бы потёр твоё сообщение #69.
Если тебе нужны + к постам, есть раздел: Болтовня.
КОНЧАЙ ТУПИТЬ! Иль ты добиваешся чтобы другие не постили?
Если по правилам получу бан на срок, не обижусь, и поделом, отдохну..
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
|
|
12.02.2009, 21:26
|
#73
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
1. ничего сосать не собираюсь
2. ты пости сколько хочешь, и я буду постить что хочу
3. ябы на товем месте просто не писал-бы пост #70
4. + не нужны, нафига они мне )) ?
5. я не туплю и ничего не добиваюсь
6. зачем бан ? ненадо никаких бан
такие посты кстати лучше в в оффтоп )))
я между прочем отлично знаю как я тут всех достал, но придется с этим мирится, потомучто я такой вот тупой флудер (или вечный бан )) )
|
(Offline)
|
|
12.02.2009, 21:38
|
#74
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
NitE, глупенький ты просто, флуди скока хочешь, но не обижай других, и тебя ни кто не попытается обидить.
Твои посты заставляют о тебе считать, что твоё неаргументированное убеждение является истинным, на самом деле оно выглядит глупо, во первых ты себя не утвердил как корректного и весьма успешного программиста, ни проектами, ни наработками, во вторых, отсутствие аргументации доводов - всегда вызывает недоверие и сомнения, т.к. читатателей много больше чем ты один, и один раз тебе проаргументировать намного рациональнее, чем утруждать десяток читателей делать это за тебя.
Спустись с неба, и прислушайся, я только хорошего желаю, ничего плохого.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.02.2009, 21:39
|
#75
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Ответ: Обсужение учебника по PhysX Wrapper для Blitz3D
Вспомнилась тема на ГА, где они с Небанкой разбирались кто из них умнее
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Tadeus за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:43.
|