Symulator EU07 (i nie tylko) > Na warsztacie

 Zabawy z OpenGL 3.2/3.3+

<< < (3/4) > >>

Ra:
Muszą usuwać, gdy zamiast E3D dostają T3D. W prawie wszystkich przypadkach jest to związane z poprawieniem modelu T3D. Wczytywanie T3D jest niekorzystne przede wszystkim ze względu na konieczność policzenia wektorów normalnych, czego czas rośnie z kwadratem liczby trójkątów w submodelach.

W E3D można by wprowadzać dalsze zmiany, jak wyszukiwanie identycznych wierzchołków i wprowadzenie indeksów, rozpoznawanie zwielokrotnionych kształtów (np. wystarczy jedna kopia osi, a w T3D każda musi mieć osobno siatkę). Jednak z ankiet przeprowadzonych wśród użytkowników wynika, że czas wczytywania ani zagadnienia dotyczące plików modeli nie są kluczowe. Na pierwszy plan wysuwa się zapis stanu symulacji oraz oświetlanie scenerii, niemniej zagadnienia te dotyczą wygody i estetyki, a nie samej symulacji.

Z typowo symulacyjnych rzeczy należałoby uealastycznić zależności w sterowaniu lokomotyw poprzez wyprowadzenie ich z C++ do zewnętrznego języka, co wiąże się również uealstycznieniem definiowania animacji w kabinach. Druga potrzebna sprawa to syntezator nagrań dźwiękowych dla kierownika oraz operacji typu próba hamulca, bo obecnie jest to trochę zbyt sztywno robione. Trzecia rzecz, to synchronizacja w multiplayerze. Jako czwartą dałbym przejrzenie kodu pod kątem zacinania się. Nawet na sprzęcie z 60 FPS w każdym miejscu są zauważalne przycięcia. Podejrzewam, że może to być związane z kompilowaniem obiektów w sektorach, a być może są jakieś pętle/rekurencje w fizyce. Być może coś by się dało wydzielić do osobnego wątku (np. kompilację obiektów), ale z tym trzeba ostrożnie, bo szukanie błędów w wątkach będzie udręką.

Tolein:
@ShaXbee Może warto popracować nad skryptami, tzn. przede wszystkim stworzyć skrypty generujące .e3d i przede wszystkim pozwalające twórcom zadbać o optymalizację modelu. Przykład: jeżeli twórca stworzy jedną oś, a pozostałe ustawi w modelu jako klony, to .e3d pozwala na zapis takiej właśnie optymalizacji (siatka osi zapisywana jest jednorazowo, klony to tylko indeksy odnoszące się do oryginalnego submodelu oraz właściwe transformy).
A i użytkownicy Blendera też liczą, że kiedyś ktoś im przygotuje skrypty.

Sawi:
Skrypt generujący e3d zrobił jakiś czas temu @ISDR. Zatem nie trzeba nad tym pracować. Do Blenedra owszem by się przydały. Tym bardziej, że to darmowy program.

ShaXbee:
@Ra: Przyjrzalem sie Pythonowi (CPython/PyPy), Javascript (V8) i Lua i szczerze mowiac ten ostatni mi sie najbardziej podoba - banalnie sie inetegruje z C, jest relatywnie niewielki, ma latwa skladnie i jest uzywany w wielu grach. Co do normalnych - dawno, dawno temu wrzucilem patch ktory to robil w O(n)
@Tolein: Tak, pracuje nad supportem Pythona, ale chcialbym zeby modele byly w nieco bardziej elastycznym formacie, ktory nie wymaga recznie pisanych parserow...

ShaXbee:
Mam zrobione okolo 70% Pythonowych bindingow biblioteki flatbuffers, ktora mozna by uzyc do serializacji modeli. Czy ktos podjalby sie napisania skryptu do Blendera?

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej
Powered by Advanced Topic Prefix Pro
Powered by SMFPacks Likes Pro Mod