Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Ra

Strony: 1 ... 111 112 [113]
3361
Poszukuję, chcę zrobić / Odp: Warunki miejscowe we wpisach trainset
« dnia: 20 Września 2007, 00:29:42 »
Gdyby się komuś chciało to wpisywać, to piszę bardziej konkretnie. Opis warunków miejscowych dla składu przypisanego do toru określonego w trainset:
  • jest między trainset a pierwszym node ... dynamic,
  • zaczyna na początku linii od //$w i spacji,
  • zajmuje tylko jedną linijkę,
  • może być przed lub po //$o, nie ma to znaczenia,
  • po spacji następują parametry w postaci <zmienna>=<wartość>, np. a=1,
  • kolejne parametry oddziela się przecinkami.

Na chwilę obecną możliwe parametry:
  • type= typ pociągu, określa jedną literą przeznaczenie składu:
    • type=p - pasażerski,
    • type=t - towarowy,
    • type=s - specjalny,
    • type=l - lokomotywa luzem
    • type=n - zespół trakcyjny (niskie perony)
    • type=w - zespół trakcyjny (wysokie perony)
  • train= zalecana budowa pociągu - określa poszczególne pojazdy w składzie:
    • p - wagon pasażerski,
    • t - wagon towarowy,
    • l - lokomotywa
    • e - lokomotywa elektryczna
    • s - lokomotywa spalinowa
    • z - zespół trakcyjny
    • A..Z - wagony poszczególnych typów
    • {n} - powtórzenie pojazdu n razy,
    • {n,m} - powtórzenie pojazdu n do m razy,
    Przykład train=epppP - lokomotywa elektryczna z 3 wagonami pasażerskimi i wagonem pocztowym (train=ep{3}P oznacza dokładnie to samo),
  • random= zezwolenie na losowanie - dla każdej literki w train=:
    • 0 - nie podmieniać nic,
    • 1 - dozwolona zmiana tekstury w ramach grupy testur (np. jednego przewożnika),
    • 2 - dozwolona dowolna zmiana tekstury
    • 3 - dozwolona zmiana modelu,
    • 4 - dozwolona zmiana na inny rodzaj (np. EP08 na EP09),
    • 5 - dozwolona zmiana trakcji (np. EU07 na SU45),
    • 8 - możliwa podmiana całego składu (z zachowaniem charakteru towarowy/osobowy/specjalny),
    • 9 - można wstawić dowolny skład.
  • vmin= prędkość minimalna w km/h z jaką pociąg musi jechać, żeby zdążyć między stacjami wg rozkładu. Przykład vmin=57. Prędkość tę wyznacza się dzieląc czas przejazdu (bez postoju) między poszczególnymi stacjami przez ilość kilometrów między nimi i wybierając największą z nich.
  • vmax= prędkość maksymalna w km/h. Przykład vmax=140. Prędkość ta określa maksymalną prędkość, jaką pociąg może rozwinąć na trasie wg ograniczeń prędkości i dróg hamowania.
  • lmax= maksymalna długość składu w metrach. Dla pociągów pasażerskich - najmniejsza długość peronów na trasie, dla towarowych - użyteczna długość torów na stacji końcowej ewentualnie mijankach, na których musi coś przepuścić. Przykład lmax=300.
  • u= napięcie zasilające w woltach, jeśli inne niż 3kV. Przykład u=750. u=0 oznacza trasę niezelektryfikowaną lub przebieg z jazdą poza trakcją.
  • d= szerokość toru w [m].
  • rmin= minimalny promień łuków na trasie oraz zwrotnic, na których skład skręca, w [m].

Cytat: Przykładowy wpis
trainset PM1301 tor_start 10 0
//$o Jedziemy osobowym.
//$w type=p,train=epppP,vmin=57,vmax=140,lmax=300,d=1.435
node -1 0 SP45-032 dynamic (...)
oznacza, że podmieniając skład należało by się trzymać tego, że ma być to lokomotywa elektryczna z trzema wagonami osobowymi i jednym pocztowym, nie można włączać w skład taboru z ograniczeniem prędkości poniżej 60km/h, w zasadzie pojazdy powinny pozwalać na jazdę z prędkością 140km/h, a długość składu nie powinna przekroczyć 300m, bo będzie problem stanąć przy peronie.


Kolejne parametry (proszę o PW z propozycjami nazw):
  • maksymalne nachylenie w promilach (do wyliczenia mocy/obciążenia),
  • typ ładunku dla towarowych (w końcu "po coś" to wieziemy).

3362
@Mariusz1970, proponuję, abyś od swojego postu (65182) zrobił nowy temat...

Prawdę mówiąc, mi się jeszcze nie udało zmienić składów. Próbowałem w Quarkowie, ale coś namieszałem i nie chciało się to potem uruchomić. Chciałbym też zmienić w innych sceneriach, do których brakuje mi lokomotyw, ale też się zabieram do tego, jak do jeża. Moim zdaniem jest to zbyt skomplikowane (zwłaszcza dla kogoś, kto zaczyna). I jeśli byłby program, który by to robił, to życie byłoby dużo prostsze.

Mnie to osobiście interesuje w takim zakresie, że ściągam jakąś nową scenerię i z jakiś powodów mi nie działa. Uruchamiam program i ten pozwala mi w prosty sposób zrobić coś, co powoduje, że sceneria zacznie chodzić. Zauważ, że Ty zajmujesz się tym już ponad 2 lata (przynajmniej wg rejestracji na forum), masz bogate zbiory i duże doświadczenie. Możesz sobie raz ustawić składy na stałe i na tym poprzestać.

A ja dopiero co się podłączyłem i mimo mojej inteligencji wydaje mi się to skomplikowane, żeby tabor, którego nie mam zamienić na taki, który mam. Dziś próbowałem uruchomić pociąg sieciowy w Quarkowie i nie wiem, czemu to nie zadziałało (niemniej SM42 z węglarkami udało się pojechać). Nawet nie kojarzę, jak wygląda Z1, ani czym się różni od Adu. Może jakbym mógł sobie pozmieniać, to bym się tego dowiedział (szybciej).

Inną sprawą jest to, że jak mam sobie z czymś poradzić, to na ogół piszę do tego program... tak już mam...

Mnie wiele rzeczy zastanawia... Czemu ten towarowy staje na S1 w Skwarkach i dalej nic? Czemu AI po odwiezieniu pustych wagonów na kopalnię nie podczepia się do pełnych i nie jedzie z tym, jak to jest w misji manualnej (niewiele mu brakuje). Czemu się nie ładuje węgiel do easoów? Zdążyłem się zorientować, że Quarkowo to już żadna rewelacja, bo swoje lata ma. Ale ja jeszcze 2 miesiące temu nie wiedziałem, że takie coś istnieje i że może mnie zainteresować. Korci mnie, żeby poszukać bardzo starych wersji tras, żeby zobaczyć, jak to tam działało...

Być może to nie ma sensu, bo trasy przestarzałe, exe się zdewaluowało itd. Ale skoro nie ma nic nowego, SPT gdzieś daleko za horyzontem, a do "starego" ciągle coś powstaje - to może warto to pozbierać do kupy tak, aby niepotrzebnie nie robić zamieszania. Mimo upływu lat ciągle czytam nowe posty na forum o białych wagonach, braku lokomotyw i niektórych plików. Może by to rozwiązać zanim pójdzie się ten krok dalej w kierunku SPT?

Skoro się już zabrałem za instalator do "starego", to chciałbym to dokończyć. Bo jak zabiorę się za źródła SPT, to pewnie nie będę widział sensu w wspieraniu starej wersji. Chyba, że mi zainteresowanie przejdzie, w końcu jest tyle innych ciekawych rzeczy, które mógłbym/chciałbym zrobić.

Nie wiem, czy lista pobożnych życzeń pod moim adresem by coś dała. I tak robię to, co sam chcę. Jakby nie było, poza symulatorem kolei mam masę zaległych rzeczy do zrobienia, ale jakoś zeszły mi na dalszy plan... Nie chciałbym się angażować w dyskusję "po co?", póki jeszcze mi się chce coś robić. :)

Na tym uważam dyskusję nad sensem powstania programu za zamkniętą. Teraz już tylko konkretne i rzeczowe posty/propozycje/pomysły.
Akvin

3363
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 18 Września 2007, 18:44:33 »
Kolejna wersja testowo-rozwojowa (44kB, link w podpisie):
  • automatyczne wczytywanie include po FirstInit (ze względu na składy),
  • zakładka z wykazem pociągów (na razie byle jakim),
  • przyciski na panelu wczytania,
  • zablokowany rozmiar formy,
  • przymiarki do uruchamiania EU07.EXE (działa, ale nie sprawdza .chk).

3364
Forum / Odp: Nowy skrypt forum
« dnia: 18 Września 2007, 01:47:17 »
Ja sobie mogę użyć, ale w ogólnym przypadku lepiej jest zrobić przekierowanie. Jest to dosyć proste, ale musi to zrobić ten, co ma dostęp do plików na serwerze i zna PHP. Poza tym na forum jest mnóstwo linków w starej postaci. No i ktoś może mieć pliki .txt z linkami i mu teraz nie działają. Brak przekierowania wprowadza niepotrzebny zamęt.

Zauważyłem błąd - niedziałające listy (wyszczególnienia). Przykład jest tutaj: http://eu07.pl/forum/index.php/topic,2451.0.html.

3365
Poszukuję, chcę zrobić / Warunki miejscowe we wpisach trainset
« dnia: 17 Września 2007, 21:21:11 »
Jestem po lekturze instrukcji kolejowych, w których było dużo napisane o uwzględnianiu warunków miejscowych, zarówno podczas projektowania stacji, jak i zestawiania składów...

Proponuję, aby przynajmniej część informacji o warunkach miejscowych scenerii zawrzeć w formie komentarza do wpisu trainset, oznaczonego np. //$w, podobnie jak //$o opisuje misję. Parametry te były by użyteczne pod kątem zmiany składu:
  • Typ pociągu (pasażerski, towarowy, specjalny, lokomotywa luzem itd.). Jazda w misjach pasażerskich z wagonami towarowymi to trochę przesada...
  • Prędkość minimalna (ze względu na rozkład jazdy). Jeśli skład jest zbyt ciężki, a lokomotywa zbyt słaba lub tabor ma ograniczenie prędkości, to nie zdążymy na czas dojechać.
  • Prędkość maksymalna (ograniczenia prędkości na szlaku). Jeśli trasa pozwala na jazdę 160km/h i tyle zamierzamy wykorzystać, to nie ma po co zabierać wagonów z ograniczeniem prędkości 80km/h.
  • Maksymalna długość składu (w metrach lub ilość wagonów). Zasadniczo pociąg powinien mieścić się na stacjach i na mijankach, a pasażerski przy peronie.

Być może są jeszcze jakieś parametry, które warto by było uwzględnić, ale słabo się orientuję w temacie.

3366
Odgrzeję trochę ten temat, bo na ile się zorientowałem, to nie powstał program startowy, którym by można było zestawić sobie dowolny skład do prowadzenia na danej trasie oraz ewentualnie dowolnie zestawić pozostałe składy na trasie.

Zacząłem tworzyć program, którego głównym przeznaczeniem jest wyłapywanie brakujących plików w scenerii i ewentualnie pobieranie ich przez Internet. Nie potrzeba wiele, by nadawał się również na program startowy.

1. Program pobiera z katalogu /scenery listę tras dostępnych na danym komputerze
Jest zrobione.

2. Program pobiera z katalogu /dynamic/pkp/ listę dostępnego taboru.
To jest do zrobienia. Jak rozumiem trzeba by sprawdzać, czy są pary plików .chk i .mmd, z uwzględnieniem podziału na zwykłe, dumb i wrak. Można by wykorzystać plik dynamic.dat, albo stworzyć bazę zawierającą więcej informacji.

3. Program odczytuje z wybranej trasy ilość składów, ich umiejscowienie na torach, skład pociągów itd.
Jest zrobione (program wczytuje wszystko). Pewnym problemem mogą być składy zapisane w plikach include, zwłaszcza jeśli FirstInit nie jest w głównym pliku scenerii. (Chyba jest, nie?)

4. Użytkownik ma możliwość ingerencji w dostępne składy na trasie: zamiast EU07 chce pojechać EP09, zamiast 4 wagonów 112 chce pojechać składem złożonym z 7 wagonów Z2 itd.
Tu bym prosił o jakąś koncepcję wizualną, jakby to miało wyglądać, żeby było wygodne. Chyba dobrze by było posługiwać się przy tym miniaturkami. Czy robić miniaturki do każdego numeru lokomotywy oddzielnie?

5. Oczywiście zmiany możliwe są w obrębie taboru dostępnego na komputerze u danego użytkownika
W planach jest opcja pobierania plików przez Internet...

6. Po wyborze opcji Uruchom starter zapisuje plik z trasą i składami w jakimś pliku tymczasowym, zmienia wpisy dotyczące taboru na taki jaki chce użytkownik i odpala symka z trasą z tegoż pliku tymczasowego.
To jest do zrobienia. Jakoś trzeba by rozwiązać kwestię zmiany taboru na kilku sceneriach jednocześnie - wtedy dla każdej scenerii musiałby być oddzielny plik tymczasowy. A jeśli ktoś by chciał mieć kilka zestawów i używać ich zamiennie?

Pytania dodatkowe:
 7. Czy oprócz dynamic/pkp/ są planowane inne katalogi z taborem do jazdy (dynamic/db/? dynamic/skm/?) i czy ewentualnie da się jeździć samochodami i statkami? Ostatnio ktoś robi suwnice... jako że to też poniekąd jest to pojazd szynowy, może dało by się go prowadzić? Suwnica też będzie w dynamic/pkp/?

 8. Czy ograniczyć wielkość formowanych składów? Można by ustalić długość toru startowego, ale będzie to wymagać kilku minut na analizę. Poza tym długość składu powinna być dobrana do stacji znajdujących się dalej (skład powinien się mieścić w całości przy peronie lub na mijance). Myślę że długość składu (a także jego typ: spalinowy/elektryczny, pasażerski/towarowy/specjalny) trzeba by zapisać w komentarzu przed/w trainset, podobnie jak to jest z opisem //$o.

 9. Czy ktoś dysponuje wzorami na maksymalną prędkość składu w zależności od mocy lokomotywy i ciężaru? Ewentualnie innymi podobnymi, żeby nie wstawiać składów, których się nie ruszy, albo które się zerwą, czy też nie da się nimi zahamować (patrz wagony Villach).

Oczywiście nie chodzi mi o hamowanie radosnej twórczości przy formowaniu składów, tylko wyświetlanie informacji.

3367
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 16 Września 2007, 18:29:55 »
Nadal wersja testowa (42kB, link w podpisie):
  • tworzona lista plików dźwiękowych .wav,
  • tworzona lista plików .chk i .mmd,
  • uwzględniane tekstury pojazdów,
  • poprawione czytanie końcówki pliku,
  • możliwość wczytania tylko bezparametrowych include,
  • przymiarki do liczenia linii w plikach (myli się, jeśli kilka pustych).

Nadal nie jest analizowana zawartość plików .t3d i .mmd, przez co wyszukiwanie brakujących plików nie jest kompletne. Niemniej program już w dużym stopniu pozwala sprawdzić kompletność scenerii, a także poprawność wpisów. Czasem informacja o brakującym pliku wskazuje na błąd wpisu, np. brak scenery\bud\NastawniaKrLobzow.inc.inc - rozszerzenie wpisane podwójnie.

Niektóre scenerie mogą się wczytywać bardzo długo (kilka minut). Nie ma wskaźnika postępu, więc może sprawiać wrażenie, że się zawiesił. Kilka sekund może trwać usuwanie scenerii z pamięci (przy wyjściu z programu lub wybraniu innej).

Myślę teraz nad wyświetlaniem składów i sposobem ich edycji.

3368
Forum / Przekierowania HTTP 301 ze starych linków
« dnia: 14 Września 2007, 23:27:08 »
Proponuję zrobić przekierowania ze starych linków na nowe.

Np. Google pokazuje stare linki: http://www.google.pl/search?q=%22dynamic.dat%22 i wyświetlają one w większości 404. Szkoda zmarnować indeksowanie Google. Jeśli numery postów (parametr p) i tematów (parametr t) zostały bez bez zmian, to jest to proste do zrobienia. W razie problemów proszę o kontakt, pomogę napisać skrypt PHP.


3369
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 13 Września 2007, 19:17:03 »
Zrobiłem śledztwo i faktycznie są takie wpisy, że tych plików powinno brakować. Uruchomiłem program jeszcze raz. Na komputerze 600MHz sceneria jest przetwarzana prawie 7 minut. Tym razem pojawiły się braki tekstur textures\ms*, a także jeszcze jeden brakujący plik - textures\mc\blok4.bmp.

Podejrzewam, że na skutek jakiś błędów plik linia546_dane.scm nie został przetworzony w całości. Zauważyłem, że przetwarzanie SDR18.scn urywało się na na wpisie camera zawierającym jedno zero za dużo. Czyli na pewno program nie radził sobie z błędnymi wpisami. Były też problemy z //origin (...) //endorigin (program analizuje też składnię w komentarzach). Teraz jest to poprawione na tyle, że błędny SDR18.scn się wczytuje do końca. Być może coś w pliku linia546_dane.scm zostało potraktowane jako błąd składni.

3370
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 13 Września 2007, 02:09:23 »
Na razie program analizuje tylko pliki .scn i te włączane przez include. Rozpoznawane są tekstury dla node ... track, node ... dynamic, node ... model, node ... triangles, node ... triangle_strip i node ... triangle_fan, a także modele dla node ... model. Nie są jeszcze analizowane pliki we wpisach node ... sound, ani pliki .t3d, .chk i .mmd - być może coś jeszcze, do czego nie dotarłem. Dlatego na pewno listy brakujących plików nie są kompletne.

Nie jestem pewien, czy jest to szybkie. W przypadku trzech scenerii miałem wrażenie, że program się zawiesił - a on pracował przez kilka minut, zanim skończył. Na pewno działa wolniej, niż STV - ale to może z uwagi na większą ilość przetwarzanych danych (zapamiętuje trójkąty i kataloguje tekstury, które STV może pomijać).

3371
Publikacje / Odp: Trasa Drawinowo - Włodowice Zachodnie 160 km/h
« dnia: 12 Września 2007, 22:58:19 »
Gdyby ktoś miał problem z wyskakującym podczas ładowania scenerii taki komunikat:
Event2 "grabowek_lachy_toa_sem_distinfo" does not exist, to winą jest brak tego pliku: Scenery\TS1pYN.inc
Jest on na liście plików, których w paczce ze scenerią nie ma.


Zmoderowano
Uporządkowałem na nowo wątek.
Jeśli ma ktoś problem z uruchomieniem trasy, to proszę pisać w tym wątku:
http://eu07.pl/forum/index.php?topic=5955.0
Nowe posty z tym związne będą w ciemno kierowane na Bocznicę
Szanujcie do .. nędzy czytających ten wątek i pracę moderatorów, jeśli nie, to ja również nie będę miał szacunku.
To co napisałem nie dotyczy postów kol. Ra
Mariusz

3372
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 12 Września 2007, 20:31:03 »
Zrobiłem kolejną wersję (40kB):
 -poprawiona konwersja liczb z kropką dziesiętną;
 -wyświetlanie listy plików nieznalezionych;
 -zamiana błędnych wpisów na obiekty komentarza;

Potraktowałem tą wersją paczkę z plików EU07[1].part0*.rar, pod kątem brakujących plików. Wyniki są, jak poniżej:

Bochnia.scn:
 -textures\koniec1

Calkowo.scn:
 -scenery\bud\NastawniaKrLobzow.inc.inc

Jelitkowo.scn:
 -scenery\tr\L-STB1-3pK.inc
 -textures\kladka
 -textures\mc\blok4.bmp
 -textures\none48
 -textures\none49
 -textures\none50
 -textures\none51
 -textures\none52
 -textures\none53
 -textures\none54
 -textures\none56
 -textures\none57
 -textures\none59
 -textures\roof\MetalSinedPlate_Rusted1.bmp
 -textures\roof\Roof-RedTiles-aged2.bmp

Krewetkowo_*.scn:
 -scenery\detal\LampaHg-betdziur1.inc.inc
 -scenery\mc\krakowT-SkladowaFa.inc
 -scenery\pm\tablica_boh.inc
 -scenery\pm\tablica_kmt.inc
 -textures\10.0
 -textures\Concrete1.tge
 -textures\PKP\pkp\d6_4.bmp01

Krzyzowa.scn:
 -scenery\LJ\tele_I.inc
 -scenery\LJ\tele_P.inc

linia546_*.scn:
 -scenery\bizon\mb-blok_010405.inc
 -scenery\bizon\mb-dzialka_010405.inc
 -scenery\bizon\mb-kosciol.inc
 -scenery\bud1domtynk02.inc
 -scenery\images\ns.jpg
 -scenery\przejazd2tR-zrobtosam.inc
 -textures\undefined

Manewrowo*.scn:
 -textures\none34
 -textures\none35
 -textures\none38
 -textures\none39
 -textures\none40

Moczniki_*.scn: (jest komplet)

Nowy_Swiat.scn:
 -textures\mc\blok4.bmp
 -textures\Rudawa-nastdysp.tga

Quark_*:
 -scenery\bud\0dombale03.inc

SDR18.scn: (wpisy camera mają o jedno zero za dużo)
 -scenery\Bizon\bd1.inc
 -scenery\bud\biurowiec1.inc
 -scenery\bud\biurowiec5.inc
 -scenery\bud\blok11.inc
 -scenery\bud\stsdoladrewn02.inc
 -scenery\images\strzesowiec.jpg
 -scenery\PKP\przejazd1tRe45ss.inc.inc
 -scenery\PM\blok01.inc
 -scenery\slimson\wejtunel.inc
 -scenery\SSd5zpcpbIbp.inc
 -textures\Chodnik1.tga
 -textures\PKP\SBL\581
 -textures\PKP\SBL\581N
 -textures\PKP\SBL\591
 -textures\PKP\SBL\591N
 -textures\PKP\SBL\592
 -textures\PKP\SBL\592N
 -textures\pkp\W27_16.bmp
 -textures\PlatePlatform_side1.bmp
 -textures\PM\tablica_wost.bmp
 -textures\sck\ilowicamala.bmp
 -textures\Tm17

Testowo_*.scn: (jest komplet)

Zwrotnicowo.scn:
 -scenery\tr\-LSTB1-3pD.inc

3373
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 12 Września 2007, 02:01:17 »
Zastanawiające zjawisko. Tym bardziej, że u mnie wszystko działa normalnie. Mam cichą nadzieję, że jednak komuś się uda uruchomić mój program. Póki co odradzam testy, jeśli ktoś się nie czuje na siłach, by określić źródło problemów.

Znalazłem błąd w konwersji liczb. Ja mam ustawienia regionalne na kropkę (0.0) dziesiętną. Na Windows z ustawionym przecinkiem (0,0) dziesiętnym (pewnie większość) borlandowska konwersja AnsiString::ToDouble() się wysypuje na liczbach z kropką. Można albo przestawić chwilowo Windows na kropkę, albo poczekać na nową wersję.

3374
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 11 Września 2007, 22:37:23 »
Wszystkie biblioteki pochodzą z pakietu Borland C++ Builder Pro i nie są modyfikowane (mają daty z 1998/2000). Prawie każdy program stworzony tym kompilatorem będzie ich potrzebował. Komunikat o braku biblioteki jedynie uniemożliwia uruchomienie programu.

Mnie próba odpalenia programu zaszkodziła.
Coś Ci się uszkodziło?

Jeśli program nie znajdzie bibliotek, wyświetla komunikat, że ich nie ma. Nie mam niestety komputera z systemem bez Borland C++, żebym mógł sprawdzić, jakie to biblioteki. Włożyłem do archiwum trzy, których nazwy znalazłem w kodzie programu (vcl40.bpl, borlndmm.dll, CP3245MT.DLL). Wydawało mi się, że potrzebne były cztery, ale nie byłem pewien - czwarta to vclx40.bpl.

3375
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 11 Września 2007, 19:19:43 »
Hm, "ja wiedziałem, że tak będzie"... Wgrałem bibliotekę VCLX40.BPL do wcześniej podanego archiwum. Z nią powinno już działać.

Zrobiłem też nowszą wersję: [aktualny link w podpisie]
  • zamiana / na \ w nazwach plików,
  • sprawdzanie, czy plik istnieje (=1),
  • poprawione nazwy katalogów (brakowało s na końcu),
  • jeśli plik tekstury nie znaleziony, sprawdzanie .TGA, .TEX i .BMP,
  • domyślne rozszerzenie .INC dla pliku include (tak ma być?),
  • include w komentarzu nie jest już wczytywane automatycznie,
  • poprawiona analiza komentarzy // (było po wyrazie zamiast do końca linii),
  • blokada parsowania nieistniejących plików include.

3376
Inne niekolejowe / Odp: Dziwna arytmetyka w MaxScript
« dnia: 11 Września 2007, 01:08:22 »
Zapewne wynik wychodz 1.9999999 i po obcięciu części ułamkowej zostaje 1. To jest typowe zachowanie konwersji na integer. Spróbuj poszukać funkcji typu Round() i nią przekształcić. Może też pomóc inne zapisanie wyrażenia, np. 6.2*10-60.

3377
Tabor / Odp: Sprzęg po raz n-ty
« dnia: 11 Września 2007, 00:56:41 »
W ostatnim powinno być 0. Jak ustawiłem na 3 to udało mi się dopiąć, natomiast nie mogłem składem ruszyć w żadną stronę.

Zamykam.
Akvin

3378
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 09 Września 2007, 23:44:11 »
Na razie include ładują się tylko na życzenie. Nie ma jeszcze podstawiania parametrów (p*). Plik tekstowy dla include ładuje się tylko raz, a jest parsowany oddzielnie dla każdego wpisu.

Może nawyk jest dobry, ale dodawanie pustych konstruktorów i destruktorów dla kilkudziesięciu klas kończy się tym, że co jakiś czas znajduję jakąś klasę, do której jeszcze któregoś z nich nie dopisałem. :) W każdym bądź razie, nie łazi mi już gdzie nie powinien.

Z usuwaniem obiektów z listy poradziłem sobie w taki sposób, że zamiast wywoływać destruktor następnego z listy (co powoduje ogromną rekurencję, bo następny usiłuje usunąć kolejnego),
if (next) delete next; //usuwanie rekurencyjnewyjmuję ten następny poza listę i usuwam go pojedynczo.while (next)
 {p=next; //następny (tu na pewno coś jest)
  next=p->next; //skrócenie listy (tu może już być NULL)
  p->next=NULL; //obiekt wyjęty z listy nie ma ogona
  delete p; //i do pieca
 } //pętla opróżnia do zera

Nie mam pojęcia, jak to jest zrobione w Symku. Na pewno tam może być to zrobione prościej, bo nie ma potrzeby zapisania tego ani odporności na błędy składni. Ja chcę to zrobić tak, by po zmianach dało się to zapisać, a także by były analizowane wpisy w komentarzach. Zrobiłem już przymiarki do pomijania błędnych wpisów (program będzie wskazywał wadliwy fragment). W zasadzie to mogę już pokazać, co zrobiłem dotychczas. Program [aktualny link w podpisie] należy umieścić w głównym katalogu, tam gdzie EU07.EXE. Jest bezpieczny - jedynie czyta pliki i nie ma żadnego złośliwego kodu - ale za ewentualne straty nie odpowiadam. Mogą być potrzebne biblioteki Borlanda (993kB) - rozpakować w to samo miejsce, albo do katalogu SYSTEM Windows. Będę wdzięczny za przekazanie mi informacji, w jakich warunkach się wysypuje i plików scenerii, których nie czyta prawidłowo.


3379
Tabor / Odp: Sprzęg po raz n-ty
« dnia: 08 Września 2007, 23:41:22 »
Być może to profanacja, ale ja robię tak:
 1. Puszczam lokomotywę tak, aby jechała powoli w stronę wagonów. Na ogół bez zasilania silników.
 2. Wciskam [F4] i podchodzę blisko pierwszego wagonu.
 3. Ustawiam się tak, aby wagon mieć za plecami, a przed sobą widzieć hak.
 4. Czekam na lokomotywę.
 5. Gdy lokomotywa dotknie wagonu, naciskam [Insert], po chwili jeszcze raz.
 6. Sprzęg zostaje zaczepiony (bez podłączenia by się odbiła od wagonów).

Ewentualnie można uruchomić lokomotywę "zdalnie", już po ustawieniu się przed wagonem,

3380
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 08 Września 2007, 20:59:33 »
Nie chcę, żeby mi się składnia wywalała, jak ktoś dopisze event do trakcji i póki co nie wiem, jak go dopisać prawidłowo. Jest tak:
Cytat: Scenery.doc
2.1.2 Traction
(...)
CurrentEvent (opcjonalny) - zdarzenie które zostanie uruchomione gdy dynamic pobiera prąd z sieci.

Słowo novis znalazł mi parser. Jest w wielu plikach, podobnie jak unvis. Na przykład
Cytat: quark-testowo.scm
12590: node -1 0 none track normal 0.2 1.435 0.2 -1 1 1 flat novis
12591: -20.9722 1.10001 334.334  0.0  //point 1
12592: 0.0 0.0 0.0  //control vector 1
12593: 0.0 0.0 0.0  //control vector 2
12594: -20.9722 1.10001 334.634  0.0  //point 2
12595: 0
12596: endtrack

27061: node -1 0 none-stop track normal 10.0 1.435 0.25 20 20 128 flat unvis
27062: -75.7703 0.200012 -320.0  0.0  //point 1
27063: 0.0 0.0 0.0  //control vector 1
27064: 0.0 0.0 0.0  //control vector 2
27065: -75.7701 0.8 -326.709  0.0  //point 2
27066: 0
27067: velocity 5.0
27068: endtrack
Pierwszy jest w koźle za wagonami mieszkalnymi (wg testowo2.scn; WielkiKac_bocznica1), a drugi jest na końcu toru, z którego odjeżdża SN61 z wagonami (tor8).


Używam Borland C++ Builder 4.0 Pro. Zwiększenie stosu to rozwiązanie chwilowe, zawsze ktoś może napisać większą trasę bądź połączyć kilka istniejących. Przy parsowaniu nie ma problemu ze stosem, bo rekurencję tworzą tylko include oraz origin (w porywach też trainset). Problem jest przy usuwaniu obiektów, bo destruktor obiektu sprawdza, czy ma ogon i jeśli tak, to wywołuje destruktor tego ogona. W ten sposób wywoływane destruktory odkładają się na stosie i przy paru tysiącach się on przepłnia (np. dla quarkmc28.scm tworzonych jest 20255 obiektów).

Do tego mam jakiś zawirowanie z funkcjami wirtualnymi - przy śledzeniu destruktora trafiam do funkcji, której wywołania na pewno nie ma. Pomaga dopiero jawne deklarowanie pustych konstruktorów i destruktorów, co jest trochę upierdliwe.


Parser jest na ukończeniu. Poza przetestowaniem wyjątkowo rzadkich wpisów, do zrobienia mam teraz podmianę parametrów formalnych w include, a następnie tworzenie list poszczególnych rodzajów obiektów i plików. Przydało by się również łączyć komentarze z wpisami znajdującymi się przed albo po takim komentarzu, a na razie robione są z nich osobne obiekty.

3381
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 08 Września 2007, 01:38:49 »
Dzięki za komentarze.

Dopracowywuję parser składni... Aktualnie zastanawiam się, jak obsłużyć zmienną ilość liczb w node ... lines. No i zdarza się przepełnienie stosu przy rekurencyjnym usuwaniu wpisów z pamięci po wyborze innej scenerii lub wyjściu z programu. Muszę to zrobić inaczej.

Potrzebuję wyjaśnień co do szczegółów składni (lub działających przykładów) w zakresie:
 1. Wpisu node ... traction z eventem - nie znalazłem takiego.
 2. Wpisu node ... line_strip - nie znalazłem takiego.
 3. Wpisu node ... line_loop - nie znalazłem takiego.
 4. Słowa novis zamiast unvis - są jeszcze jakieś wyjątki?

3382
Pomoc w tworzeniu / Słupy w okolicy semaforów.
« dnia: 02 Września 2007, 17:19:41 »
Bardzo bym prosił, aby trzy słupy trakcji zaraz przed semaforami nie były pełne betonowe, tylko kratownicowe metalowe (z prześwitami). Dzięki temu nie zasłonią świateł. Zauważyłem takie coś na SBL przebiegającej w pobliżu linii kolejowej.

3383
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 02 Września 2007, 02:46:06 »
Na razie zdefiniowałem sobie klasy bez metod. Zastanawiam się, jaka dokładność danych jest istotna. Z założenia dane mają być przechowywane w postaci binarnej (nie jako tekst), ale z możliwością ponownego zapisania jako tekst.

Spotkałem się z czymś takim:node -1 0 none triangles material ambient: 149.94 149.94 149.94 diffuse: 149.94 149.94 149.94 specular: 229.5 229.5 229.5  endmaterial GrassDarkGreen2.tga
300.0 0.0 -400.0 0.0 1.0 0.0  66.6998 33.4331 end
300.0 0.0 -500.0 0.0 1.0 0.0  66.6998 0.166399 end
200.0 0.0 -400.0 0.0 1.0 0.0  99.9665 33.4331
endtri
Czy jeśli zaokrąglę wartości ambient:, diffuse:, specular: do liczb całkowitych 0..255 - to będzie duży problem? (Liczba 149.94 to 12 bitów na kolor, czyli RGB miałoby 48 bitów, czyli 281*10^12 możliwych kolorów - ma to sens?) Moim zdaniem można je spokojnie zamienić na 150 i 230, ale być może jestem w błędzie.

Dla współrzędnych w przestrzeni przyjąłem, że 0.001 wystarczy (1mm), a dla współrzędnych na teksturze - 0.000001. Póki co oba typy są jako double float, ale myślę też o zastosowaniu stałoprzecinkowych na bazie int64.

3384
Na warsztacie / Odp: Instalator+Starter+Edytor (Rainsted)
« dnia: 30 Sierpnia 2007, 23:46:06 »
Wyobrażam sobie to w taki sposób, że autor scenerii (bądź ktoś, komu dana sceneria działa bezbłędnie) - zapuszcza program, który tworzy spis używanych plików wraz z ich datami modyfikacji oraz sumami kontrolnymi (CRC). Dzięki temu będzie można rozpoznać sytuacje, gdy plik ma tę samą nazwę, a inną zawartość. Inny użytkownik pobiera sobie plik scenerii oraz ten spis plików i dalej następuje synchronizacja - albo pobiera sobie brakujące pliki z serwera, albo program sugeruje przenosiny posiadanych plików pomiędzy katalogami, albo modyfikację pliku scenerii. Zakładam przy tym, że na serwerze plików będzie utrzymany porządek i tam będzie ktoś pilnował, by pliki trafiały do właściwych im katalogów.

Czytałem, że ktoś już coś robił. Być może wszystkiego nie doczytałem. Ale nie widziałem koncepcji pobierania plików online ze wspólnego serwera, na którym jest porządek w plikach (tzn. jest jakiś klucz na ich układanie).

http://www.eu07.pl/forum/viewtopic.php?t=6127 Archiwum SFX
 - o samorozpakowywujących się archiwach

http://www.eu07.pl/forum/viewtopic.php?t=5045 Instalator Dodatków
 - o instalatorze paczek i zawiłym ich tworzeniu

http://www.eu07.pl/forum/viewtopic.php?t=4386 Szopa Loader
 - pomysł i stary program, który już nie działa

Doprowadzanie eventów do działania mnie też gryzie, ale nad ewentualnym edytorem będę myślał później. Akurat w "quarkmce" próbowałem ruszyć machajką i wywalało mi "null track" - okazało się, że między torami jest 1mm przerwy. Poprawiłem i zaczęło działać dobrze. Program mógłby także dopisywać na wszelkich zakończeniach ukryte tory nachylone pod kątem 30° i z dużym współczynnikiem tarcia, aby wszystko co tam wjedzie się samo zatrzymało...


Jeśli trasy się gryzą, widzę takie rozwiązanie:
1. ustalić (automatem) jakie konkretnie pliki są dla danej trasy (nazwa+data+CRC),
2. ustalić (ręcznie), gdzie te pliki powinny być umieszczone i pod jakimi nazwami,
3. zmodyfikować (automatem) pliki .scn dla nowych warunków,
4. zapisać (automatem) te reguły zmian do ewentualnego powtórzenia w przyszłości.

Można zrobić tak, że CRC pliku zostanie dodane do jego nazwy, a następnie ta nazwa zostanie użyta w plikach scenerii. Na serwerze będzie komentarz do tego pliku, iż nie zaleca się jego używania w nowych projektach, ale jest wymagany w scenerii nnn...

To nie ma być instalator w sensie instalatorów programów pod Windows (InstallShield). To ma być raczej synchronizator plików i analizator danych... Coś bardziej jak Windows Update.

Nie wierzę specjalnie w paczki całościowe, że ktoś coś takiego jeszcze zrobi. A uważam, że warto to pozbierać w całość - i lepiej będzie to zrobić w sposób dynamiczny i rozproszony. Przynajmniej odpadnie problem poprawek do starych plików oraz szarych plam.

Dla mnie najważniejsze z tego jest wykonanie spisu plików będących w użyciu, powiązanie ich ze sceneriami oraz ściąganie pliku we właściwej wersji z serwera HTTP. Tego mi najbardziej brakowało, gdy zaczałęm jeździć... Widzę szare wagony i nie wiem czemu. Poczytałem, dociągam jakieś pokątne archiwa i się poprawiło. Ale nadal zdarzają się szare i pilnowanie tego zniechęca. A prosty program wraz z pewnymi działaniami organizacjnymi by to załatwił.

Niemniej zanim zacznę cokolwiek robić, chcę się dowiedzieć, co mają do powiedzenia ludzie bardziej zorientowani. Z doświadczenia wiem, że tak jest lepiej.


Do budowy mirrora potrzebny będzie serwer z ok. 2GB wolnego miejsca (chyba wystarczy...), PHP, MySQL, dostępem do crona i wget.

3385
Publikacje / Tekstury kontenerów
« dnia: 30 Sierpnia 2007, 18:00:53 »
Ostatnio podany link mi wyświetla:
Cytuj
to download this file use "Internet Explorer"
ADSTechnology
Please open this link in "Internet Explorer"
A akurat IE mi się wiesza, dlatego go nie używam.

A może jeszcze te by się dało zrobić:
http://www.mscgva.ch/about_us/gallery.html
(chodzi o żółte).

3386
Na warsztacie / Instalator+Starter+Edytor (Rainsted)
« dnia: 30 Sierpnia 2007, 00:53:57 »
Witam!

Stosunkowo niedawno dotarłem na te strony, wcześniej mnie to nigdy nie interesowało (kolej poniekąd tak). Patrzę na to z mojego punktu widzenia, jako osoby biernie zainteresowanej koleją i w miarę zorientowaną w informatyce.

1. W zasadzie chcąc sobie "pojeździć", w ogóle nie bardzo wiadomo, jak się do tego zabrać. Gdzieś są jakieś paczki, jakieś trasy, jakieś poprawki. Na stronie głównej eu07.pl jest jeszcze jako taki porządek (tylko nieco przeterminowany), ale na forum jest mnóstwo dodatków, większość w postaci linków do nieistniejących (już) plików.

2. W wątkach na forum przeplatają się sensowne dyskusje z wtrąceniami "nie działa mi". Ciężko się to czyta, zwłaszcza w wątkach mających po kilkanaście stron. Nieco zbyt dużo złośliwych uwag...

3. Brak jakiejś dalszej wizji. Mimo przeczytania kilkuset wątków nie wiem, jakie trasy powstają, jakie utknęły, czy jest jakaś perspektywa dla "starego symka" i jaka jest dla SPT.

4. Braki w dokumentacji. Z linków w postach na forum wysnułem wniosek, iż kiedyś na eu07.pl znajdowały się pliki z dokumentacją, które z bliżej nieokreślonych powodów zniknęły.

5. Gdzieś dopiero zza tego rozgardiaszu wyłania się obraz, jak wielka praca została wykonania, żeby to wszystko zrobić. Nie wypróbowałem jeszcze wszystkiego (trochę ciężko za tym nadążyć), jest parę rzeczy, których nie rozumiem (np. dlaczego nie ładują się wagony w Dejawach). Ale na prawdę jestem pod wrażeniem całokształtu.

6. Z wielu wątków na forum wynika dla mnie brak instalatora pakietów. O tym poniżej.


Pomysł na instalator pakietów:

1. Program przeglądałby pliki .scn w celu stworzenia listy plików wymaganych dla danej scenerii. Lista taka miałaby przynajmniej 2 zastosowania: uzupełnianie brakujących oraz tworzenie paczki instalacyjnej do wysłania.

2. W celu rozróżnienia różnych wersji plików program powinien uwzględniać daty oraz sumy kontrolne plików (np. CRC16).

3. Program powinien współpracować z serwerem plików (protokół HTTP). Na serwerze powinny być umieszczone wszystkie oficjalnie wypuszczone pliki (modele, tekstury, includy, dźwięki itd.), we wszelkich dostępnych wersjach (data+CRC). Być może również nieoficjalne wersje testowe.

4. Program powinien umożliwić edycję składów w plikach, zmianę nieba, edycję lub aktualizację pliku "dynamic.dat", być może również edycję plików .chk czy .mmd ze szczegółowym objaśnieniem, co jest co i do czego. Niemniej nie ma sensu kopiować STV.

5. Program powinien sobie radzić ze spakowanymi archiwami. Jest taki pakiet 7zip, którym można by się posiłkować.

6. Do każdego pliku (ścieżka+nazwa+data+CRC) powinna być możliwość wpisywania komentarzy (umieszczanych na serwerze). Komentarze mogłyby być pobierane razem z plikiem. Na podstawie komentarzy można by sobie wybierać odpowiednią wersję pliku (ewentualnie program sam by o tym decydował).

7. Na wszelki wypadek powinna być obsługa mirrorów (serwerów zastępczych).

8. Niektóre osoby (tworzące trasy lub je poprawiające) miały by prawo zapisywania nowych plików bezpośrednio z instalatora.

9. Większa liczba osób (również ograniczona) miała by prawo do komentowania plików.

10. Przy okazji analizowania scenerii, program mógłby sprawdzać pewne rzeczy. Np. niedopasowania torów o kilka mm (tzw. null track), tory zerowe, pionowe, zbyt długie, pliki przeniesione do innego katalogu... Ogólnie informować o innych tego typu błędach.

11. Ewentualnie wykonywać konwersję "starych" scenerii do nowego układu plików (podmiana tekstur i modeli we wpisach node).


Co mogę zrobić:

1. Napisać taki program, o ile ktoś by ze mną współpracował w zakresie jego testowania i zgłaszania mi uwag. Zbyt wiele już rzeczy zacząłem robić samotnie dla siebie i wiem, że to nie jest dobry punkt wyjścia.

2. Dostosować posiadane przeze mnie skrypty PHP do obsługi serwera plików.

3. Zaoferować miejsce i transfer na moim serwerze. Aktualnie posiadam wolne moce, które by się do tego nadawały. Ewentualnie mogę też zrobić jeden mirror. Ktoś inny by musiał uruchomić jeszcze jeden lub dwa.


Czego oczekuję:

1. Powstrzymania mnie, jeśli takie coś już istnieje. Bo może o czymś nie wiem... Nie czuję misji do robienia "lepszej pułapki na myszy". Nie pociąga mnie też tworzenie konkurencji.

2. Rzeczowych wypowiedzi w temacie.

3. Jeśli to możliwe, udostępnienia parsera i klas zastosowanych w symulatorze.

4. Pomocy przy dopracowaniu wyglądu i opisów. Ja się czuję dobrze w przetwarzaniu danych i strukturach abstrakcyjnych, natomiast komunikacja z ludźmi mi gorzej wychodzi.


2009-03-06 Zmiana tytułu wątku.

3387
EU07 Simulator English forum / Odp: Help is needed ;)
« dnia: 29 Sierpnia 2007, 03:03:41 »
Hello!

I'm not a specialist in matter of creating routes - I try to understand this since several days. However, I can answer you a bit...

1. First you need to have an idea, a plan, a design, how it should look like. You can paint it with pencil or use a real map. You must exactly know what you want to get. This is the most important part.

2. Some people use 3D graphics softwere like 3dmax or gmax to create the vectors part of scenery. I'm not deep in this, I don't know details. With this softare you can enter routes, render previews and correct details.

3. Then, some special scripts are used to geneate the .scn files that are used by the simulator. There's no a way back. From this point, all other corrections are done in Notepad or other text editor. You must know how the commands are built, what is where in files. All the events are written manually.

4. To view the results, you can use the Szopa Track Viewer, also called STV. It shows tracks, tractions and many parametrers, but not all. It cannot be used for editing - you edit files with text editor and reload data to STV.

5. Beside the vectors and events, you need also models of buildings, tranis, cars, etc. and textures for them. You need to make a lot of photos and convert them into usable textures.

6. There's a lot of corrections needed. Usualy it takes half year to several years to make something sensible. You need to put a lot of time and work. Many people who start a own route, did not finish it due to diffuculty of the process.


I hope this helps. If you have a good idea, some spare years and you really want to learn a lot and do own route against all difficulties - please do it. Oterwise - forget it at the start.

3388
Symulator / SRTM inaczej
« dnia: 25 Sierpnia 2007, 23:16:28 »
Witam!
Chciałbym dorzucić moje doświadczenia w temacie SRTM.
Skoro jest już ten wątek, wkleję to tutaj...

Jakiś czas temu wzięło mnie na przetwarzanie plików wysokościowych SRTM, do których ktoś podał link (http://netgis.geo.uw.edu.pl/srtm/Poland).

Ponieważ akurat mieszkam w okolicy 19°E 52°N, ściągnąłem pliki jej dotyczące. Pierwszym etapem przetworzenia było stworzenie pliku BMP, z odcieniami szarości od 0 do 255 w zakresie od minimum do maksimum wysokości na danym obszarze. W moim rozumieniu (bo nie czytałem dokumentacji do tych plików), w plikach jest po 1200 wysokości na stopień, zarówno długości jak i szerokości (co 3 sekundy kąta). Podane są one w metrach npm. Jest ich 1201, a nie 1200, dlatego, że powielone są wysokości z kolejnego południka i równoleżnika. Zszywając 2 takie kwadraty, należałoby usunąć jedną skrajną kolumnę wartości.

Pierwszy problem, jaki napotkałem, to były punkty z wpisaną wysokością 32768, podczas gdy normalnie wysokość jest w przedziale rzędu 90 do 280 (kopalnia Bełchatów: od 1 do 394). Wygląda na to, że wartość 32768 występuje w miejscach zbiorników wodnych. Na skutek drobnej pomyłki zacząłem od kwadratu 19-20°E 51-52°N, gdzie wyraźnie widać wykop kopalni oraz hałdę.

Jasna plama u góry to wzgórze, na którym znajduje się Łódź. Regularne kształty wokół (figury o dobrze zarysowanych brzegach) to lasy. Druga jasna plama poniżej, to okolice Tuszyna. Czarne koryto po prawej, idące w dół, to Wolbórka. Poniżej z białymi punktami (wspomniane 32768) to jezioro Sulejowskie. Jeszcze niżej i bardziej na środku widać hałdę kopalni a obok wykop. (Widać, gdzie w wykopie zbiera się woda.)


Tutaj, na czterokrotnym powiększeniu, widać lasy w okolicy Koluszek (u góry po środku) oraz układ torów przebiegających przez las. W lewo do Łodzi (nad lasem, słabo to widać), skosem w lewy dół do Piotrkowa, w prawo w skos do Radomia. W górę do Warszawy, czego nie nie widać.

Po eksploracji sąsiedniego kwadratu, wziąłem się za swój 18-19°E 51-52°N. Widać na nim doliny Prosny (po lewej) oraz Warty (po prawej). Charakterystyczne jest zakole Warty (na dole). W prawym, górnym rogu jest jeszcze Ner.


Ponieważ interesowała mnie okolica Poddębic, zrobiłem sobie mniejszy obrazek (301×201 pikseli), odpowiadający wojskowej mapie topograficznej M-34-2-B. Znajdujące się w pliku przedział wysokości to 96-172 (77 różnych). Chciałem sobie wygenerować z tych danych scenerię. Przyjąłem, że generowany obszar (15' dł. × 10' sz.) ma 17250×18550 metrów (320km²). Oznacza to, że punkty wysokościowe wypadają co 57.5m w długości (na obrazku w poziomie) oraz 92.75m w szerokości (pionie). Proporcja między nimi to 100:161 oraz 62:100. (Prawie złoty podział...)

Wygenerowałem scenerię - po 2 trójkąty na każde 4 punkty wysokości (120 tysięcy) z teksturą grass.bmp (jako wektor normalny dałem 0 1 0). Pierwsza próba dała plik 30MB oraz trójkąty widoczne od spodu. W zbliżeniu jedna zielona plama.

Zdecydowałem się nie czekać więcej na generację i wczytanie tak dużego pliku i ograniczyłem teren do 1/3 w długości i 1/2 w szerokości. Wyszło więc 100×100 punktów, 5750×9275 m i plik wielkości 5MB (20 tysięcy trójkątów). Po kilku dalszych próbach i oglądaniu krawędzi uznałem, że potrzebne będą jednak wektory normalne, bo "po wyjściu" na środek wszystko się zlewa, a nierówności terenu są widoczne jedynie z profilu (na brzegu scenerii i krawędzi horyzontu).

Wektory normalne [nx,nz,ny] postanowiłem wygenerować w sposób uproszczony. Dla każdego punktu powierzchni z(x,y) wyliczałem średnią zmiany wysokości (nachylenia) w długości zx=(z(x+1,y)-z(x-1,y))/2 i szerokości zy=(z(x,y+1)-z(x,y-1))/2. Następnie z proporcji wyliczałem współrzędne nx i ny wektora normalnego (zakładając, że wektor normalny długości 1m jest prostopadły do nachylenia X oraz Y - czyli przeciwprostokątnych trójkątów prostokątnych o bokach zx i 57.5m oraz o bokach zy oraz 92.75m). Współrzędna nz została wyliczona tak, aby wektor miał długość 1. Wyglądało to już nieco lepiej, ale nadal było dalekie od sensu.

Kolejny pomysł polegał uzależnieniu tekstury od zawartości mapy wojskowej. Odpowiedni fragment (5'×5') przeskalowałem do kwadratu 100×100 pikseli. Pierwotnie miało to być tylko odróżnienie obszaru lasu (zielone), ale narysowałem też piksele na drogach (żółte), linii kolejowej (czerwone) oraz rzekach i zbiornikach wodnych (niebieskie).


To, co mi wyszło wyglądało już jak jakiś teren, ale nadal nie układało się w większy sens. Po bliższym przyjrzeniu się i nałożeniu obrazka wysokości na obrazek treści okazało się, że są one przesunięte względem siebie o 3 piksele w poziomie i 1 w pionie (porównywałem zarysy lasów).


Przesunięcie pikseli względem siebie (obrazek powyżej) spowodowało, że sceneria zaczęła już przypominać znaną mi okolicę. Ostatnim pomysłem było kilkukrotne zwiększenie różnic wysokości (razy 7 to już przesada, ale 3 do 5 daje całkiem ciekawy efekt).

Moim zdaniem wnioski są następujące:

1. Trzeba uważać na współrzędne geograficzne. Nie ma gwarancji, że mając na myśli 19°E 52°N trafimy za każdym razem na ten sam punkt na każdej mapie (plik wysokości SRTM, wojskowa mapa topograficzna, Google maps, GPS). Różnice mogą być rzędu 200m, przez co nie wiadomo, które uważać za absolutnie właściwe. Być może wynika to z tego, że mapa wojskowa ma "Układ współrzędnych 1942", a około 1992 wprowadzono jakaś zmiany.

2. Bardziej optymalnym układem do celów tworzenia realistycznych scenerii wydaje się być siatka kilometrowa z map wojskowych (widziałem też wytartą siatkę na mapie turystycznej, ale po pozostałościach da się ją odtworzyć). Siatka kilometrowa gwarantuje (przynajmniej teoretycznie) synchronizację obiektów z dokładnością do 25m niezależnie od miejsca. Po ustaleniu położenia danego przecięcia w terenie można z dowolną dokładnością (1mm) ustawić elementy w scenerii. Przy odrobinie staranności można tę siatkę przenieść na inne mapy (plany miast 1:25000, geodezyjne 1:10000). Można też poprawić dokładność poprzez zaznaczenie wielu przecięć na mapie docelowej i pozycjonowanie siatki metodami statystycznymi (np. najmniejszych kwadratów). Wadą siatki kilometrowej jest to, że w niektórych obszarach wymagane jest "szycie" sąsiednich siatek pod kątem zależnym od długości i szerokości geograficznej. (Zawsze będzie jakiś problem z rzutowaniem sfery na płaszczyznę.)

3. Raczej mało realne jest automatyczne tworzenie scenerii z mapy. Należało by stworzyć narzędzie, które wczyta mapę wojskową jako tło i pozwoli zwektoryzować określone linie (tory, koleje, rzeki, linie wysokiego napięcia, krawędzie lasów, warstwice). Układ warstwic można by weryfikować danymi SRTM po wypozycjonowaniu map. Dopiero taka mapa wektorowa nadawała by się do automatycznego generowania scenerii. SRTM by się zdało głównie do kreowania wzgórz znajdujących się w większej odległości (powyżej 2km).

4. Przydała by się opcja upraszania trójkątów miejsc będących w większej odległości od interesujących nas pozycji (np. od torów - nie ma sensu dokładnie odwzorowywać wzgórz, które są 3km od linii kolejowej, ale niemniej są widoczne z daleka). Wydaje mi się, że 120000 trójkątów (plik 30MB) to bardzo dużo, jak na niewielki obszar 320 km² (15' N-S × 10' E-W), a ich rozdzielczość nie jest wystarczająca! Quark ma powierzchnię dwukrotnie większą przy pliku 6MB. Można też sobie darować trójkąty nie widoczne z toru, chociaż wtedy ghostview straci na uroku.

4. Atrakcyjną alternatywą mogłoby być zdobycie wektorowych map geodezyjnych.

Strony: 1 ... 111 112 [113]