Uwaga ! Uwaga !
W dniu 29 grudnia 2019 roku zmieniliśmy silnik naszego forum PoilshSeamen.
Ze względu na to że dotychczas używany silnik był przestarzały (pracował od maja 2005 roku), był pełen luk i błędów, podjęliśmy decyzję o zamknięciu tego forum i otwarciu nowego.
Stare (to) forum jest dostępne "tylko do odczytu". Nowe zaś wymaga ponownego zarejestrowania użytkownika.
Adres się nie zmienia. Dalej jest to
Imię: And Pomógł: 37 razy Dołączył: 09 Wrz 2008 Posty: 4398 Skąd: Gůrny Ślůnsk
#181 Wysłany: 18 Lipiec 2016, 17:05
Racja przydało by się wsparcie OW (AI). od razu do implementacji pod okręty AI.
Kwestia dostrzegania i identyfikowania to wogóle grubsza sprawa.
Wilekie okręty (pancerniki) maja bardzo duży zasięg widzenia (nawet wykluczając radar). Teraz dochodzi kwestia ropoznania typu jednostki (w zasadzie swój/obcy). Potem mamy rozpoznanie statków cywilnych (bandera) oraz uwzględnienie trudnych warunków atmosferycznych (generalnie mgła) oraz rozpoznawanie celu w nocy.
W nocy cel można oświetlić, więc znów inaczej to wygląda...
BTW. Kiedyś zrobiłem fajny algorytm który działał w oparciu o kolor pikseli, chyba najbardziej wierny działaniu ludzkiego oka - nie wiem tylko czy Kanaron może odczytać kolor pojedynczego piksela w zadanej lokalizacji...
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#182 Wysłany: 18 Lipiec 2016, 17:18
Z tego co wyczytałem da się odczytać kolor piksela.
Dla AI myślę, że zrobię to prościej:
Sfera jako zasięg widzenia. Wszystko co w niej to jest dostrzeżone. Oczywiście promień sfery to stała * modyfikator. A modyfikator jest zależny od warunków.
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#183 Wysłany: 18 Lipiec 2016, 19:30
Wracając jeszcze do koloru piksela... Sprawdziłem jak to zrobić i nie jestem do tego przekonany. Da się odczytać piksel z tekstury, a obraz z kamery da się przełożyć na teksturę przy pomocy RenderTexture. Żeby symulować ludzkie oko rozdzielczość takiej tekstury powinna być spora. A żeby dało się rozpoznać flagę jako piksel z odległości powiedzmy 20 km to rozdzielczość musi być większa. A żeby jeszcze rozpoznać flagę jako kilka pikseli to już w ogóle ogromna rozdzielczość. Sądzę, że mówimy o rzędach 6000x6000 jak nie więcej.
RenderTexture 1500x1500 potrafi bardzo nieznacznie obciążyć mój sprzęt. A w dalmierzu mam dwie takie tekstury 1500x1500 nałożone na siebie. Na tym screenie co teraz dałem to okienko z widokiem to też RenderTexture 1500x1500. I jak widać na ponad 5 km (odległość od widocznego okrętu) ledwo widać wieże i to na max. zoom. Próbowałem dać większą rozdzielczość tekstury i tak trochę zaczęło przycinać. Oko OW jako RenderTexture rozpoznające piksele flagi z 30 km nawet przy użyciu lornetki musiałoby mieć tak dużą rozdzielczość, że mój sprzęt mógłby tego nie wytrzymać. Tym bardziej, że OW działa cały czas, czyli w każdej klatce RenderTexture zapisuje się w dużej rozdzielczości.
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#184 Wysłany: 18 Lipiec 2016, 22:44
Tak więc kontrolę artylerii przez gracza zrobiłem. Działa to tak:
Przydzielamy baterie do grup,
bierzemy dalmierz (z Shift obraca się szybciej, z Ctrl wolniej)
wyłączamy dalmierz, włączamy system kontroli ognia,
odległość z dalmierza została zapisana,
tak jak w przypadku wyboru celu dla AI blokujemy widok na cel,
wybieramy grupę i przełączamy ją w tryb Player,
wieże z tej grupy celują dokładnie w kierunku zablokowanego celu na odległość podaną z dalmierza,
przyciskami z plusami, minusami i zerem ustalamy kąt wyprzedzenia celownika w prawo/lewo (te plusy i minusy zmienię na < i >),
i... strzelamy
Jeśli wycelowaliśmy ca daleko lub za blisko to zostajemy o tym poinformowani i przyciskami + i - przy odległości wprowadzamy korektę.
I to tyle, czyli zgodnie z tym co mówiłem można rozpocząć testy. Chciałem jutro i może się uda jutro, ale nie gwarantuję. Zrobiłem kilka takich testów dla siebie i... gra mi się zcrashowała. Odpowiednie logi błędu zostały wygenerowane, a okienko, które wyskoczyło poleciło mi wysłać folder z logami błędu do developera... No to je sobie wysłałem Otworzyłem je wszystkie, czytam i... pierwszy raz widzę takie logi błędów... Za Chiny Ludowe nie wiem o co się w nich rozchodzi. Więc jutro czeka mnie przekopywanie wszystkiego co ostatnio zrobiłem i znajdywanie co się posypało. Jeśli się mi uda i usunę usterkę to jutro zaczynamy testy, jeśli nie to... SOON™
Edit: Dobra, wczytałem się i znalazłem... Coś próbuje się dostać do części pamięci, do której nie ma dostępu... Teraz pytanie co i dlaczego...
_________________
Ostatnio zmieniony przez PL_kanaron 18 Lipiec 2016, 23:17, w całości zmieniany 1 raz
Imię: And Pomógł: 37 razy Dołączył: 09 Wrz 2008 Posty: 4398 Skąd: Gůrny Ślůnsk
#185 Wysłany: 19 Lipiec 2016, 17:17
Chodzi mi o to.
AI doskonale wie gdzie jest okręt, ukryty we mgle czy w nocy.
Załóżmy że środek okrętu jest w punkcie 1000x500.
Czy jesteś w stanie odczytać kolor piksela w punkcie 1000x500?
----------------------
Można rozpoznanie zrobić prościej jak to sugerujesz, ale pytanie czy warto - mamy przecież:
różne stany ciemności
różne gestości mgły
różne natężenie opadów deszczu / śniegu
fale (różny czas widoczności celu), w zalezności od ich wielkości
różne natężenie i kąt padania światła księżyca
efekty dodatkowe jak oświetlenie celu (reflektor, raca)
Kombinacji może być sporo, a przecież okręt może być dostrzezony w zależności od:
naszej wysokości
wysokości okrętu-celu
kąta AoB
Aaa... jeszcze dym czy pożar może być wskaźnikiem - czyli cokolwiek co różni się od otoczenia.
Ostatnio zmieniony przez PL_Andrev 19 Lipiec 2016, 17:27, w całości zmieniany 1 raz
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#186 Wysłany: 19 Lipiec 2016, 18:08
Te wszystkie warunki da się nawet łatwo zaimplementować.
A co do piksela w takim sensie... Nie da się. Przede wszystkim dlatego, że przychodzi trzeci wymiar, a świat gry jest oparty na obiektach w przestrzeni.
Teoretycznie dałoby się nad środkiem mapy dać kamerę, obraz zapisać do tekstury i wtedy odczytywać, ale:
1. Rozdzielczość takiej tekstury musiałaby być ogromna, weźmy mapę 100 km x 100 km. Aby cokolwiek było widać to piksel musiałby stanowić najwyżej 50 cm^2. Ogromna rozdzielczość, a praca na pikselach tej tekstury w każdej klatce... Nie wiem jaki musiałby być sprzęt aby to utrzymać.
2. Tekstura to widok z góry. A jeśli dobrze myślę, to nie o to chodzi.
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#187 Wysłany: 19 Lipiec 2016, 19:20
Po 8 godzinach poszukiwań znalazłem prawdopodobną przyczynę błędu. Niestety nie jestem w stanie za wiele na to poradzić. Najprawdopodobniej jest to bug, który siedzi w silniku. Zgłosiłem to do Unity, teraz trzeba czekać.
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#189 Wysłany: 19 Lipiec 2016, 22:50
Raczej co JEST przyczyną. Jeszcze czekam. A jutro w nowym projekcie spróbuję wszystko poskładać od nowa (8 godzin roboty) i zobaczę czy będzie działać, bo może przyczyną jest jakiś problem w ustawieniach.
A jak na razie możliwe przyczyny:
UI Button "żre się" z UI Text.
UI Button "żre się" z UI Button.
UI RawImage "żre się" z UI Button lub UI Text.
Generalnie problem występuje gdy mam wszystkie UI Button włączone (zaledwie 30), gdy kilka UI Buttonów jest włączone i kilka UI Text. Lub gdy UI RawImage z RenderTexture jest włączone i kilka UI Button lub UI Text.
Czyli problem na poziomie UI, czyli User Interface.
Dokładniej opisałem problem tu i tu więc jak chcesz to poczytaj.
Choć oczywiście pomóc mi może tylko ktoś znający Unity a raczej ktoś z Unity Technologies.
Imię: Olek
Ulubiona Gra: SH3 Pomógł: 4 razy Wiek: 26 Dołączył: 20 Lut 2014 Posty: 2413 Skąd: Kraków
#190 Wysłany: 20 Lipiec 2016, 00:38
Kanaron, a próbowałeś zrobić to w 64 bitach? Gra działała u mnie więc musiała iść w 32, a 32 ma max ram do 4GB może tu jest problem, policz ile masz ramu i ile by wyszło z 41% wykorzystanego
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#191 Wysłany: 20 Lipiec 2016, 09:33
Tak, wyszłoby z tych 40% te ponad 3 GB, ale to jest 40% wykorzystania RAM'u przez wszystkie programy. Sama gra bierze mniej niż 1 GB. W 64 bitach próbowałem. Bez zmian.
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#193 Wysłany: 20 Lipiec 2016, 14:26
Znaleźli przyczynę... Prawdopodobnie. Przyczyną chyba jest to o czym cały czas piszę... RenderTexture. Że niby zapisuje bardzo dużo do pamięci. Wyłączyłem kamerę, która zapisywała do tekstury obraz i działa dobrze, tylko nie ma wtedy najważniejszego: widoku z systemu kontroli ognia. A nie wiem czym mógłbym to zastąpić. Dodatkowo dziwię się, że w systemie kontroli jedna RenderTexture o niewielkiej rozdzielczości wysypuje grę, a w dalmierzu dwie duże RenderTextury działające jednocześnie z dwóch różnych kamer jej nie wysypują. Trochę nielogiczne.
A może skalowanie okna w oknie powoduje wysyp? Bo w końcu obraz generowany jest jedynie w małym okienku w oknie. W dalmierzu obraz jest chyba na pełny ekran.
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#197 Wysłany: 20 Lipiec 2016, 17:00
Też się pytałem o skalowanie tu i z tego co właśnie widzę to jest to możliwe. Przede wszystkim dlatego, tak jak pisałem, że dalmierz ma i teksturę i okno w proporcjach 1:1 (render 1500x1500, okno kwadratowe). A tu mam teksturę również 1:1 (500x500) a okno 2:1 (200x100). Wieczorem się tym zajmę.
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#198 Wysłany: 21 Lipiec 2016, 14:16
No i w końcu mam już na 100% przyczynę: woda... Woda jest dość ładna i zapis animowanej i ładnej wody do RenderTexture powoduje pewne komplikacje. Wyłączyłem renderowanie wody i działa perfekcyjnie.
Chcecie rozpocząć testy bez wody lub z bardzo prostą wodą a ja w tym czasie będą z tą wodą kombinował, czy woda (wizualnie, bo fizycznie jest) stanowi integralną część i wolicie poczekać na wodę i potem zacząć testy? Tak jak mówię: wody teraz tylko wizualnie nie ma.
EDIT: Jedna bardzo ważna sprawa: czy ktoś jeszcze ma wersję gry z ostatnich (pierwszych) testów?
_________________
Ostatnio zmieniony przez PL_kanaron 21 Lipiec 2016, 14:49, w całości zmieniany 2 razy
Imię: Mati
Ulubiona Gra: Attack the Warship, SH, FSX, IL-2 Pomógł: 4 razy Wiek: 28 Dołączył: 03 Maj 2013 Posty: 4620 Skąd: Katowice
#200 Wysłany: 21 Lipiec 2016, 16:24
To włącz ją, naciśnij "L" i zostaw to tak na dłuższą chwilę. Patrz czy tekstury lornetki nie zaczynają czasem znikać lub się tak trochę przycinać. Wyślij mi też przy okazji, to też zobaczę.
Jeśli będzie migać lub się przycinać to bardzo źle, ale jeśli nie to może w przyszłych aktualizacjach wrócimy do nawet ładniejszej wody. Bo ta wersja, którą masz jest z poprzedniej wersji Unity. Jest bardzo możliwe, że w nowej wersji coś zepsuli przypadkiem i dlatego nie działa woda z RenderTexturą, a to oznacza, że kiedyś naprawią co zepsuli. A ja nie pamiętam aby dawniej lornetka się psuła.
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum