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 - Angru

Strony: 1 2 3 4 [5] 6 7
61
Silniki / Odp: Silniki 3D na urządzenia mobilne
« dnia: Marzec 20, 2009, 21:21:49 »
Hmm ciekawy pomysł. W prawdzie darmowość nie jest w tym przypadku koniecznym featurem, ale spodziewam się, że cena za kod odkupiony byłaby znacznie wyższa niż za coś sprzedawanego regularnie na komercyjnej licencji. Ale kto wie, może to kwestia dogadania się. W każdym razie dzięki za pomoc.

62
Silniki / Odp: Silniki 3D na urządzenia mobilne
« dnia: Marzec 20, 2009, 15:47:34 »
Chodzi głównie o J2ME, choć co sprytniejsi producenci postarali się o silniki cross-platformowe. Np. Fishlabs i ich Abyss daje rade na J2ME, brew i symbianie. Ale mi samo J2ME jest obecnie potrzebne.

63
Silniki / Silniki 3D na urządzenia mobilne
« dnia: Marzec 20, 2009, 13:24:57 »
Chciałbym zapytać czy ktoś z Was ma doświadczenie z silnikami graficznymi, lub silnikami gier 3D na komórki i mógłby w takim razie mi coś polecić. Potrzebuję czegoś na licencji umożliwiającej komercyjne zastosowania. Będę miał jeszcze parę bardziej szczegółowych pytań, ale do tego przejdę jeżeli ktoś coś zaproponuje.

64
Szkółka / Odp: Jedno pytanie.
« dnia: Luty 24, 2009, 14:40:02 »
Pamiętaj że po prostu przypisując inną teksturę dla geometrii wpadającej w dany region czy przedział wysokości na osi Y uzyskasz bardzo nieciekawy efekt, gdzie będzie widać wyraźnie granice tekstur. Raczej zatem będzie cię interesował blending. Google wie sporo na temat "terrain texture blending" albo "splatting". Jeżeli chodzi ci o samo wyznaczanie regionów, to jest parę sposobów. Podam dwa.

Przykładowo mając dwie tekstury (np. śnieg i skały) będziesz chciał wyznaczyć przedziały wysokości na których rozkłada się procentowy udział danej tekstury.
przykładowo:
dla Y < 100.0f skały: 100%
dla Y > 250.0f skały: 0%
dla Y < 150.0f śnieg: 0%
dla Y > 200.0f śnieg: 100%
wartości alfa dla przedziałów pomiędzy granicznymi wyznaczas sobie np. interpolacją liniową.

Innym sposobem jest taki, że nakładasz sobie jedną teksturę. Potem rysujesz w gimpie sobie stencila - obrazek o wymiarach skalujących się do wymiarów sceny. Poziom szarości (0-255) traktujesz jako poziom alfa. Używasz potem takiego rozciągniętego stencila do obteksturowania sceny i wychodzą ci ścieżki, łąki, pola itp.

Polecam też zapoznać się z poniższym artykułem, gdzie opisują jak to zrobili w Battlefield 2.
http://ati.amd.com/developer/SIGGRAPH07/Chapter5-Andersson-Terrain_Rendering_in_Frostbite.pdf

65
Matematyka i fizyka / Odp: Metody tworzenia siatek nawigacyjnych
« dnia: Luty 23, 2009, 15:46:43 »
Cytuj
Proponuję dodać przynajmniej skosy. Potwory chodzące jedynie pod kątem prostym będa mało przekonujące.
Niekoniecznie. W końcu taki "ortogonalny łazik" miałby tylko za zadanie wyznaczyć komórki, czy punkty kontrolne. Ostatecznie obiekty poruszałyby się w dowolnym wypadkowym kierunku, jedynie pathfinding poruszałby się po tych punktach, ale tego gracz i tak nie widzi.

Cytuj
wchodzenie i schodzenie po schodach - potwór nie powinien raczej zeskakiwać z krawędzi, na które potem nie wejdzie
Z tego co się orientuję edytor siatek nawigacyjnych dla botów Counter Strike'a umożliwia definiowanie jednostronnych połączeń między nieprzylegającymi do siebie komórkami. Dzięki temu łatwo zaimplementowac to że bot, że może sobie gdzieś spaść wiedząc, że nie wróci tą samą drogą.
Cytuj
To jest spoko, bo umożliwia inteligentne poprowadzenie połączeń (co się odbija na "inteligencji" botów)
Z resztą chyba st3tc właśnie o czymś podobnym mówi.

Cytuj
Po drugie: taką siatkę można bardzo ładnie skompresować do postaci prostokątów.
Chyba możnaby tu zastosować testy linii wzroku. Może wtedy można byłoby wyznaczać takie większe prostokąty dynamicznie, w zależności od położenia postaci.

Cytuj
Heightmapie? Jak dla mnie zbyt mocne ograniczenie. Nawet do otwartych terenów się heightmapy aż tak bardzo nie nadają, bo nie pozwalają na nawisy, jamy, pionowe urwiska i inne co bardziej interesujące formy terenu.
Nie istotne, chodzi mi tylko o sposoby generowania siatki. Swoją drogą nawisy, jamy itp. można dać jako sprytnie umiejscowiony statyczny model, chociaż tekstura może się odcinać. Z kolei używam czasem map wysokości bo łatwo je samemu wygenerować a to się przydaje kiedy chcesz sobie skleić jakieś środowisko testowe dla takiego czy innego efektu czy funkcjonalności (np. fizyka poruszania po nierównym terenie różnego typu ruchomych obiektów). Tak na dobrą sprawę wydaje mi się, że dla gier na otwartej przestrzeni siatki nawigacyjne są zbędne. Tu wystarczy zwykły grid z mapą kolizji, bo nie trzeba znajdywać drogi w skomplikowanym trójwymiaorwym środowisku (schody, przepaście itp.)

Cytuj
Mimo wszystko jednak swój pomysł z rasteryzacją mam zamiar wypróbować, zwłaszcza że mapy hi-poly najprawdopodobniej będzie zjadał ze smakiem na śniadanie.
Obiecujące rokowania  :) daj znać jak to się będzie sprawowało. Sam w wolnej chwili zastanowię się głębiej nad tym sposobem.

Cytuj
Póki co, nie rozważam robienia wyższej inteligencji potworów niż taka, która pozwoli im znaleźć drogę do gracza przy okazji unikając wpadnięcia na ściany, więc algorytm raczej powinien się sprawdzić.
Też słusznie. Wiele gier obroniło się bez żadnego znajdywania drogi a robiąc na wyrost nie będzie prędko efektów. Sam po prostu zainteresowałem się tematem siatek i chcę przygotwać trochę kodu/narzędzi gotowych do użycia w razie potrzeby. Przy okazji daję link do ciekawego blogu na ten temat. Polecam sobie zobaczyć filmik bo jest zabawny.
www.ai-blog.net/archives/000152.html

66
Matematyka i fizyka / Odp: Metody tworzenia siatek nawigacyjnych
« dnia: Luty 23, 2009, 13:49:21 »
Chyba wygrzebałem podobny artykuł z gamasutry, gdzie proponują rozciągnąć siatkę na zasadzie floodfill'u. Startujemy w jakimś określonym punkcie, także określamy rozmiary postaci i ustalamy 1/4 zajmowanej powierzchni. Potem robimy kroki o tym rozmiarze we wszystkie strony świata testując z siatką kolizji czy da się wejść czy nie. Ostatecznie otrzymujemy także dość gęstą siatkę. No właśnie, czy nie za gęstą, czy puszczanie A* na takim grafie dla wielu agentów nie będzie za wolne?

Obecnie podoba mi się idea siatek przedstawiona przez Snook'a w Perełkach, z założeniem, że komórki siatki są trójkątami - to sporo upraszcza. Wtedy w edytorze wystarczy biegać po zadanej heightmapie z wstawionymi statycznymi obiektami i dropić punkty, które będą się przyczepiać do najbliższego trójkąta tworząc następny. Mam nadzieję, że to wystarczy. Zawsze to bardziej mozolne niż odpalenie algorytmu, ale takie automatycznie generowane siatki i tak trzeba by potestować.

Robił ktoś w ogóle już coś takiego?

67
Projekty zaawansowane / Odp: FUGE - GUI do twojej gry
« dnia: Luty 20, 2009, 21:34:55 »
Cytuj
Zauważ, że ta metoda to trywialny akcesor.
Słusznie, zasugerowałem się chyba myśląc, że IBitmap to czysty interfejs. Słabo się temu przyjrzałem, a m_Size jest udokumentowane jako protected. Cofam zatem to, że będzie bardziej elegancko z virtualnym getterem.

68
Projekty zaawansowane / Odp: FUGE - GUI do twojej gry
« dnia: Luty 20, 2009, 17:32:01 »
Cytuj
CSize bmp_size = m_BitmapSymbols->GetSize();
Hmm, jeżeli m_BitmapSymbols jest klasą po IBitmap, to moja FugeBitmap : public IBitmap korzystająca wewnętrznie z mojej klasy bitmapy chyba po prostu nie wiej jak zrobić GetSize(). Ta metoda nie jest wirtualna i nie mogę tu nic zmajstrować.
Też tak przez chwilę myślałem. Postawienie słówka virtual przy GetSize i nadpisanie funkcji by tu pomogło, ale znalazłem inne rozwiązanie. Wystarczy przy wczytywaniu obrazka odpowiednio ustawić pole m_Size dziedziczone po IBitmap :)

[/quote]

Dobry pomysł, tak też zrobię. Jak dotyram do 25-tego posta to dam ci punkt karmy :) Złośliwiec też dostanie za Fuge i kolejne wersje. I za słowko virtual jeżeli wstawi (będzie bardziej elegancko).

@Złośliwiec
A tak przy okazji, jak już FUGE wgramolił się w mój kod fajnie byłoby wiedzieć od czego to akronim (jeżeli w ogóle, może być imię psa, albo tak ci się wklepało)

69
Matematyka i fizyka / Metody tworzenia siatek nawigacyjnych
« dnia: Luty 20, 2009, 17:16:56 »
Chciałbym rozpocząć dyskusję na temat Waszych metod tworzenia siatek nawigacyjnych. Celem jest wyrobienie ogólnego poglądu na wady i zalety różnych podejść. Czy piszecie sami algorytmy generujące siatki z geometrii terenu? Własne programy do edycji? Może używacie innych programów graficznych czy modelarskich i jakoś to obrabiacie? A może korzystacie z zakupionego, profesjonalnego softu w stylu http://navpower.com?

Sam planuję doskrobać tworzenie siatek nawigacyjnych do prostego edytora leveli. Myślę, że takie własne rozwiązanie daje swobodę potrzebną jeżeli zechcemy dodać inne informacje geometryczne (wagi terenu uwzględniające koszt ruchu, punkty o znaczeniu taktycznym, portale itp). Z drugiej strony obawiam się, że dopóki takie narzędzie nie będzie bardzo wygodne i efektywne, tworzenie siatki może się okazać sporym wyzwaniem wymagającym dużo pracy i czasu.

Zapraszam do rozmowy.

70
Projekty zaawansowane / Odp: FUGE - GUI do twojej gry
« dnia: Luty 20, 2009, 16:47:22 »
@maVes:
Kod przygotowania i sprzątania po rysowaniu GUI proponuję umieścić gdzieś w swojej klasie (np. bazowej GUISystem dla FugeGUISystem), która będzie współpracować z twoim silnikiem dając interfejs beginDraw() i endDraw(). Wtedy GUISystem::drawGUI() byłaby wirtualna i definiowana ponownie w FugeGUISystem. W ten sposób struktura ci się nie posypie jak Złośliwiec nas oleje i przestanie wypuszczać fixy :P

@Złośliwiec:
Cytuj
CSize bmp_size = m_BitmapSymbols->GetSize();
Hmm, jeżeli m_BitmapSymbols jest klasą po IBitmap, to moja FugeBitmap : public IBitmap korzystająca wewnętrznie z mojej klasy bitmapy chyba po prostu nie wiej jak zrobić GetSize(). Ta metoda nie jest wirtualna i nie mogę tu nic zmajstrować.

71
Projekty zaawansowane / Odp: FUGE - GUI do twojej gry
« dnia: Luty 20, 2009, 15:34:05 »
Mi z kolei FUGE nie wywołuje DrawImage mojego renderera :(. Jak by coś to LoadImage mojej klasy bitmapy działa poprawnie i zwraca true.

72
Projekty zaawansowane / Odp: FUGE - GUI do twojej gry
« dnia: Luty 20, 2009, 13:27:43 »
Rzeczywiście u mnie. Eventy już chodzą, ale mam chyba jeszcze jakiegoś małego buga w rendererze bo mi nie rysuje x-ów, ptaszków, czy co tam ma być. One są rysowane przez DrawImage?

73
Projekty zaawansowane / Odp: FUGE - GUI do twojej gry
« dnia: Luty 20, 2009, 12:42:36 »
Muszę zgłosić jeszcze jeden problem. Najwyraźniej nie działają checkboxy. Nie generują zdarzeń, nie zaznaczają się graficznie. Niezależnie od tego czy są umieszczone w gołym oknie czy w zakładce. Czy to ogólny bug czy tylko coś u mnie?

74
Grafika 3D / Odp: WPS - Pomysł - dyskusja
« dnia: Luty 19, 2009, 15:45:02 »
Parę moich propozycji na tematy grup modeli:
  • Natura (parę głazów, wielkie dziwne drzewo, fragmenty klifów, ...)
  • Fantastyczna/średniowieczna architektura (chatka, kamienny most, wiatrak, wieża maga, fragmenty murów, ...)
  • Militaria (czołg, apc, myśliwiec, niszczyciel, wyrzutnia rakiet, działo nabrzeżne)
  • Średniowieczne uzbrojenie
  • Gwiezdne wojny (mechy, statki kosmiczne, stacja badawcza, satelita)
  • Potworki, mutanty, robale, ogólnie coś do czego się strzela, bije, tnie czy miażdży

75
Szkółka / Odp: Spowolnienie programu
« dnia: Luty 13, 2009, 21:50:14 »
Pamiętaj że nie musisz uruchamiać logiki klatki i renderingu w każdym przebiegu pętli głównej.

robisz np coś takiego
unsigned long timePassed = time - lastFrameTime;
float threshold = 1000.0f/MAXFPS
if (timePassed >= threshold) {
   lastFrameTime = time;
   runFrame();
}
,gdzie MAXFPS to jakieś makro na to ile chcesz mieć maksymalnie klatek na sekundę. Możesz też ustawić bezpośrednio czas progowy.

Strony: 1 2 3 4 [5] 6 7