3D-renderingar

Några demo-bilder från 3d-motorn Vectrix3D.

(Ovan) Torus-knut (trefoil knot) med en cube map. Knuten är renderad med Phong-shading och inställd att vara 100% reflekterande (endast specular färg-komponent, ingen ambient eller diffuse). Cube-mappen (omgivningen) föreställer Nvidias lobby. Skarven som man kan se på knuten, närmast kameran, har vållat mig en del huvudbry. Jag *tror* att den beror på att knutens mesh inte är sammanlänkad där, och att ytnormalerna — och därmed ljussättningen — inte interpoleras kontinuerligt.

Ytterligare två exempel på cube-mapping. Torusen borde ha samma skarv som knuten (eftersom de har samma topologi), men jag kan inte riktigt urskilja om så verkligen är fallet.
”Blomman” till höger innehåller 18.000 polygoner, vilket är det mesta motorn klarat med Phong-shading utan att krascha. Sen tog den också en halv evighet att rendera. Med flat-shading, som är betydligt enklare, är rekordet 80.000 polygoner (vilket ändå bara är en piss i Nilen jämfört med dom kommersiella programmen med hårdvarustöd).

Den här renderingen visar en ny rätt fräck effekt; att rendera text med helt valfritt typsnitt. Tricket är att skriva ut texten i vit färg på en svart rektangel, och sedan använda den som alpha-map till ett annat, valfritt, objekt som har den önskade färgen eller texturen.
I bakgrunden ser vi samma blomma som tidigare, nu med flat-shading.

Till sist en torus med shack-textur och bump-mapping. Bump-mapping innbebär att ytnormalerna (som alltså styr ljussättningen) på objektets yta förskjuts något med hjälp av en extern bild (en bump-map). Detta ger en effekt av att ytan har ojämnheter, ända ner på pixelnivå. Bump-mappen som använts i detta fall ligger till höger ovan. Notera att denna måste ha ett förlustfritt komprimeringsformat (t ex .png), eller inte vara komprimerad alls, eftersom varje pixel representerar en förskjutning, och måste vara exakt bevarad.
Tekniken är kostsam och i realtidsapplikationer, som t ex spel, används såvitt jag vet olika förenklade varianter.

~ av CJ den juni 15, 2008.

Lämna ett svar