News:

No significant change

Main Menu

Lite "riktig" bench marking...

Started by Snajper, June 17, 2003, 17:04:51

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Horizon

Tack, men jag tar nog den långa förklaringen. :)

Gärna utförligt och med en beskrivning av lämpliga användningsområden.
We're standing here by the abyss, and the world is in flames
Two star-crossed lovers reaching out, to the beast with many names

Phlerp

#9
Jag skulle nog rekomendera den medellånga, utan matematiska fomler alltså. ;)
Raytracing är det som 3Dprogram som Lightwave och 3Dstudio gör när de räknar ut  bilder. I verkligheten skickar ljuskällor ut strålar som sedan stutsar på olika föremål och slutligen hamnar i ditt öga där de registreras genom tappar och stavar och sätts samman till en bild i hjärnan. Raytracing fungerar tvärtom, eftersom man bara är intresserade av de ljusstrålar som slutligen hamnar på näthinnan, eller skärmen/bilden i detta fallet. Därför går man systematiskt igenom alla pixlar på bilden och räknar på en tänkt stråle från varje pixel rakt igenom 3Dvärlden (med viss omräkning för perspektiv och sånt). Sedan beräknar man var strålen hamnar när den träffar ett objekt först och utifrån det kan man ge pixeln ett färgvärde. Vill man gå ytterligare ett steg kan man följa strålen ytterligare en bit för att se hur den studsar och isf om den slutligen hamnar i en ljuskälla, och på så sätt beräkna highlights, skuggor, reflektioner osv.

Det är klart mer CPU-krävande än realtids 3D men eftersom man i princip simulerar verkligheten kan resultatet bli mycket bättre och i vissa fall praktiskt taget omöjligt att skilja från ett riktigt foto... men det beror naturligtvis på hur avancerad din raytracer är.

Hoppas det räcker som förklaring :D

griffin

Jepp. Raytracing är mao ett ypperligt sätt att kräma musten ur datorns CPU då det till 99% handlar om flyttalsoperationer (vektor och matrisoperationer, lite beroede på implementation). Sen tillkommer lite I/O med...

Raytracing är kul ur programmeringssunpunkt. Teorin är enkel (som phlerp förklarade). Men för att göra det snabbt finns massor med intressanta algoritmer av varierande komplexitet att välja bland.

Här, jag har skrivit en enkel raytracer med dokumentation och allt. Den klarar ett superset av PovRay's format. Skrev den i samband med att jag var lärare på en kurs som lärde ut programmeringsmetodik (konsten att skriva bra program). Där använde man C som undervisningsspråk för att ha ett språk som har dåligt inbyggt stöd för att skriva lättförstådd, lättunderhållen samt modulär kod med bra abstraktioner.

Jag ville försöka visa att ett annat språk än C kunde lösa uppgiften lika bra - ett språk där det finns stöd för att skriva kod som är just modulär, lättunderhållen etc - och ändå bibehålla prestandan. Kan nämnas att den tracern blev snabbare än merparten av studenternas raytracrar skrivna i C. :)

Nog tjafsat: Griffins raytracer. Läs mer i readme filen
snappahead

SledgeHammer

Sedan så kan man ju släppa loss ordentligt och låta varje ljuskälla panga iväg strålar. Men det är ju inte raytracing utan en helt annan femma. Men då kan man leka brännglas i bilderna man eventuellt skapar =)

För att inte tala om att hålla koll på hur olika ytor (material) absorberar, reflekterar eller utstrålar energi... *pust*


Är du knäckt snart Erik? :D
Mvh  - Stefan -


SledgeHammer

Ähum... Phlerp..! Är inte scanline fortfarande defaultrenderare i 3ds? ;)
In och pilla i inställningarna... tsssk tsssk...

Gratis är gott. Jag gillar BMRT.
Mvh  - Stefan -


Phlerp


SledgeHammer

Mvh  - Stefan -


TrakDah

814!!![/i]

Fan vad dålig P3-1000 är! Referenssystemet en AMD1200+ har värden runt 1320!

BLÄÄÄÄ

/TD som får sin P4-3GHz i augusti