Autor Wątek: Portale 2D  (Przeczytany 2313 razy)

bs.mechanik

  • Gość
# Wrzesień 06, 2011, 23:54:14
@vinc:
wyobraź sobie sytuację, że masz boxa, którego chcesz wturlać przez portale. Dzieląc ciało na 2 oraz łącząc te połówki jointem nie będzie się dało tak zrobić. Poza tym, jointy są mega niestabilne (przynajmniej w boxie 2d). Nigdy nie zrobisz joint który trzymałby ciała sztywno.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline vinc999

  • Użytkownik

# Wrzesień 07, 2011, 00:41:50
@up

O ile wydaje mi sie, ze daloby sie to zrobic, tak rzeczywiscie - nie mam pojecia na ile te jointy bylyby stabilne.
Aj wiec wydaje sie, ze idea upadla.

Mozliwe wiec, ze w razie potrzeb oni dobudowywali swiat.
Czyli w momencie zrobienia portala, oni po prostu przebudowywali geometrie planszy. Dodatkowo kopiujac wszystkie elementy z drugiej strony portala. W zasadzie to pozwalaloby nie tylko na sensowne robienie fizyki, ale rowniez na latwiejszy render.

Offline Hans

  • Użytkownik

# Wrzesień 07, 2011, 01:36:58
@Kos, grawitacja teoretycznie powinna działać osobno na każdą część po dwóch stronach portalu, coś jak siła wyporu niekompletnie zanurzonego ciała, ale pewnie jak się zapoda jedną siłę tam gdzie środek masy to nikt nie zauważy :)

W Portalu (coś gdzieś kiedyś czytałem technicznego o pierwszej części) użyli jakiejś bańki - lokalnej kopii mapy, bo sklejanie całej zajmowało im za długo, ale bez klonowania obiektów się raczej nie obejdzie, bo nawet jak będziemy przerzucać wszystkie okoliczne do 'bańki' to dalej pozostaną te na krawędzi. Ja osobiście użyłbym dwa obiekty połączone więzami kinematycznymi (taki pulley+gears)

Ogólnie polecam portalized na youtubie, całkiem ciekawe rozwinięcie Portala (między innymi kolizje obiektu z samym sobą)

Offline Liki

  • Użytkownik

# Wrzesień 07, 2011, 13:57:39
Cytuj
Usrednianie wielkosci fizycznych tez nic nie da. Zalozmy ze oba portale zrobione sa na jednej scianie. Wtedy ped wejsciowy = -ped wyjsciowy. Po usrednieniu = 0. Czyli co? Klocek nie rusza sie i nie da sie go ruszyc?

Wystarczy, ze każdy portal będzie miał przypisany wektor normalny i będzie to brane pod uwagę przy uśrednianiu wartości.

Portale np. w Box2D można zrealizować jako sensory do których dopisze się trochę logiki. Portale tworzy się w parach. Podstawowa zasada jest taka, że jeśli obiekt aktywuje sensor, to drugi sensor tworzy kopię obiektu wewnątrz siebie i dopóki oba obiekty będą w zasięgu swoich sensorów, tak działające na nie siły będą uśrednianie, oczywiście z uwzględnieniem wektorów normalnych sensorów. Portale można zrealizować jako dwa sensory o kształcie prostokąta, z czego tylko jedna ściana każdego z nich będzie stanowiła powierzchnię portalową, tak aby łatwo było określić stan wejścia i wyjścia w portal.

Jedyny limit jaki w tej chwili widzę, to fakt, że obiekt nie może być jednocześnie w dwóch portalach. Resztę da się zrobić, choć trochę zabawy będzie z uwzględnieniem faktu, że skopiowany obiekt będzie przez pewien czas np. siedział w ścianie. Dlatego trzeba będzie odpowiednio zorganizować grupy kolizji.

Moja metoda ma jeszcze tą zaletę, że można w łatwy sposób dodać np. skalowanie portali, czyli zmieniać płynnie wielkość obiektu, który przechodzi przez portal.