Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Ray tracer

Anaatti [10.11.2010 17:44:53]

#

Näin tuossa jonkin aikaa sitten täällä, kun jalski oli tehnyt ray casterin. Siitä sitten innostuin itsekkin tekemään jotain samantapaista, ja tuloksena syntyi ohjelma, joka pystyy piirtelemään, teksturoimaan ja valaisemaan mitä tahansa polygoneja.
Tämä ohjelma on varmaankin lähempänä ray traceria kuin ray casteria, koska se ei ole rajoittunut mihinkään kaksiulotteiseen ruudukkoon. Myöskin tämän takia ohjelma pyörii erittäin paljon hitaammin kuin ray casterit.
Teksturointi ja valaistun on vielä aika rajoittunutta, koska en jaksanut panostaa niihin niin paljoa. Valaistuksessa otetaan kuitenkin huomioon myös polygonien normaalivektorit.

Tuossa kuva ja tuosta voi ladata.

Ohjelma käyttää piirtämiseen SDL-grafiikkakirjastoa. Paketissa on mukana Windows binäärit ja Linux makefile.

Metabolix [10.11.2010 18:07:20]

#

Ray casterin ja ray tracerin ero ei ole maailman muodossa vaan siinä, piirretäänkö vain ensimmäinen löytynyt esine vai jatketaanko säteen jäljitystä pidemmälle (mm. varjojen ja heijastusten luomista varten). Nopeuteen vaikuttavat kuitenkin myös monet muut asiat, mm. objektien esilajittelu sijainnin mukaan, jolloin mahdollisesti törmäykseen osallistuvat seinät löytyvät nopeasti. (Ruudukko on eräs yksinkertainen mutta rajoittunut toteutus tästä.)

Kaksiulotteisuus vaikuttaa kyllä merkittävästi nopeuteen: seinän etsinnässä ei tarvitse huomioida korkeutta, jolloin yhden haun perusteella voidaan piirtää useita pikseleitä. Toisaalta samalla tavalla voi jatkaa myös näennäisesti kolmiulotteisiin karttoihin, kuten Doomin pelimoottorissa aikoinaan tehtiin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta