forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Глюки с коллязиями. (http://forum.boolean.name/showthread.php?t=3793)

ABTOMAT 04.07.2007 09:52

Re: Глюки с коллязиями.
 
vlad, не, у меня как раз так:

UpdateWorld
RenderWorld

и при чём тут тунельный эффект?

johnk 04.07.2007 10:00

Re: Глюки с коллязиями.
 
А может так?

UpdateWorld()
RenderWorld()

Вдруг поможет

moka 04.07.2007 11:18

Re: Глюки с коллязиями.
 
Эх...
Выкладывай код применения гравитации к персонажу.

Никакой разницы что так:
UpdateWorld
RenderWorld
что так:
RenderWorld
UpdateWorld

Вообще UpdateWorld, это процесс технический, и его не нужно ставить рядом с рендерингом, т.к. Рендеринг нужно ограничивать если УПС (UPS - Update Per Second, пройденый технический цикл (Не Рендер)), ниже например 60.

Ещё раз говорю:
Цитата:

коллищиться будет Через Раз, тоесть при коллизии объект оттолкнётся, а потом гравитацией опять примкнётся, потом опять и опять, тоесть будет через раз: примкнул\оттолкнулся. Поэтому и дёрги.

HolyDel 05.07.2007 02:10

Re: Глюки с коллязиями.
 
еще раз говорю:
Цитата:

1. Посмотри в сторону МоКи.
ето имеется ввиду именно первый его пост.;)

Цитата:

Вообще UpdateWorld, это процесс технический, и его не нужно ставить рядом с рендерингом, т.к. Рендеринг нужно ограничивать если УПС (UPS - Update Per Second, пройденый технический цикл (Не Рендер)), ниже например 60.
лишнее.

1. UpdateWorld - пересчитывает коллизии и переставлят объекты туда, где они должны стоять по мненю движка. отсюда следует что алгоритм для правильной отрисовки должен быть таким:
ставим объекты так_как_хотим_мы
провреям коллизии чтоб объекты стояли так как_думает_движок
рисуем все_ето.
почему прыгает:
1. коллидится не через раз, коллидится все время когда игрок ПЕРЕСЕКАЕТ треррайн (другое дело, что он его персекает через раз), дело в том что он у тебя не всегда персекается (если ето происходит при движении то еще все понятно, но если ето проиходят прыжки на месте - мне лично непонятно в чом тут дело, какая сила заставляет).

alcoSHoLiK 05.07.2007 02:42

Re: Глюки с коллязиями.
 
Нафига такой гемор с PositionEntity? Ты делаешь 4 вызова функций за раз, когда можно сделать один Move(Translate)Entity. Причем PositionEntity может игнорировать коллизии. В этом случае, если объект переместился под землю, он может не сразу выбраться оттуда. При использовании Move(Translate)Entity объект остановится перед преградой. Могут еще возникнуть проблемы с гравитацией, если она криво сделана.

BlackDeath 09.09.2007 23:52

Re: Глюки с коллязиями.
 
На сколько мне помнится я когда-то уже с таким сталкивался. Решал просто, помоему так, но могу ошибаться, надо пробывать:

опускаем игрока вниз под действием гравитации
если игрок столкнулся с препятствием именно снизу (путем нормали столкновения находиться), то вычисляем высоту терраина в позиции игрока и ставим игрока уже в эту позицию, тогда его никто не будет оталкивать :)


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot