Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 11.10.2014, 12:32   #496
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Собрал игру со старым булетом( 2.78 ), тормозов от физики существенно прибавилось, но и "тряска" прекратилась. И еще на старой физике, когда залезаешь на лестницу персонаж подыхает, лестница создает выталкивающий импульс слишком сильный, но в новом такой фигни нет. Че за нах вообще? У булета дохлое комюнити и там ответа неделю ждать буду, может тут кто знает в чем дело?
__________________

(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 12:50   #497
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: [TrueHorror] - разработка

PhysX
(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 12:56   #498
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: [TrueHorror] - разработка

Havok
знакомый хвалит архитектуру и скорость
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 13:23   #499
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Ну это метод решения проблемы "в лоб". Мне не охота перелопачивать движок выдергивая оттуда буллет, ибо он там очень прочно корни пустил. Физик грешит "проваливанием" объектов сквозь пол, и Continuous Collision Detection не помогает. Кароч мне нужно решение проблемы с булетом, а не замена его другим движком. Но я понимаю что ответа мне не дадут и все придется самому решать.
__________________

(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 14:39   #500
ARA
ТЫ ЧООО?
 
Аватар для ARA
 
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений
(для 7,192 пользователей)
Ответ: [TrueHorror] - разработка

Сообщение от mr.DIMAS Посмотреть сообщение
Ну это метод решения проблемы "в лоб". Мне не охота перелопачивать движок выдергивая оттуда буллет, ибо он там очень прочно корни пустил. Физик грешит "проваливанием" объектов сквозь пол, и Continuous Collision Detection не помогает. Кароч мне нужно решение проблемы с булетом, а не замена его другим движком. Но я понимаю что ответа мне не дадут и все придется самому решать.
Попробуй обратиться к Coks юзеру. Он в своё время делал враппер буллета на блиц. Думаю, шарит
__________________
Вертекс в глаз или в пиксель раз?
(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 14:42   #501
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Это проблема новой версии булета, я не думаю что он с ней работал.
__________________

(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 15:44   #502
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: [TrueHorror] - разработка

Сообщение от Samodelkin
Проблемы с физикой могут быть от значения проникновения тел друг в друга, в буллете бывает что от релиза к релизу меняются некоторые значения по умолчанию и их лучше установить явно.
В буллете всё можно настроить и всё будет работать как надо.
К слову я с PhysX'а перешёл на буллит, потому что у PhysX'а есть проблемы с некоторыми компиляторами, в том числе с MinGW которым я пользовался, и на форуме ответили что они заинтересованы сотрудничать с теми у кого много денег большие проекты, а мелкие разрабы, если не хотят пользоваться тем софтом что и большие разрабы (то есть висуал студией), пусть сами решают свои проблемы.
Ну вот я проблему решил и взял буллет.

А ну да править ты должен сам, потому что ты лучше других знаешь свой проект, тут уж ничего не поделать, нужно интуицию развивать, иногда это лучше чем дебагер помогает.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mr_F_ (11.10.2014)
Старый 11.10.2014, 15:50   #503
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

А где у булета все настраивается? Я знаю только dynamicsWorld->GetDispathInfo()
__________________

(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 16:01   #504
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: [TrueHorror] - разработка

Там настраивать можно каждый отдельный объект того или иного класса.
Ты можешь сгенерировать справку через doxygen для конкретно своей версии исходников буллета, а можешь посмотреть онлайн документацию, но она может быть немного старее, ещё можешь посмотреть хедеры.
Отличия буллета от физикса, то что он не является чем-то внешним, работающим из коробки, тут заточка на то что ты буллет можешь интегрировать и перемешать со своими игровыми кодами. Например в GTA4 буллет использовался вместе с Euphoria и какими-то своими специальными движками для физики авто и т.п.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (11.10.2014)
Старый 11.10.2014, 17:16   #505
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Я карочи всё. Всё. Заебался. Подумываю от том чтобы использовать btKinematicCharacterController. Либо написать свой велосипед с перемещением при помощи рейкаста. Я и damping, restitution и им подобные параметры крутил и так и так и ниче. Как "дергается" игрок на наклонной поверхности так и дергается. Писец.

Сейчас у меня капсульный игрок, двигаю его SetLinearVelocity. Вот так просто. Видимо простота не всегда обеспечивает хороший результат
__________________

(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 17:27   #506
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: [TrueHorror] - разработка

Я поэкспериментирую с буллетом у себя, посмотрим.

Попробуй например SSAO пока.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (11.10.2014)
Старый 11.10.2014, 20:36   #507
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: [TrueHorror] - разработка

Пока я тут ещё экспериментирую, но как бы между делом: я буллет 2.82 еще пол года назад скачал, а вышел он год назад в октябре 2013.
Почему у тебя 2.81 считается новым?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (11.10.2014)
Старый 11.10.2014, 21:33   #508
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Я напутал все, у меня 2.83 - недавно качал, хз почему в память отложилась 2,81
__________________

(Offline)
 
Ответить с цитированием
Старый 11.10.2014, 22:13   #509
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 983
Написано 390 полезных сообщений
(для 634 пользователей)
Ответ: [TrueHorror] - разработка

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

В общем что-то похожее как у тебя получилось сделать с функцией btDiscreteDynamicsWorld::stepSimulation.
Там три параметра (два можно оставить по умолчанию).
Первый это дельта-время, то сколько прошло с прошлого вызова (то есть сколько нужно обработать), третий параметр это время минимального шага, а второй это предел количества разрешённых минимальных шагов, в случае если дельта-время будет больше обычного значения.

Например если у игры 60fps можно сделать так:
deltaTime = 1.0f / 60.0f;
stepSimulation( deltaTime, 4, 1.0f / 60.0f );
В данном случае будет один шаг, т. к. он равен дельта-времени.

А вот в случае если по каким-то причинам игра подзастряла на 3 кадра и получилось:
deltaTime = 3.0f * 1.0f / 60.0f;
теперь при вызове
stepSimulation( deltaTime, 4, 1.0f / 60.0f );
будет вызвано три шага.

А вот в случае если игра подзастрянет на 10 кадров, то всё равно больше 4 функция не обработает -- таким образом не произойдет большого неконтролируемого интервала.
Визуально это будет выглядеть как пауза, а не исчезнувший большой кусок времени.

Ну так вот, а если deltaTime будет меньше минимального шага:
deltaTime = 1.0f / 120.0f
stepSimulation( deltaTime, 4, 1.0f / 60.0f );
то начинаются как раз такие глюки с подпрыгиванием.

В общем ставить шаг точно равный fps тоже имхо не надежно, я делаю за кадр 2 шага.
deltaTime ~ 1.0f / 60.0f (то есть может немного гулять).
stepSimulation( deltaTime, 4, 1.0f / 120.0f );
Особых негативных последствий для производительности я не заметил, хотя у меня пока нет таких больших локаций как у тебя и стресс-тестов я не проводил.

Можно вообще отсоединить физику от реального времени:
stepSimulation( 1.0f / 60.0f, 1, 1.0f / 60.0f );
Тогда раз всё ровно, можно попробовать обойтись одним шагом.
Скорость игры будет зависеть от FPS (что тоже не плохо, если графический движок плавно адаптирует сложность графики и FPS не скачет).

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

Пока это одна из причин пригания объектов, может есть и другие...
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (11.10.2014)
Старый 11.10.2014, 22:45   #510
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Кароч наверное все таки баг в другом, я заметил что не на всех наклонных поверхностях такой косяк( можно сказать что этих поверхностей очень мало ). Я забил кароч на этот баг. Просто в этом месте на карте уберу наклон и все. Ища баг я потратил кучу времени, которое мог бы провести с пользой.

Я кстати сделал сохранения. В общем сделал некое подобие сериализации, но упрощенное - объект восстанавливает только изменяемые игроком или игровым процессом переменные. Работает довольно хорошо.

Так же поправил баги с вылетом - все было из-за инвентаря - особенно если тащить предмет в инвентаре с другого уровня.

Убрал бамп с бумажек, убрал холмик( автэ это все тебе )

Пятно к фонарю пока не добавил - все время просрал на борьбу с булетом.

Сделал пропуск заставки по нажатии пробела.

Ну и всякие маленькие изменения, коих много.
__________________

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Samodelkin (11.10.2014)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:03.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com