Några av er har redan sett de senaste experimenten som jag publicerat. Inget nytt sedan dess, jag vill bara lägga upp det här också. Det här är andra gången jag provar three.js. Det är ett mycket kompetent ramverk med massor av funktioner och exempel tillgängliga. Om du har en idé så går det blixtsnabbt att sätta ihop en snabb demo.
Inspirationen till detta experiment är planterad i min egen trädgård. Den virtuella använder objektet från den senaste demon som bas, men utan de rekursiva smågrenarna. Det är ett anpassat geometriobjekt, så man kan styra den initiala formen och uv:erna och spara referenser av hörn till olika arrayer för senare manipulation.
Illusionen av rörelse består av punkter som fungerar som förskjutningsvärden för varje ring av hörn i detta rör (eller kon), men som endast styr xy-positionen. Dessa värden beräknas precis som ett klassiskt band, kroppen följer rekursivt huvudet. I varje ram så kopieras förskjutningen av en led från den framför den. Hastigheten är direkt relaterad till bildhastigheten och längden på ett segment, annars måste man interpolera värdena på något sätt.
Vid ett givet intervall så skapas ett blad (objekt som exporteras från 3d studio max) vid huvudets position och sedan på varje bildruta översatt längs z-axeln med längden av ett segment. En viktig sak här är att återanvända bladen, så när de är bakom kameran är det dags för ett dopp i objektpoolen för senare användning.
Styrningen av renderingen består av tre komponenter. Musrörelser, ljudspektrum och en cirkulär rörelse. Stilen ändras var 15:e sekund och att blanda dessa komponenter på olika sätt. Ljudspektrumet, eller amplituden, exporteras med ett litet python-snippet.
Jag gjorde några tester med efterbearbetningseffekter som blommor också, men resultatet blev inte vad jag ville, så det slutade med att jag inaktiverade dem.
Jag har dock några problem med artefakter mellan skärande objekt. Jag har en minimal erfarenhet av djupbuffert/test och triangelsortering för att känna igen om det är ett standardproblem eller orsakat av mig eller motorn. Djupbuffertupplösning är min gissning, till ett långt intervall mellan långt och nära och till några ”steg” i djuptexturobjektet. Kanske är det olika på olika maskiner och hårdvara. Om du har en aning, så låt mig veta eller hur?
Jag vill verkligen göra riktiga projekt med riktig 3D-grafik snart. Jag avundas dig som kan sätta på etiketten ”en verklig upplevelse”. Jag hoppas dock att dessa små demos hjälper till att sprida kunskapen och inspirationen att du kan göra mer än bara spel med den här tekniken.