Lage dybdekart ved hjelp av PovRaySkrevet av Paul BourkeSeptember 2019
Følgende er en kort instruksjonsguide for hvordan du lager dybdekart ved hjelp av PovRay. Det er forskjellige bruksområder innen stereoskopi hvorfor man kanskje ønsker å gjøre dette, men motivasjonen i skrivende stund var å lage dybdekart for FaceBooks “3D-modell” -bilder. Disse tar et bilde sammen med et tilhørende dybdekartbilde slik at en seer kan endre synspunktet fra venstre til høyre og opp. Et eksempel på hva FaceBook godtar når en 3D-modell lastes opp, er illustrert nedenfor. Det består av det primære bildet sammen med et sekundært bilde med samme navn, men med “_depth” vedlagt. Det er klart at disse forventes å matche, det vil si gjengitt fra samme synsposisjon. I dette sekundære bildet refererer hvitt til objekter i nærheten av kameraet og svart på gjenstander lenger unna.
Dybdekart kan genereres på en rekke forskjellige måter. For eksempel kan man manuelt maskere regioner med nesten konstant dybde og lage dybdekart i en bildedigeringspakke. Dybdekart kan opprettes ved å ta et antall (2 eller flere) fotografier av et objekt eller scene og ved hjelp av fotogrammetriske teknikker stammer dybdekart. I diskusjonen her skal vi bare presentere hvordan du bruker PovRay til å lage dybdekart over en eksisterende 3D-modell. Prinsippene vil sannsynligvis være like i andre renderingspakker, men terminologien vil være forskjellig. For eksempel vil referansen nedenfor til et gradientpigment i andre pakker bli kalt en shader. De grunnleggende funksjonene i PovRay som kan brukes til å lage dybdekart er en kombinasjon av et “gradient” pigment og “colour_maps”. Et gradientpigment genererer et tall mellom 0 og 1 avhengig av plasseringen i rommet til et punkt på overflaten av objektet. Et fargekart brukes til å kartlegge den verdien til svart-hvit rampe som til slutt blir kartlagt tilbake til dybden. Følgende PovRay-kodebit for tekstur kan brukes. #declare thetexture = texture { pigment { gradient z color_map { [0 color rgb <0,0,0> ] [1 color rgb <1,1,1> ] } scale <1,1,ZMAX-ZMIN> translate <0,0,ZMIN> } finish { ambient 1 diffuse 0 specular 0 } } Merknader om ovennevnte:
Et annet eksempel. Dette og det siste er murte elefanter som holder opp en plattform som en stupa er bygget på, som ligger i Sukhothai, Thailand.
|