[ Nothingman @ 15.04.2005. 23:59 ] @
Na web stranici: http://freespace.virgin.net/hugo.elias/models/m_clouds.htm sam naleteo na interesantan nachin za generisanje oblaka u realnom vremenu. Medjutim ima jedna stvar koja me kopka i koja mi nije jasna. Nakon sto generisemo prvu teksturu oblaka pomocu neke "fake Perlin noise" funkcije ona ne izgleda bas realno zato sto nema "praznog prostora" i vise izgleda kao neka plazma. Autor gore prilozenog teksta zbog toga koristi exponencijalnu funkciju da bi dobio realniju teksturu (da biste znali na sta mislim pogledajte slike dveju tekstura na tom sajtu). Citat: There is a fairly simple function you can use to transform the plasma into something that looks a lot like clouds. The exponential function is the mother of all functions. You will find uses for it everywhere. Code: function CloudExpCurve(v) c = v - CloudCover if c < 0 then c=0 CloudDensity = 255 - ((CloudSharpness ^ c) * 255) return CloudDensity end function CloudCover je konstanta koju biramo u rasponu od 0-255 u zavisnosti koliko zelimo "praznog prostora". CloudSharpness je konstanta od 0.0 do 1.0. Ok, ovo je vrlo jednostavna funkcija i sve je to lepo, ali ono sto meni nije jasno je zbog cega kada primenimo ovu funkciju na tu plazma teksturu dobijemo "oblake"? Znachi potpuno je jasno da ce u zavisnosti kako smo izabrali CloudCover biti vise ili manje praznog prostora ali kako je on znao da ce exponencijalnom funkcijom grupisati preostalu materiju u formu oblaka, a da necemo dobiti recimo neke nedefinisane oblike, rabacane tacke, ostre ivice, linije i slicno? Hvala unapred! |