Jump to content



fr0zi

's Photo

fr0zi

Joined: 08 Aug 2010
Offline Last Active: Feb 14 2018 18:22
*****

In Topic: Virtual Bus C++ Alpha Demo

02 January 2018 - 10:45

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

View PostGiepson, 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!

In Topic: Virtual Bus C++ Alpha Demo

17 October 2017 - 19:22

@Giepson, dzięki za przetestowanie i opinie :)

Ad. 1. Optymalizacja jest konieczna, wiemy to doskonale. To demo to jedynie prototyp, w żadnym wypadku ostateczna wersja, więc i nad optymalizacją będziemy pracować.
Ad. 2. Możesz rozwinąć o jakie schematy dokładnie chodzi? Nasz obecny kod, poza użyciem modeli ze starego vBusa, nie ma z nim praktycznie nic wspólnego.
Ad. 3. Długie ładowanie dema wynikało z czasu potrzebnego na wygenerowanie siatki terenu z heightmapy. Mich dodał już rozwiązanie tego problemu. Jest zaimplementowane w kodzie na Githubie. Natomiast ciekawa sprawa z tym skyboxem i artefaktami. Nikt przed Tobą nic takiego chyba nie zgłaszał. Możesz zrobić screena jak to wygląda?
Ad. 4. :)
Ad. 5. To znaczy, że nie działają klawisze?

Mógłbyś napisać ile średnio masz FPSów podczas jazdy? Z czystej ciekawości.

Jeszcze raz dzięki za testy :)

In Topic: Virtual Bus C++ Alpha Demo

03 October 2017 - 18:51

Witamy @Giepson :) Ile to już lat minęło? :D

Dzięki za miłe słowa. Podkreślam jedynie, że kod tworzymy wspólnie z Michem od samego początku, więc to nasza wspólna "rewolucja" ;)
Cieszymy się, że mamy już coś do pokazania ludziom i że im się to podoba :) Powoli pracujemy dalej.

W tym momencie ja pracuję nad prostym edytorem map, Mich testuje model RayCast Vehicle pod kątem implementacji, a w następnej kolejności będziemy myśleć o systemie przystanków i pasażerów, aby można było się już czymś bawić :)

A jeśli jeszcze nie próbowałeś naszego demka to zapraszam do pierwszego postu w tym temacie, albo tutaj: https://github.com/f.../vbcpp/releases

Również pozdrawiam i mam nadzieję, że teraz będziesz tu zaglądał częściej :D

In Topic: Virtual Bus C++ Alpha Demo

16 September 2017 - 18:47

Witam wszystkich :)

Mam dla was mały, szybki update.

Ze względu na wakacje, prace nad kodem nieco zwolniły tempa, ale i tak w wolnych chwilach pracowaliśmy dalej.
Mich zajął się dodaniem cieni słonecznych, ja natomiast zacząłem implementować autobusy przegubowe.

Na deweloperskim buildzie wygląda to tak:

Attached File  cienie_przegubowce.png   532.55K   76 Number of downloads

Mich cały czas pracuje nad optymalizacją cieni. Ja jestem w trakcie modyfikacji modelu autobusu przegubowego. Trzeba dodać mechanizmy otwierania drzwi i ogólnie dostosować go do naszego kodu.

No to tyle :) Do usłyszenia i pozdrawiam!

In Topic: Virtual Bus C++ Alpha Demo

23 July 2017 - 19:07

Ufff, przez parę ostatnich dni forum nie działało... Już się bałem, że umarło całkowicie :)

AI, podobnie jak i inne pojazdy na drogach oczywiście byłyby fajnie. I chcielibyśmy je kiedyś dodać, natomiast to dopiero plany na przyszłość. Na razie mamy jeszcze sporo rzeczy z dotychczasowym kodem.

Co do wydajności - zgadzam się, nie jest tak źle jak się z Michem obawialiśmy ;) Jeśli na kilkuletnim sprzęcie aktualny kod, bez żadnych optymalizacji, działa z szybkością 20-30 FPS, to jest to zadowalający wynik. Oczywiście optymalizacje się pojawią, pracujemy nad tym.

No i dzięki za pobranie demka i test :)