[ vlaiv @ 12.04.2007. 13:39 ] @
Evo jednog interesantnog problema pa me zanima kako se inace resava i da li neko ima kakvu ideju ...

Radi se o landscape mesh-u recimo 512x512 bez obzira kakav i ako se koristi neki tip lod ili dlod
algoritma za simplifikaciju (roam, soar ili sl), koji je texture mapiran na sledeci nacin:

1. Main textura 1024x1024 - mapira se preko celog terena i odredjuje osnovnu boju zemljista ...
2. Lightmap textura 512x512 - prekalkulisano osvetljenje u zavisnosti od pozicije sunca i doba dana
3. Detailmap textura 512x512 - tezinske vrednosti pojedinacnih detail tekstura spakovane u RGBA kanale
4. Detail textura 1024x1024 - Cetiri detail texture spakovane u jednu (4x512x512) koje se koriste za detaljno texturisanje odnosno
za ground detail, za sada bez distance based blendinga ali je u planu ...

Planiram da po datom terenu "vozam" tenkove ...

Ono sto me interesuje je sledece: kada tenk ide po datom terenu on ostavlja tragove ...

Kako najefikasnije pamtiti i renderovati tragove gusenica?

Razmisljao sam o modifikaciji textura ali to nije izvodljivo posto tile - ujem detail teksture
Sledeci fazon koji mi je pao na pamet je lepljenje decal-a ..

Primetio sam da u igrama inace nemaju neogranicen bafer za decale pa tragovi pocinju da "nestaju" posle odredjenog vremena
Interesuje me pristup koji bi omogucio da se unapred alocira memorija za drzanje informacije o tragovima kao i pristup koji bi
omogucio permanentne tragove uz naravno minimalno zauzece resursa (sto memorijskih sto rendering)

Ideje?
[ tosa @ 13.04.2007. 03:31 ] @
Dekali su prilično uobičajeni u igrama, mada sve zavisi od vizuelnog efekta koji želiš da postigneš.
Modifikovanjem teskture dobijaš uštedu memorije, ali postoje razlozi koji će te odvratiti od toga.
Jedan razlog si već pomenuo, a još jedan primer bi bio da posle dosta kretanja vozila teren bi postao
prilično išpartan - što može, ali i ne mora, biti ružno.
Obično se odredi memorijski budžet za potrebe dekala. Dodavanjem novih, stare izbacuješ iz liste ako
više nema mesta, ili ih pustiš da "blede" posle određenog vremena.
Gusenice su malo nezahvalne zato što se tenk kreće na specifičan način - okreće se u mestu, pa tragovi
nisu lepi i zaobljeni. Više bi trebalo da liče na niz linija povezanih u tačkama okretanja. To malo
komplikuje matematiku zato što promenom ugla dobijaš da leva i desna gusenica ne ostavljaju trag iste
dužine. Ako "pravi" izgled tragova nije nešto što smatraš neophodnim, možeš da razvučeš krivu po
terenu čije će kontrolne tačke biti tačke skretanja tenka (morala bi biti neka kriva koja prolazi kroz
kontrolne tačke da trag ne beži od tenka).

Što se samog terena tiče, dimenzije koje si naveo su prilično skromne za današnje trendove pa se
teško može nazvati "large scale". Level of detail je još jedna tema o kojoj može da se priča dosta,
a moj savet je da se kloniš tehnika kao što su roam i slične, budući da zahtevaju dinamički update
barem jednog GPU resursa (recimo indeks bafer).
[ Filip Strugar @ 25.04.2007. 09:04 ] @
A usput, ako te zanima stvarno large scale terrain mesh (na primer, generisan iz 32000 x 32000 heightmape), mozes slobodno koristiti moju teren biblioteku sa www.advantageterrain.com, it's free :)
[ vlaiv @ 25.04.2007. 10:52 ] @
Hvala!

Bacicu pogled, cisto da vidim implementaciju (mada mi nece biti potrebna ta velicina terena).