[ Filip Strugar @ 10.06.2006. 01:45 ] @
...moze pogledati dva filma mog terrain middleware projecta.

http://www.advantageterrain.com/downloads/demo_hi.wmv (117mb - gamedev related, rendering, a lot of real-time collision detection, streaming & decompression)

http://www.advantageterrain.com/downloads/hawaii_hi.wmv (46mb - GIS related)

Vise detalja na sajtu (www.advantageterrain.com). Ovih dana ce i prvi public beta SDK, pa ako nekog interesuje da nesto napravi sa ovim, sta god to bilo, ili ima neki savet ili ideju (bilo kakvu - za marketing, za neki projekat, za prodaju) - I'm all ears.
[ Reljam @ 10.06.2006. 02:33 ] @
Izgleda vrlo zanimljivo! Pretpostavljam da je bazirano na Hoppeovom 'Geometry Clipmaps'?
[ Filip Strugar @ 10.06.2006. 12:08 ] @
Citat:
Reljam: Izgleda vrlo zanimljivo! Pretpostavljam da je bazirano na Hoppeovom 'Geometry Clipmaps'?


Pa otprilike sam dosao do slicnog resenja samo iz malo drukcije ugla.

Oba algoritma se zasnivaju na tome da se vrlo malo toga radi na CPU-u (to je i razlog zasto forsriram demonstraciju fizike i collision detectiona), i da se GPU podaci retko menjaju, za razliku od nekada popularnih CPU-based (ROAM-like) algoritama koji rade adaptive tesselation (skoro) svakog frejma.

Hoppeova tehnika je bazirana na realtime dekompresiji heightmape i na renderingu koriscenjem vertex shader texture samplinga.

Moja tehnika je bazirana na pregenerisanim adaptive tesselated meshevima, sa pregenerisanim LOD-morph podacima i ako treba normalama, koji su tek onda kompresovani. Tokom upotrebe, oni se ucitavaju i dekompresuju, i koriste za rendering i collision detection.

Prednost Hoppovog algoritma je upotreba veoma mocnih postojecih image compression tehnika (ne secam se tacno sta koristi, jpg, png), pa moze da radi sa vecim heightmap datasetovima (kako kaze, compression mu je 100-1, dok je kod mene to trenutno max 10-1), pa mu je hard disk dataset mnogo manji. Druga prednost je to sto moze (uz minimalne izmene) da radi na nekompresovanom datasetu koji se menja, pa se bez mnogo izmena moze koristiti za editor terena, ili realtime-modifiable teren.

Prednost mog algoritma je sto ne zahteva VS texture sampling (trenutni demo radi na svim VS 2.0 karticama), i sto se za rendering (i CD) koristi adaptive tesselated mesh umesto rectangular grid-a, pa mu je za isti kvalitet prikaza potrebno 10tak puta manje trouglova. Zbog te dve stvari, moj algoritam ima drasticno brzi rendering, i mnogo manje trouglova za collision detection.

Ja trenutno ne mogu da startujem njegov demo (http://research.microsoft.com/...ec-a2c4-4236-9e1a-de45144644e1) jer nemam VS3.0 graficku (...) ali sam kad sam poslednji put poredio, moj demo sa istim datasetom (prvi na listi, http://www.advantageterrain.com/download.html) je imao desetak puta bolji frame rate za isti quality setting, a otprilike slicne ili malo bolje performanse sto se streaminga (tokom pomeranja kamere) tice.

Sad pokusavam da nekako zaraditi i neki dinar sa time, pa da mogu da se posvetim daljem razvoju (na primer, boljem mesh-compression algoritmu - trenutni je dosta ad-hoc).


Sa druge strane, zanimljivo je pogledati i sta su developeri iz MS Flight Sim-a uradili - http://www.fsinsider.com/articles/Global_Terrain_Technology.htm - oni imaju, cini mi se, adaptive tessalation & LOD algoritam baziran, koji nije prilagodjen GPU-u, nego radi SOFTVERSKI RENDERING!

Citat:
"... Due to the complexity of the synthesis algorithm, we execute it in software rather than using video hardware. This of course requires us to use a fast, high-quality 2D software rasterizer. We chose Anti-Grain Geometry (AGG), by Maxim Shemanarev [14] because it is fast, free, and comes with full source code making it fully customizable to our needs. ..."
[ Reljam @ 10.06.2006. 19:54 ] @
Nista, onda ti samo jos preostaje da napises Siggraph rad :)

Bilo bi dobro da na sajtu napises poredjenje tvog algoritma i ostalih koji su trenutno dostupni, da bi bilo lakse ljudima da se opredele. Demo izgleda jako dobro, ali je tesko samo na osnovu demoa uporediti terrain engines.

I za kraj, imaj u vidu da je Hoppeov rad patentiran, kao i nekoliko drugih terenskih algoritama. Na to su ovi iz FSa mislili kada su rekli da je AGG dzabe. Ne znam koliko su opsti ti patenti, i naravno nisam advokat, tako da ne znam da li te kace ili ne, ali nije zgodno da pocnes da nekome naplacujes algoritam i da te onda neko 'saceka'.
[ Filip Strugar @ 10.06.2006. 22:45 ] @
10x na odgovorima!

Citat:
Reljam: Nista, onda ti samo jos preostaje da napises Siggraph rad :)


And how the fuck do I do that?! :) Any starting points?

Citat:
Bilo bi dobro da na sajtu napises poredjenje tvog algoritma i ostalih koji su trenutno dostupni, da bi bilo lakse ljudima da se opredele. Demo izgleda jako dobro, ali je tesko samo na osnovu demoa uporediti terrain engines.


Roger! To sam planirao da uradim paralelno sa verzijom 1.0 - za to ce biti potreban jedan ozbiljniji research, a i moram da usavrsim compression tehniku i optimizujem jos dosta stvari.

Takodje bitno mi je da potencijalnom kupcu pruzim finalno resenje koje od njega zahteva sto manje koraka za ugradnju, sto mi trenutno oduzima sve development vreme...

Citat:
I za kraj, imaj u vidu da je Hoppeov rad patentiran, kao i nekoliko drugih terenskih algoritama. Na to su ovi iz FSa mislili kada su rekli da je AGG dzabe. Ne znam koliko su opsti ti patenti, i naravno nisam advokat, tako da ne znam da li te kace ili ne, ali nije zgodno da pocnes da nekome naplacujes algoritam i da te onda neko 'saceka'.


Uh oh to je jedna stvar koja me vec neko vreme brine.

Konkretno u Hoppeovom slucaju je razlika cini mi se dovoljno velika, moj algoritam ne koristi glavnu stvar njegovog rada (vertex-shader texture sampling) - a zaista nisam ni video njegov rad u trenutku kada sam vec imao odradjen algoritam - ali mi je mozda najbolje da njega licno kontaktiram.

Ima tu i par drugih patenata koji mogu biti potencijalni problem - to sve treba da istrazim.

U principu celu stvar nisam bazirao ni na jednom postojecem algoritmu, ali naravno da su resenja uvek slicna, pa bi bilo nezgodno da se negde poklopilo sa necijim patentom.


Takodje, da li je pametno da razmisljam o tome da ja patentiram algoritam, i kako bih to izveo, s obzirom na to da sam drzavljanin Srbije u kojoj, kao i u vecem delu Evrope, algoritam nije moguce patentirati?

http://www.yupat.sv.gov.yu/zas...e=ser&zid=1&item=0#o10
Citat:
Pored navedenih uslova, pronalazak mora biti "patentibilan" u smislu zakona. U mnogim zemljama, pa tako i u Jugoslaviji, pronalaskom se ne smatraju otkrića, naučne teorije i matematičke metode; estetske kreacije; planovi, pravila i postupci za obavljanje intelektualnih delatnosti, za igranje igara ili za obavljanje poslova, programi računara, kao i prikazivanje informacija definisanih samim sadržajem tih informacija.


Dobro, to je vec pitanje za neki drugi deo foruma, pa cu ga prebaciti kad stignem.

[Ovu poruku je menjao Filip Strugar dana 10.06.2006. u 23:56 GMT+1]
[ Reljam @ 10.06.2006. 22:58 ] @
Za Siggraph, napisi abstract i submituj ga. Ako hoces, posalji ga meni, mogu da ga dam nekim prijateljima (to su ovi koje smo malopre spominjali iz MSRa) da ga pogledaju 'da li vredi'. Oni se razumeju u te stvari vise od mene.

Patenti su obicno vrlo opsta stvar, tako da pokrivaju mnogo vise nego sam algoritam. Najbolje je da porazgovaras sa advokatom, nisam siguran koliko se Hoppe razume u pravni deo cele stvari, niti koliko je u stanju da ti daje legal advice. :)

Ti mozes kao gradjanin Srbije da patentiras bilo gde. Ja sam bez problema patentirao alogritme (dobro, pending, nije jos proslo do kraja) ovde u Americi. Znaci nacionalnost i papiri nisu nikakav problem.
[ Filip Strugar @ 11.06.2006. 00:10 ] @
Ok, hvala, javicu ti se na privporuku/mail za abstract, a za patent: to cu onda da se raspitam asap!
[ bkaradzic @ 11.06.2006. 19:57 ] @
Ja sam se bavio licenciranjem tehnologije pre jedno 6-7 godina. ;)

Evo par saveta...

Najbolji način da promovišeš sopstveni proizvod je da ga neko integriše u igru i da ti možeš time da se pohvališ. Ovo znači da je biblioteka spremna za produkciju i da ti je neko ukazao poverenje. Zato nije loše da ponudiš pomoć u integraciji tvoje biblioteke u prvih par igara koje bi je koristili. Da li ZootFly koristi ovu biblioteku?

Pisanje rada za SIGGRAPH ili bilo koju konferenciju (ili čak članak za Gamasutra-u ili neku knjigu tipa Game Programming Gems) je odlična promocija tvog algoritma i biblioteke.

Na sajt stavi kompletnu dokumentaciju biblioteke, jer svako ko licencira biblioteke očekuje detaljnu dokumentaciju.

Nije dovoljno reći da je biblioteka portabilna, nego mora biti potvrđeno nečim. Zato najbolje da napraviš listu kompajlera i OS pod kojim tvoja biblioteka radi. Početi rad na portovanju je zapravo veoma jednostavan, trebaš da downloaduješ besplatne kompajlere MinGW, GCC4, OpenWatcom, itd. i na svim kompajlerima uz najviši nivo upozorenja (warning level ;) kompajliraš. Na ovaj način ćeš otkloniti većinu problema sa portovanjem.

Onda trebaš da napraviš tabelu performansi, sa opisom sistema na kojem su ovi testovi rađeni. Ono velčina terena, broj vertexa, broj poligona, FPS, vreme potrošeno u biblioteci u [ms] i vreme potrošeno za sam rendering u [ms].

Npr. ovaj deo je prilično nejasan:
Citat:
Q.) How much CPU does the library use by itself?
A.) Very little - less than 10% with moderate streaming on a 2ghz CPU and average frame rate of 40-50fps.

40-50FPS na 2GHz meni zvuči loše... Šta znači "moderate streaming"? Streaming odakle? Sa diska?

Takođe proteraj ceo sajt kroz spell checker i piši korektno GHz, MB, itd. Ne želiš da neko grešku u spelovanju, gramatici i notaciji koristi kao izgovor kako si neozbiljan. Recimo u firmi koja licencira tehnologiju, tehnologija će biti evaluirana od par programera. Veći deo njih smatraju da ništa ne treba da bude licencirano dok menadžment misli da treba. Oni će koristiti svaku moguću grešku da ubede menadžment da oni znaju da urade ovo bolje od tebe. ;) Ne mogu da ti dam konkretan primer zbog NDA (ali mi trenutno idemo kroz evaluaciju jednog middleware-a). ;)

Moraš imati tačno utvrđen "roadmap". Sigurno će ti se javljati sa pitanjima da kada ćeš imati završen port za platformu X ili za kompajler Y, itd. Vrlo je bitno da ne paničiš i ne skačeš sa jednog projekta na drugi samo da bi zadovoljio potrebe potencijalnih kupaca. Popravke bug-ova moraju imati najveći prioritet, nove mogućnosti trebaju biti organizovane po vrednosti koju dodaju samom proizvodu. Ako je nešto "cool", ali nije od praktične koristi za komercijalni proizvod, onda ta mogućnost treba da bude nižeg prioriteta od neke mogućnosti što je od veće koristi za komercijalni proizvod.

Jedna od najčešće zahtevanih mogućnosti od strane kupaca je da im dozvoliš da sami upravljaju memorijom i sa I/O rutinama.

Uz video dobro je nuditi real-time demo. Ali ako nudiš real-time demo, potrudi se da ga testiraš na što više različitog hardware-a (takođe napravi tačnu listu svega što si testirao i postavi uz demo) jer svaki crash može odbiti potencijalnog kupca...

Nemoj da sakrivaš sopstveni identitet (ovo je generalno problem domaćih sajtova), slobodno napiši gde ti je firma locirana, broj telefona, poštansku adresu, itd. Svako ko licencira hoće da zna kome daje novac. Npr. promeni ono [email protected] u [email protected] i izbaci gmail adresu. :) Takođe filteruj poruke ručno, jer sigurno ne želiš da ti spam filter izbriše email potencijalnog kupca.

Vidim da si skinuo licensing, ali mislim da tamo nisi naveo tačno sve važne detalje. Npr. da li tražiš royalties, da li je cena ista za jedan proizvod ili n proizvoda. Da li se biblioteka licencira posebno za svaku platformu, itd. Sve raspravi sa advokatom i imaj ugovor pripremljen, jer ne želiš da kada neko ponudi novac ti tek onda tražiš nekoga da slepa ugovor ili što je još gore radiš bilo šta bez dobro napisanog ugovora.
[ Filip Strugar @ 11.06.2006. 22:55 ] @
Bk, hvala na komentarima, veoma su korisni.

Citat:
Najbolji način da promovišeš sopstveni proizvod je da ga neko integriše u igru i da ti možeš time da se pohvališ. Ovo znači da je biblioteka spremna za produkciju i da ti je neko ukazao poverenje. Zato nije loše da ponudiš pomoć u integraciji tvoje biblioteke u prvih par igara koje bi je koristili. Da li ZootFly koristi ovu biblioteku?


Bas se time trenutno bavim, sve zavisi od toga da li dobijemo jedan projekat ili ne. U svakom slucaju svestan sam da mi integracija u njihov engine donosi neprocenjivo iskustvo, tako da radim na tome.


Citat:
Onda trebaš da napraviš tabelu performansi, sa opisom sistema na kojem su ovi testovi rađeni. Ono velčina terena, broj vertexa, broj poligona, FPS, vreme potrošeno u biblioteci u [ms] i vreme potrošeno za sam rendering u [ms].

Npr. ovaj deo je prilično nejasan:


Ok - will do. I izbacicu to, u pravu si, vise je skodljivo nego korisno. Zapravo izbacicu ceo FAQ.


Citat:
Jedna od najčešće zahtevanih mogućnosti od strane kupaca je da im dozvoliš da sami upravljaju memorijom i sa I/O rutinama.


Na to sam mislio: Memorija, I/O i multi-threading su externi, implementirani u wrapper layeru, koji se ubacuje direktno u engine, pa je potpuno customizabilno ili zamenljivo.


Citat:
Uz video dobro je nuditi real-time demo. Ali ako nudiš real-time demo, potrudi se da ga testiraš na što više različitog hardware-a (takođe napravi tačnu listu svega što si testirao i postavi uz demo) jer svaki crash može odbiti potencijalnog kupca...


Real-time demo stoji na downloadsima, uskoro cu izbaciti novi. Do sad nisam naleteo na hardver na kome ne radi, ali moram definitivno ozbiljnije da istestiram sve.


Citat:
Nemoj da sakrivaš sopstveni identitet (ovo je generalno problem domaćih sajtova), slobodno napiši gde ti je firma locirana, broj telefona, poštansku adresu, itd. Svako ko licencira hoće da zna kome daje novac. Npr. promeni ono [email protected] u [email protected] i izbaci gmail adresu. :) Takođe filteruj poruke ručno, jer sigurno ne želiš da ti spam filter izbriše email potencijalnog kupca.


Ok!


Citat:
Vidim da si skinuo licensing, ali mislim da tamo nisi naveo tačno sve važne detalje. Npr. da li tražiš royalties, da li je cena ista za jedan proizvod ili n proizvoda. Da li se biblioteka licencira posebno za svaku platformu, itd. Sve raspravi sa advokatom i imaj ugovor pripremljen, jer ne želiš da kada neko ponudi novac ti tek onda tražiš nekoga da slepa ugovor ili što je još gore radiš bilo šta bez dobro napisanog ugovora.



Da, da ne citiram ostale stvari, shvatam da jos ima dosta da se radi do faze u kojoj mogu da razmisljam o ozbiljnijoj prodaji, tako da cu za sada staviti beta SDK (installer sa dokumentacijom, par tutorial projekata, itd), i dok ne resim jos brdo tih (i slicnih) problema necu javno praviti nikakvu prodaju. Poslu nikad kraja... :)
[ bkaradzic @ 12.06.2006. 18:05 ] @
Citat:
Zapravo izbacicu ceo FAQ.

FAQ je veoma koristan. FAQ bi praktično trebao da bude sažetak svega što imaš na sajtu (kao kada bi izdvojio najbitnije detalje) i dodatna pitanja koja ne spadaju u ostale kategorije na sajtu.

Q.) How much CPU does the library use by itself?
A) Detaljne informacije o performansama možete videti u sledećoj tabeli (link na tabelu sa različitim testovima perfromansi).
[ Filip Strugar @ 12.06.2006. 21:38 ] @
Ok! FAQ will live.

Mislim da je najbolja strategija da za sada kompletiram algoritme, fixiram file-format, pa da brze bolje integrisem lib u neki engine, vidim kako se ponasa, _izmerim i objavim detaljno sve cifre_, pa tek onda pokusam nesto ozbiljnije.

Mozda ovde ima neko zainteresovan da se sastavi neka ekipa 'advanced pocetnika' kojima treba neki demo za CV, pa da se na bazi OGRE-a (ili tako necega) i terrain lib-a napravi neka jednostavna igra - racer, whatever?

U svakom slucaju, ja begam nazad u rudnik...
[ reject @ 12.06.2006. 22:44 ] @
Citat:
Filip Strugar:Mozda ovde ima neko zainteresovan da se sastavi neka ekipa 'advanced pocetnika' kojima treba neki demo za CV, pa da se na bazi OGRE-a (ili tako necega) i terrain lib-a napravi neka jednostavna igra - racer, whatever?

Ako im treba vodja, neko iz naroda, a ti se javi. :)
Bice sve ovo za par meseci ili do kraja godine, polako, stvari se odvijaju veoma polako, ali ipak lagano gde treba.