Prikazujem rezultate 1 do 26 od 26

Tema: TerraRend

  1. #1
    Senior Member Giant leap for forum
    Datum registracije
    Oct 2006
    Lokacija
    Hostile universe
    Postova
    3.468

    TerraRend

    Prije par sedmica sam naišao na neki članak o renderovanju terena baziranog na voxelima i odlučio sam se baciti na posao. Nisam bio sasvim siguran da li ću ga ciljati za neku real-time upotrebu ili offline renderovanje, ali sam počeo vodeći se nekim principima iz članka i sklepao sam nešto što je radilo relativno zadovoljavajuće, čak je moglo i proći kao real-time. Međutim, filtriranje me ubijalo - nisam pronašao neki dobar način da ugladim kocke blizu kamere koje su parale oči. Neke detail-teksture i bilo kakvi iole napredniji efekti nisu ni dolazili u obzir, bar ne bez potpunog re-writea. U svakom slučaju, nefleksibilnost tog rješenja me podstakla da se po prvi put okušam u raytracovanju/raymarchingu. I tako je nastala druga iteracija ovog programa na kojoj još po malo radim. Ideja je bila da isprobam sve moguće ideje za renderovanje koje su mi se već mjesecima motale po glavi, bez previše ganjanja performansi. Ovo je ujedno i jedan veliki disklejmer za ovaj projekat - sve sam radio po sopstvenom nahođenju, nisam imao nikakve reference. To je vjerovatno na kraju greška, jer će dalje poboljšavanje prikaza biti mnogo bolnije tako, ali eto, htio sam i da vidim koliko toga mogu sam zaključiti. Pa ću vas malo provesti kroz (vrlo neravnomjernu) istoriju projekta i neke njegove featurese :



    Ovo je jedna od prvih slika koje sam narendao. Kod za to sam sklepao u par sati, pa me uspješno renderovanje za mene "škakljivom" metodom raymarchinga ohrabrilo da nastavim dalje s ovim. Ovdje još nije bilo ni filtriranja heightmape, pa su se izbliza takođe vidjele kockice, ali sam bar znao da se to da lako ispraviti. Osvjetljenje je bilo "zalijepljeno" na teksturu. Osnovna linearna magla i nebo.



    Prva "kul" stvar koju sam uradio - refleksivna poluprovidna voda sa aproksimiranim Fresnel efektom (zavisnost odnosa refleksije i providnosti od ugla gledanja). 2 samplea po pixelu vode, ako se ne varam. Ovdje negdje sam uveo i prvi anti-aliasing. Bio je "pametan" i vršio se samo na rubnim pixelima, tj. gdje je postojao diskontinuitet u dubini scene. A radio se tako što su se castovala još 4 raya u rotated-grid rasporedu, te se blendali sa originalnim pixelom (da se ne baci), tako da je to bio neki "5xAA".



    Ova slika je ustvari posljedica lošeg učitavanja lightmape, koja je zbog toga ispala pretamna, a tada sam nešto i nebo čačkao, zbog čega se to tako igrom slučaja uklopilo u prilično kul sliku koju sam odlučio zadržati



    Tu sam negdje prešao na floating-point fame-buffer koji se kasnije mapirao na 8-bitni RGB iliti famozni HDR. Ekspozicija je, naravno, bila podesiva, a sklepao sam i neki auto-exposure. Tu sam negdje po prvi put dodao i sunce. Vrijeme renderovanja je stalno raslo, pa je postajalo sve napornije raditi na ovome. Nešto prije HDRa sam se okušao u animaciji. Neslavno je prošlo, jer sam tek u pokretu vidio koliko je stvar neprecizna - mnogo trepreranja, preskakanja, itd. Teren je još uvijek mutan, jer ga je pokrivala samo jedna tekstura. Kasnije će dobiti više proizvoljnih slojeva što je osjetno popravilo izgled.



    To sunce sam onda htio nekuda i pomjeriti, tako da sam došao do onoga što sam dugo odgađao - bejkovanje sopstvenih lightmapa (do tada sam koristio gotovu). Ovo je jedna od prvih koje su nastale u mom programu. Zbog načina na koji to radi, implicitno sam imao soft sjene i ambient-occlusion. Koristio sam prilično "realne" metode, pa sam i dobijao prilično realne rezultate. Na ovoj slici i nije baš mnogo očito, jer koristi samo 4 samplea u rotated-gridu, poput AA rješenja. Kasnije sam dodao mogućnost unosa proizvoljnog broja sampleova koji su zatim bili nasumično raspoređeni, što je davalo mnogo bolje rezultate. 20 random sampleova + malo blura po Gaussu = odlična lightmapa. Nekada za to vrijeme se pojavio i blooming - kada već imam HDR, da ga upotrijebim. Pokušao sam simulirati neku difuziju svjetla po senzoru/filmu, što je davalo prilično ubjedljive rezultate, ali je bilo (i još jeste) odvratno sporo. Već na 640x480 bloom može trajati duže od renderovanja prvobitne slike. Nešto bih trebao s time uraditi, svakako.



    I tako sam se dohvatio nečega što sam još od samog početka nekako potajno najviše priželjkivao - volumetrija. Ideja koju sam imao za to je iznenađujuće lako upalila, te sam dobio neke slike na koje sam u tim trenucima bio izuzetno ponosan. Jedna od tih je ova iznad. Na toj slici sam uvidio i da mi opako nedostaju sjene na vodi, što sam dodao u narednih 15-ak minuta. Vrijeme renderovanja je opet naraslo. Ne zbog same volumetrije, ona je praktično bila besplatna, već zato što sam morao povećati preciznost marchinga (smanjiti dužinu koraka), kako bi se preciznije premjerile putanje zrake kroz osvijetljeni i neosvijetljeni dio magle, inače bi se vidio vrlo ružan banding. Takođe, voda je dobila normal-mapu za talase. Na ovoj slici izgleda ok, ali je sve samo ne korektna.

    S

    Približismo se kraju, ovo su neke od posljednjih narenderovanih slika. Bejkovanje lightmapa je poboljšano, blooming je poboljšan (ali ne i ubrzan, nažalost). Dosta sam eksperimentisao sa različitim algoritmima za ekspoziciju i mapiranje u R8G8B8, ali nisam se još skrasio, tako da će to vidjeti još promjena. I magla je malo popravljena. Promjene postaju sve manje, dok neke fundamentalne stvari ostaju neriješene, zbog čega još uvijek neću objaviti ni binaryje, ni source. Hvala na razumijevanju.



    I, da, evo ovako je program izgledao kada sam ga ja posljednji put vidio. Estetici su možda posvećene cijele tri sekunde. Većinom sam samo slagao nove dugmiće i polja za nove stvari koje sam implementirao, tako da sada sve više liči na Blender. Daleko manje funkcionalan i dosljedan, naravno. Svakako će doživiti reviziju interfesja prije bilo kakvog puštanja u javnost.

    Sve u svemu, pisanje ovoga je bilo prilično uzbudljivo iskustvo i preporučujem isto svakome ko je vičan programiranju i voli grafiku. Nadam se da sam bar neke zainteresovao i potakao na razmišljanje. Dakle, šta mislite? Ima li ko sličnih iskustava? Konstruktivnih prijedloga?

  2. #2
    Junior Member Plants Vs Zombies
    Datum registracije
    Jun 2009
    Lokacija
    iznad ctrl...
    Postova
    17

    Re: TerraRend

    Konstruktivni prijedlog: izgradi karijeru na ovome ovo još nisam vidio ovo rula

  3. #3
    Senior Member Giant leap for forum
    Datum registracije
    Oct 2006
    Lokacija
    Hostile universe
    Postova
    3.468

    Re: TerraRend

    Hvala, SHIFT. Nije da ne bih volio karijeru u tome, ali za to treba još dosta poraditi na ovome i sličnim stvarima. I treba početi čitati šta su pametni ljudi napisali.

  4. #4
    Senior Member Lord of The Fleas
    Datum registracije
    Aug 2007
    Postova
    494

    Re: TerraRend

    čovječe, ma ovo je super. svaka čast burek, svaka čast

  5. #5
    Senior Member Giant leap for forum
    Datum registracije
    Oct 2006
    Lokacija
    Hostile universe
    Postova
    3.468

    Re: TerraRend

    Hvala, hvala I, da, ako nekome treba bejkovati lightmapu za heightmapu, može se javiti =)

  6. #6
    Moderator My way or the highway Grim's Avatar
    Datum registracije
    Nov 2007
    Postova
    7.823

    Re: TerraRend

    Burek ovo je fakat odlicno , svaka ti dala
    "Fornicate and take drugs against the terrible strain of idiots who govern the world."
    - Albert Szent-Gyorgy

  7. #7
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: TerraRend

    Lijepo, isto nisam pola skužio, ali da izgleda vrlo kul - izgleda

    btw, gui je odličan i sad, dobro je imati sve na dohvat ruke
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  8. #8
    Senior Member Respawned sorcerer
    Datum registracije
    Apr 2008
    Lokacija
    Mostar
    Postova
    1.655

    Re: TerraRend

    Bureče ne znas koliko mi je drago sto sam vidio jos nekog da koristi ovaj program. Ja se ovim bavim kao hobijem vec godinu dana i to ne slucajno. Naime, poceo sam ovaj program koristiti kako su mi dolazili requestovi za heightmape koje su bile importane u Sandbox2 i bile koristene u mnogim modovima. Ja sam ih najvise koristio da pravim neke super scene a ponosim se mojom scenom vulkana i aviona kako prolazi kroz dim (super realisticno je ispala slika koristeci Terragen za teren, Sadnbox2 za postavljanje scene i osvjetljenje, neke custom modele,...) koji je nestao sa zadnjim formatom. Potaknuo si me da opet napravim nesto novo pa se odmah bacam na posao i predlazem da ova tema bude showroom za radove iz terrain renderinga...

  9. #9
    Senior Member Giant leap for forum
    Datum registracije
    Oct 2006
    Lokacija
    Hostile universe
    Postova
    3.468

    Re: TerraRend

    = Citat = Izvorno postao _cryphx_
    Bureče ne znas koliko mi je drago sto sam vidio jos nekog da koristi ovaj program.
    "Ovaj program"? Nisam siguran na šta misliš. Na programe ovog tipa uopšte? Pošto sam ja programirao ovaj i prije postanja na forumu ga je vidjelo 3-4 ljudi, pa sumnjam da je do tebe stigao

    @Luka (a potencijalno i svi ostali) - šta nije jasno? Samo pitajte.

  10. #10
    Senior Member Lord of The Fleas
    Datum registracije
    Aug 2007
    Postova
    494

    Re: TerraRend

    a gle stvarno postoji već neki terragen
    malo se zbunio čovjek medju svim tim silnim programima. burek, da promijeniš ime možda sad kad vidiš da je već zauzeto?

  11. #11
    Senior Member Giant leap for forum
    Datum registracije
    Oct 2006
    Lokacija
    Hostile universe
    Postova
    3.468

    Re: TerraRend

    Postoji TerraGen, ovo je TerraRend. Guglao sam za "TerraRend" i koliko vidim, nema ništa relevantno. Šta da kažem, ime je opisno. Ako neko ima neki kreativan prikladan naziv, slušam.

  12. #12
    Senior Member Lord of The Fleas
    Datum registracije
    Aug 2007
    Postova
    494

    Re: TerraRend

    ha joj, krivo sam vidio, sry

  13. #13
    Senior Member Respawned sorcerer
    Datum registracije
    Apr 2008
    Lokacija
    Mostar
    Postova
    1.655

    Re: TerraRend

    Oh my bad mislio sam da radis na Terragen-u...

    Opa, bravo znaci ti si sam napravio svoj program, pa to je ogroman uspjeh svaka cast majstore. Ako trebas neke ideje ili nesto vezano za taj program javi ili bar salji PM kada dovrsis svoj terrain da ga vidim...

  14. #14
    Senior Member Lord of The Fleas
    Datum registracije
    Aug 2007
    Postova
    494

    Re: TerraRend

    e ma šta ne napraviš neki 3d engine? nemora biti super, ono AAA i to...
    ak se ne varam imao si nešto prije, tako? neki 2d/3d kombinacija, tile engine, tak nešt...

  15. #15
    Senior Member Respawned sorcerer
    Datum registracije
    Apr 2008
    Lokacija
    Mostar
    Postova
    1.655

    Re: TerraRend

    Sto kazete na ovo? Urađeno za 10min i planiram stavit jos malo boje u planine...

  16. #16
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: TerraRend

    @Burek, neke tehničke stvari, npr. što je raymarching?
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  17. #17
    Senior Member Giant leap for forum
    Datum registracije
    Oct 2006
    Lokacija
    Hostile universe
    Postova
    3.468

    Re: TerraRend

    Ok, pokušaću objasniti. Prvo, raytracing je generalno "praćenje zraka", kao što se može zaključiti iz naziva. U kontekstu renderovanja, to znači da se za svaki pixel slike ispaljuje zraka iz tačke kamere pod prikladnim uglom, te se prati u šta ona udara, tj. šta se ustvari nalazi na tom pixelu i on se ispunjava bojom koju je zraka upratila. Dakle, "naopako" od onoga kako svjetlost funkcioniše (ide iz izvora, odbija se i stiže do oka/kamere) - ovdje se od oka/kamere kreće i gleda se da li će se stići do izvora svjetla. Vjerovatno da si taj dio znao, ali neka bude rečeno. Raymarching je način da se raytraceuje. Kako mu ime kaže, radi se postepeno koračanje iliti "marširanje", kao što bi to radio s nekim projektilom u igri, recimo. "Provjeri ima li šta na trenutnoj poziciji, ako ima, vrati boju, ako nema, pomjeri se dalje, ponovi" - otprilike. Alternativa je da se strogo matematički preko jednačina pravih i površina nađu tačke presjeka, što dobro radi za većinu "čvrste" geometrije, ali za volumetrijske efekte je ovo najefikasnije rješenje jer se u ovom koračanju može prilično lako usput mjeriti koliko se dugo prolazilo kroz neki dim ili tako nešto, sampleujući njegovu gustinu na svakoj tački na kojoj se stalo. Osim toga, ovako je algoritam jednostavniji, a nisam se baš previše htio zamarati matematikom, iako je i ovdje svakako ima.

    Konkretno, u mom rendereru, odbijanja samo ima kada je voda u pitanju, inače se sve dobije iz prvog raya jer se i lightmapa i mapa volumetrije bake-uju prethodno. Naravno, to znači da se za promjenu ugla sunca mape moraju ispeći ponovo. Za teren se onda sampleuju svi slojevi tekstura i rezultat se množi sampleom lightmape s te pozicije. U pitanju je trilinearno filterovanje, o čemu sam pisao ovdje nekada davno. Ako je voda u pitanju, trenutna zraka nastavlja put do dna, ali sa pojačanom maglom, jer je voda, jelte, gušća. Ako su refleksije uključene, onda se proizvoljan broj zraka refletkuje od površine sa malim varijacijama u uglu, a ako nisu, samo se nađe boja neba pod reflektovanim uglom. Ove reflektovane zrake se prate identično kao i one početne. Kada se ona uprate, nađe im se prosjek i to je boja refleksije. Zatim se zavisno od ugla između prvobitne zrake i površine vode u adekvatnom omjeru blenduje boja refleksije i boja "produžene" zrake, te se potom još sve pomnoži lightmapom za vodu. Posljednji korak za ray i kod vode i kod tla je blendovanje magle, linearno zavisno od dužine puta zrake. I, naravno, ako zraka promaši cijeli teren, poprima boju neba na tom uglu.

    Ok, nemam pojma da li je ovo i koliko razumljivo, molio bih feedback Mogao bih eventualno još koju reći o volumetriji i nekim optimizacijama, ako me neko prati.

  18. #18
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: TerraRend

    Razumljivo, thx

    Kako točno provjeravaš je li nešto na nekom pixelu (matematički bi došao sa jednadžbama, ali kako ovako skužiš)?
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  19. #19
    Senior Member Giant leap for forum
    Datum registracije
    Oct 2006
    Lokacija
    Hostile universe
    Postova
    3.468

    Re: TerraRend

    = Citat = Izvorno postao Luka
    Kako točno provjeravaš je li nešto na nekom pixelu (matematički bi došao sa jednadžbama, ali kako ovako skužiš)?
    Vrlo jednostavno, služim se činjenicom da je teren "2,5D", tj. heightmapa. Dok marširam zrakom, ako provjeravam X,Y,Z tačku (X,Y je ravan terena, Z je visina), onda jednostavno pročitam visinu terena na X,Y koordinatama i vidim da li je Z koordinata "ispod" toga - ako jeste, zraka je penetrirala teren. Tada se u mom rendereru zraka vraća nazad u sve manjim i manjim koracima par puta sa ponovnim provjerama, kako bi se što preciznije odredila presječna tačka, ali to je već minorna stvar, prva rečenica sadrži suštinu

  20. #20
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: TerraRend

    Ah da, heigthmap, smetnuh s uma

    Znam da idem malo u offtopic, ali da je puni 3D, bi li to također mogao nekako izvesti?
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  21. #21
    Senior Member Giant leap for forum
    Datum registracije
    Oct 2006
    Lokacija
    Hostile universe
    Postova
    3.468

    Re: TerraRend

    Ne baš tako jednostavno, ali dalo bi se. Tj. zavisi šta koristim za modele, vidio sam neke stvari po imenu "distance fields", koje nisam baš do kraja svario iako mislim da okvirno shvatam o čemu se radi. U principu, raymarching je method-of-choice kada je lakše provjeriti da li je XYZ koordinata "zauzeta", nego računati presječnu tačku s nekom površinom. Za šta god možeš vršiti onakvu provjeru - to se da narendati raymarchovanjem.

  22. #22

    Re: TerraRend

    Burek ovo je super!
    Istina da se nimalo ne razumijem u ovo ali ovo djeluje u neku ruku "više" nego stvarno!
    Imam samo jednu riječ za ovo: samo tako naprijed

    Može jedno pitanjce? U kojem je to programu sklepano? C++ windows form? C# windows form, vb ili pak c++ or C# u nkom grafičkom API-u (ako je to onda koji DX, OpenGL ili XNA iako sumnjam da je grafički API) još jednom bravo

    Avatar pronađen

  23. #23
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: TerraRend

    C#

    softverski je renderirano...
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  24. #24

    Re: TerraRend

    nisam baš za te grafičk izraze renderirati, i to mislim da renderrirati znači iscrtati nacrtati, može li netko malo pojasniti

    Avatar pronađen

  25. #25
    Senior Member Master Blaster
    Datum registracije
    Nov 2005
    Lokacija
    Zadar
    Postova
    4.028

    Re: TerraRend

    da, iscrtati
    The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
    <3 <3 <3 <3 <3 <3 <3
    ŠIRI SA MNOM LJUBAV Cherry!

  26. #26
    Member Plants Vs Zombies
    Datum registracije
    Aug 2009
    Lokacija
    Đakovo
    Postova
    92

    Re: TerraRend

    Oopa Burek !
    Svaka cast covjece samo tako nastavi ove slike su predobre !
    Biduj Carrer na ovom coece ima ovaj pravo!
    ----------------------------------
    = Citat = Izvorno postao Pigboy
    My computer's so old the operating system is Arrowslits 3.0.

    My computer's so old, it's the only one I've ever seen with a thatched hard drive!

    My computer's so old, the graphics cards is a Sepia graphics Array.

Pravila postanja

  • Ne možeš stvarati nove teme
  • Ne možeš odgovarati na postove
  • Ne možeš slati privitke
  • Ne možeš mijenjati svoje postove
  •