Posts Tagged system
AGE VFS
Posted by moriturius in Programowanie on Wrzesień 7, 2008
Ostatnio do AGE dodałem obsługę wirtualnego systemu plików. Zainspirował mnie artykuł Tomasza Dąbrowskiego: http://dabroz.scythe.pl/2008/07/17/wirtualny-system-plikow-vfs .
O ile funkcjonalność jaką oferuje ten “VFS” można podpiąć pod wirtualny system plików. Tak na prawdę chodziło raczej o wrzucenie danych plików do jednego wielkiego pliku. Ogromną zaletą rozwiązań przedstawionych w artykule jest szybkość działania. Potraktowanie nazw plików funkcją hashującą wpływa mocno na prędkość wyszukiwania i dodatkowo sprawia, że wpis w hash-table dla każdego pliku ma taki sam rozmiar. To z kolei pozwala łatwiej stworzyć takie pliki VFS bo nie trzeba zapisywać nazw plików zawartych wewnątrz.
Tutaj jednak pojawia się problem. Nie powoduje on wielkich problemów, ale jednak istnieje i może stać się uciążliwy – z takiego pliku z danymi nie da sie odczytać nazw plików (bo są tam tylko hashe), a to jest pewien problem, jeśli programista pracujący nad projektem zapomni co wrzucił do pliku.
Można ten problem rozwiązać na dwa sposoby:
- Dodać na końcu pliku tablicę nazw plików, a na początku informację, gdzie jest nazwa każdego pliku
- Utworzyć w programie generującym pliki VFS możliwość zapisu projektu
Rozwiązanie pierwsze pozwala na podgląd jakie pliki są zapisane w systemie, a to z kolei pozwala na ich łatwy eksport z pliku.
Drugie zaś pozostawia plik systemu plików “niedostępnym” oraz pozwala na modyfikowanie systemu plików po prostu przez stworzenie go od nowa z nowymi plikami.
Ja postanowiłem wybrać drugie rozwiązanie i napisałem program AGE-VFS. Narzędzie napisane jest z pomocą wxWidgets więc powinno kompilować się też pod Linuxem (co sprawdzę w pszyszłości
).
Ostatnią fażą dodawania do AGE wirtualnego systemu plików było oczywiście dodanie klas obsługujących wczytywanie i wyszukiwanie danych w pliku. To jednak okazało się być mało pracochłonne.
Ostatecznie postanowiłem sprawdzić jak działa VFS i wczytać jakiegoś WAVe’a. Szybko okazało się, że w moim programie do tworzenia VFS był mały błąd, który skutecznie psuł tworzone pliki
Naprawiłem go jednak i w końcu mogę powiedzieć, że AGE potrafi obsługiwać bardzo prosty system plików (o ile można go tak nazwać…)
Particle System: rekultywacja ;)
Posted by moriturius in Programowanie on Listopad 8, 2007
Jako że w internecie nie ma nic konkretnego na temat Particle Systemów – postanowiłem zajrzeć do źródeł Irrlichta (tam jest aż za nadto konkretnie
). Pooglądałem sobie to tak przez 5 minut wczoraj i dzisiaj rano już wpadł mi do głowy pomysł jak można to rozwiązać. Ciężko powiedzieć, że jest on innowacyjny bo opiera się mocno na tym z Irrlichta, ale ważne że działa
Postanowiłem stworzyć klasę ageParticleEmitter, która zajmuje się jedynie ustawianiem cząsteczek w pozycji początkowej i ustawianiem długości ich życia. ageParticleSystem przyjmuje wskaźnik do klasy bazowej emitera, a to daje możliwość definiowania niestandardowych (box i point) emiterów. Na przykład parabolicznych lub liniowych:


Chcę jeszcze napisać ageParticleAffector dzięki czemu będzie można kontrolować zachowanie cząsteczek przez stworzenie odpowiedniej sub-klasy.
Rozwiązania, o których napisałem nie są niczym niesamowitym, ale dzięki ich zastosowaniu można stworzyć niesamowite efekty
Particle System
Posted by moriturius in Programowanie on Listopad 7, 2007
Staram się znaleźć coś na temat programowania Particle Systemu. Chciałem poznać jakieś utarte ścieżki, żeby nie odkrywać koła na nowo i co znalazłem? Nic! Każdy artykuł opisuje Particle System w inny sposób co prowadzi do różnej implementacji.
Wygląda na to że będę musiał odkryć jednak koło na nowo. No trudno.
Particle System
Posted by moriturius in Programowanie on Listopad 7, 2007
Następną rzeczą jaką wypadałoby się zająć jest Particle System. Nie mam jeszcze zielonego pojęcia jak powinien on wyglądać. Dzisiaj po południu mam nadzieję się tym zająć.