Jump to content



Virtual Bus C++ Alpha Demo


  • Please log in to reply
43 replies to this topic

#41
NsNidPL

NsNidPL
  • Użytkownicy
  • 6 Posts:
0
Cześć, nie było mnie przez jakiś czas. Czy coś się zmieniło?

AdBot

  • Elita
  • Posts: ∞

#42
fr0zi

fr0zi
  • Developerzy
  • 277 Posts:
30
Witajcie w Nowym Roku 2018! :)

Życzę i Wam i sobie, aby ten rok dla vBusa był jeszcze bardziej udany niż poprzedni! :)

W ostatnich miesiącach mało było informacji z naszej strony na temat postępów prac, ale nie obawiajcie się - prace trwają nadal :)

Przez ten czas postanowiliśmy zmienić sposób symulacji fizyki autobusu - Mich zrobił próbny model z wykorzystaniem RayCast Vehicle udostępnionym przez bibliotekę Bullet Physics. Pobawiliśmy się tym chwilę i uznaliśmy, że daje on o wiele lepsze efekty zachowania autobusu niż poprzedni model (działający na zasadzie oddzielnych ciał fizycznych połączonych odpowiednimi połączeniami fizycznymi symulującymi m. in. zawieszenie).

Dzięki temu autobus nie buja się już cały czas, jak to było poprzednio, oraz nie podskakuje na drodze. Jedyny minus RayCast Vehicle jest to, że kolizje kół z otoczeniem nie są tak dokładne jak poprzednio - widać to gdy np. najedziemy kołem na krawężnik. Koło nie wjeżdża na niego płynnie, lecz w pewnym momencie "wskakuje" na krawężnik. Jest to typowe dla RayCast Vehicle i mimo, że nie jest do końca realistyczne, uznaliśmy, iż jest to i tak niewielka cena za wyeliminowanie kilku innych problemów. Zresztą, jako miłośnicy symulacji, raczej unikamy wjeżdżania na krawężniki ;) Mam nadzieję, że zgodzicie się z nami i zauważycie pojawiające się tutaj pozytywy, zamiast skupiać się na tej jednej wadzie ;)

Mich nadal pracuje także nad poprawieniem optymalizacji cieni oraz ogólnie renderingu.

Ja na razie zająłem się tworzeniem choćby prostego edytora map. Edytor powstanie przy użyciu frameworka Qt i będzie umożliwiał łatwiejsze umiejscowienie obiektów na mapie. A także import danych terenu z heightmapy i zapis do pliku binarnego, dzięki czemu teren będzie się wczytywał szybciej przy starcie gry. Ten mechanizm już działa w naszym silniku - plik binarny jest tworzony w locie przy pierwszym wczytaniu danej mapy, następnym razem jest użyty już plik binarny. Natomiast docelowo chcemy, aby heightmapa byłą używana tylko w edytorze do importy danych, później nasz silnik będzie już korzystał tylko z plików binarnych.
Jeśli ktoś śledzi mojego GitHuba, to może tam znaleźć repozytorium z kodem edytora. Oczywiście zaznaczam, że to bardzo wczesna wersja kody, dużo się jeszcze zmieni.

A teraz odpowiem w końcu Giepsonowi, bo i tak już długo czeka na odpowiedź :D

 Giepson, on 18 October 2017 - 18:00, said:

@fr0zi

1. Co do optymalizacji - czy program generuje tylko i wyłącznie fragment mapy wraz z obiektami widocznymi w "zasięgu wzroku" czy też cała mapa wraz z obiektami jest ładowana w pełni do pamięci a następnie wyświetlany jest fragment na który "patrzymy"?
2. Ciężko mi wytłumaczyć przyznam bez bicia. Mam wrażenie, że sposób działania autobusu (oskryptowanie itd.) jest żywcem wyciągnięte z starej wersji VB.
3. Patrz załącznik
5. Tak, ale po "którymśtam" restarcie aplikacji wszystko działa jak należy.

Mam stałe 60 FPS - ale wynika to z tego, że mam domyślnie włączonego w panelu nVidia V-SYNCa.

Ad. 1. W tym momencie dane całego terenu są ładowane do pamięci i wyświetlane, nie ma jeszcze mechanizmu, który zmienia szczegółowość siatki terenu, jeśli na niego nie patrzymy. Oczywiście pojawi się on w przyszłości. Natomiast Mich zaimplementował Frustrum Culling, który odrzuca obiekty niewidoczne w danym momencie na ekranie, więc nie są one renderowane. Czy to odpowiedź na Twoje pytanie?
Ad. 2. Działanie autobusu nie mogło być wzięce żywcem ze starego vBusa z prostego względu - tam implementacja działania autobusu, animacji itd była na zupełnie innej zasadzie :) U nas autobus jest fizycznym obiektem, poruszającym się dzięki symulacji praw fizyki, teren stanowi siatkę kolizji, po której się porusza autobus i inne obiekty. No i drzwi są u nas zbudowane tak samo z oddzielnych fizycznych obiektów fizycznych spojonych odpowiednimi połączeniami fizycznymi (np. zawiasy). W starej wersji była to po prostu zahardkodowana animacja, o ile się orientuję :) Także "under the hood" u nas działa to kompletnie inaczej, ale jeśli dla Ciebie wydaje się znajome, to w sumie chyba dobrze - ludzie szybciej się przyzwyczają ;)
3. Dzięki, Mich będzie to sprawdzał.
5. Ok, to dobrze. System wejścia/wyjścia i tak będzie jeszcze przez nas przebudowywany. Być może rozwiąże to problemy, które czasami się pojawiają. Oczywiście chcemy też dodać możliwość konfiguracji klawiszy w pliku. Docelowo oczywiście będzie zrobiony jakiś Launcher, w którym będzie można to wszystko konfigurować.

Dzięki za info o wydajności.

Ogólnie wiemy, że dużo rzeczy trzeba tu jeszcze zoptymalizować, ale z drugiej strony - ja odpalałem nasze demko na laptopie z i5 i jakąś grafiką Intel HD i nadal miałem 25 - 30 FPS (z cieniami). To i tak całkiem nieźle ;)

Do usłyszenia!
CPU & RAM: AMD FX 8120 @ 3.1 GHz & Kingston 8 GB DDR3
GFX: Sapphire Radeon RX 480 8GB GDDR5
OS: Windows 10 Professional 64-bit

Zasilacz: OCZ CoreXStream 500W
Obudowa: Fractal Design Define R3

#43
mich

mich
  • Użytkownicy
  • 23 Posts:
1
Witam
Na potwierdzenie tego, że prace nad nową wersją nadal trwają wrzucam kilka screenów w zimowej scenerii.

Attached File  snow4.png   546.33K   27 Number of downloads
Attached File  snow5.png   786.19K   34 Number of downloads
Attached File  snow6.png   625.47K   28 Number of downloads

Są to efekty pierwszych eksperymentów z systemami cząsteczkowymi. Za ich pomocą można symulować różne efekty np. opady śniegu, deszczu, ogień lub dym. Całość wymaga jednak jeszcze wiele pracy, przede wszystkim związanej z optymalizacją.

#44
okejokej

okejokej
  • Użytkownicy
  • 14 Posts:
2

View Postfr0zi, on 02 January 2018 - 10:45, said:

Zresztą, jako miłośnicy symulacji, raczej unikamy wjeżdżania na krawężniki ;)
Hehe, trudno się nie zgodzić, że z najeżdżania na krawężniki pasażerowie nie byliby zbytnio zadowoleni :crazy: I to niezadowolenie pewnie też można zaimplementować ;)

View Postmich, on 02 January 2018 - 20:51, said:

(...)
Echh, pięknie, tylko w realu mi brakuje takiej białej zimy ;)