Visualiseringsprosjekt 9

Så har turen kommet til teksturene til bygningene.
Jeg må ærlig talt si at jeg var noe spent på om det ville være mulig å overføre en UV-tekstur fra Blender til wrl-fila.
En UV-tekstur er et spesialtilpasset bilde, som er klippet til slik at det passer nøyaktig til 3d-objektet.
Denne tekstur-metoden passer perfekt til tekstureringen av bygningene, hvor vinduer, tak og dører mm. må plasseres nøyaktig i 3d-modellen. Som forklart tidligere i denne artikkel-serien, så skal jeg lage detaljene i bygningene vha. teksturer, slik at wrl-fila blir så liten og nedlastings-vennlig som mulig.
Jeg har nå gjennomført en test av dette på utviklingsbygget.
Først ble overflaten til utviklingsbygget brettet ut vha. UV-Unwrap funksjonen i Blender (Se denne artikkelen på nettestedet Gimp.no om hvordan UV-Unwrap funksjonen brukes).

Utviklingsbygget med tekstur-sømmene markert

Utviklingsbygget med tekstur-sømmene markert

Overflaten til Utviklingsbygget brettet ut i UV/Image Editor vinduet

Overflaten til Utviklingsbygget brettet ut i UV/Image Editor vinduet

Deretter eksporterte jeg overflate-mønsteret som en tga-fil, og åpnet den i Gimp:

Overflaten til Utviklingsbygget åpnet i Gimp som tga-fil.

Overflaten til Utviklingsbygget åpnet i Gimp som tga-fil.

Jeg ønsket nå bare å teste hvordan en UV-tekstur laget i Blender ville oppføre seg i den eksporterte wrl-fila, så jeg fyllte bare overflaten med et enkelt standard-mønster hentet fra Gimp:

Overflaten til bygget fyllt med et standard Gimp-mønster.

Overflaten til bygget fyllt med et standard Gimp-mønster.

Deretter satte jeg rett og slett bare bilde-url´en inn i wrl-fila (i objekt-noden til utviklingsbygget) jeg hadde fra før av, uten å eksportere en ny wrl-fil fra Blender:

DEF OB_Utviklingshus Transform {
translation -1.748594 0.099591 -2.073627
rotation 0.000000 1.000000 0.000000 0.781346
scale 0.099201 0.071265 0.355729
children [
DEF ME_Utviklingshus Group {
children [
Shape {
appearance Appearance {
material USE MA_Material_001
texture ImageTexture {
url «utviklingbygg.jpg»
}

}
geometry IndexedFaceSet {
solid TRUE
coord DEF coord_Utviklingshus Coordinate {

Teksturen ble ikke bra. Jeg hadde glemt å rotere bildet! (se illustrasjonen over her, hvor bildet er rotert 90  grader til venstre, på riktig måte). Jeg måtte også eksportere en ny wr-fil fra Blender, for Blender lagret UV-teksturens koordinater i wrl-fila.
Etter roteringen ble teksturen vist på riktig måte i den nye wrl-fila. Som forventet var teksturen strukket på feil måte. På noen vegger ble bildet gjengitt med rette proposjoner, men på andre vegger var bildet strukket for langt ut, slik at motivet ble utydelig.
Jeg trodde først at forvrengingen var et resultat av at avataren kom nært innpå huset, men når jeg bevegde avataren langt fra hus-modellen var teksturen like utydelig og forstrukket. Forvrengingene måtte altså komme av utseende på selve overflate-mønsteret laget i Blender.
I UV/Image Editoren til Blender kan man endre på overflate- mønsteret.

Overflate-mønsteret med endringer

Overflate-mønsteret med endringer

For å se hvilke seksjoner i mønsteret som tilhørte de respektive veggene til bygningene, malte jeg på mønsteret med «Texture Painting»  i UV/Image Editoren (Image > Texture Painting). Dette ble gjort mens husmodellen ble vist i «Object Mode» (med «Viewport Shading» slik at teksturen ble vist) i 3d-scenen. Når jeg tegnet på mønsteret i «UV/Image Editor»-vinduet,  ble malearbeidet også vist i 3d-scenen i sanntid, slik at jeg kunne se hvilke vegger jeg malte på.
(Det er også mulig å lagre malearbeidet i den orginale jpg-fila ved å velge ‘Image > Save’ i ‘UV/Image Editoren’-vinduet).

Etter at jeg hadde funnet ut hvilke deler av mønsteret som hadde gale proposjoner, endret jeg bredden på disse mønster-delene. Det viste seg at de måtte strekkes ut i lengde-retningen (se ill. ovenfor).
Dette ble gjort ved å først endre 3d-scenens modus til «Edit Mode», slik at  mønsteret i  «UV/Image Editor»-vinduet også ble vist i Edit Mode, og vertexene til mønsteret kom fram. (Pass på at «UV vertex select mode» er valgt i  «UV/Image Editor»-vinduet).
Deretter ble vertexene flyttet på vanlig måte (valgte vertexene og flyttet dem i x-retningen vha. G+x).
Endringene på mønsteret ble vist i sanntid i 3d-scenen, slik at jeg kunne se hvor mye mønsteret måtte strekkes.

Husmodellen vist i 3d-scenen under justering av tekstur-mønsteret.

Husmodellen vist i 3d-scenen under justering av tekstur-mønsteret.

Etter at jeg hadde justert mønsteret slik at det så bra ut i 3d-scenen, eksporterte jeg hele scenen som en wrl-fil.
Teksturen ble nå vist på nøyaktig samme måte i wrl-browseren!
Fordi tekstur-koordinatene lagres i wrl-fila, behøver jeg altså ikke å endre på teksturens proposjoner i Gimp.

Utviklingsbygget med justert riktig tekstur i wrl-browseren.

Utviklingsbygget med justert riktig tekstur i wrl-browseren.

Dette er bra for da blir det mindre arbeid med tekstureringen, siden jeg bare behøver å endre og vri på teksturen i Blender.

(Se siden ‘3d-visualiseringsprosjekt’ for mer info).

Del 1Del 2Del 3Del 4Del 5Del 6Del 7 |  Del 8Del 9Del 10Del 11 | Del 12 |