Welcome
Det helt klart svåraste inom 3d-rendering tycker jag är samplingsteorin. När man skjuter strålar så ska man naturligtvis göra det slumpmässigt, men helst inte helt slumpmässigt. Lagom är bäst.
Jag har precis lyckats generera [0,2]-sekvenser med van der Corput och Sobol vilket är grunden för en sk "low discrepancy sampler" som jag kommit fram till är precis lagom overkill för min ljusapplet.
Det brukar vara klurigt att få Java-appletar att hoppa igång i browsers, speciellt om dom är beroende av ett hårdvarunära-bibliotek som Java3D - men även det lyckades jag med i helgen. Både farsan och kompisen Marcus fick igång min kackerlacka.
Jag kommer nu fortsätta att försöka sampla valfri triangel så att jag kan börja trejsa arealjuskällor som genererar mjuka skuggor till skillnad från punktbelysningar. Känt fenomen för akvarister btw..
Nu spårar jag skuggstrålar från varje punkt som ögontrålarna träffar till en punktljuskälla. Intensiteten skalar jag enligt inverterade kvadratlagen.
Jag hade problem med att skuggstrålen hela tiden korsade ytan med punkten jag ville beräkna intensiteten på. Det löste jag genom att flytta punkten ett mycket litet avstånd ut från ytan (kallas epsilon i raytracersammanhang). Jag skalade bara ner normalen i punkten till ett mycket litet värde och adderade den till punkten.
Nu skickar jag ut strålar från ögat i Java3D genom dess "image plate", transformerar punkterna och beräkna en stråle som skickas genom scenen och kollar om strålen träffar något.
Om den träffar något så beräknar jag skalärprodukten mellan strålen och ytnormalen och skriver ut det som en färg i en BufferedImage.
Det är alltså den svartvita bilden till höger jag själv renderat. Den vänstra är den hårdvaruaccellererade Java3D-versionen som jag kan snurra omkring.
Nästa steg är att beräkna färgen via en extra ljusstråle från ljuskällan till skärningspunkten och nästa steg igen att försöka rendera den som glas/vatten..
Någon gång i framtiden ska modellen bytas ut mot ett glasakvarium med vatten, ljuskälla och reflektor som renderas fysikaliskt korrekt med bidirectional path tracing tänkte jag..
Som vanligt från Hacker News. Jag har en ohälsosam affinitet för den listan just nu.
http://opinionator.blogs.nytimes.com/2010/06/20/the-anosognosics-dilemma-1/?hp
Jag gillar artikeln för den är ganska rolig i början (citronmannen!) och blir sedan lite djupare.
[2010-8] [2010-7] [2010-6] [2010-5] [2010-4] [2010-3] [2010-2] [2010-1] [2009-12] [2009-11] [2009-10] [2009-9] [2009-8] [2009-7] [2009-6] [2009-5] [2009-4] [2009-3] [2009-2] [2009-1] [2008-12] [2008-11] [2008-10] [2008-9] [2008-8] [2008-7] [2008-6] [2008-5] [2008-4] [2008-3] [2008-2] [2008-1] [2007-12] [2007-11] [2007-10] [2007-9] [2007-8] [2007-7] [2007-6] [2007-5] [2007-4] [2007-3] [2007-2] [2007-1] [2006-12] [2006-11] [2006-10] [2006-9] [2006-8] [2006-7] [2006-6] [2006-5] [2006-4] [2006-3] [2006-2] [2006-1] [2005-12] [2005-11] [2005-10] [2005-9] [2005-8] [2005-7] [2005-6] [2005-5] [2005-4] [2005-3] [2005-2] [2005-1] [2004-12] [2004-11] [2004-10] [2004-9] [2004-8] [2004-7] [2004-6] [2004-5] [2004-4] [2004-3] [2004-2] [2004-1] [2003-12] [2003-11] [2003-10] [2003-9]