Artikel top billede

(Foto: Computerworld)

Få 3D på dit website

Vi ser på de protokoller, værktøjer og teknikker, du skal bruge.

Af Redaktionen, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

3D via netværk er stadig højdepunktet af modernitet i science fiction, men det toppede tidligt på nettet. Vrml, virtual reality modelling language, blev bragt på bane allerede i 1994, to år efter at www kom i gang. Selvom fans af filformatet priste det som nettets fremtid, døjede det med at komme i luften.

Det skyldtes navnlig 1990’ernes langsomme telefonforbindelser. Drømmen om 3D på nettet lever stadig i opmarkeringssprog, der er inspireret af vrml og muliggjort af de nyeste browserteknologier. Vi ser på tingenes tilstand, idet vi koncentrerer os om den 3D, du selv kan lave og lægge på dit site i dag.

Rejsen bringer os fra den seneste udgave af vrml til browserbaseret 3D, der bygger på Ajax- og WebGL-understøttelse. Vi bruger open source-værktøjer og -teknologier, som du kan afprøve nu. Lad os begynde med at bygge cyberspace.

3D-værktøjer

Fra vrml’s aske steg Extensible 3D (X3D). Det er mere nøjagtigt at karakterisere X3D som en xml-drevet omskrivning af den ældre protokol. Det er en fordel, at det er nemt at konvertere vrml til X3D – den proces fører vi dig igennem om lidt.

En anden fordel er, at mange af de værktøjer, vi bruger til at oprette 3D-objekter og scener til vrml, kan bruges til at lave X3D. 3D-værktøjer Blender, der er open source, har indbygget X3D, men indlæringskurven er mere stejl end en klatrevæg, og det er ikke noget for begyndere.

Wings 3D

Heldigvis er der andre applikationer, der vælger middelvejen. Wings 3D er et letvægtsprogram, der er open source. Med det kan man importere scener og genstande i standardformater, justere dem og skrive dem ud til vrml. Det er stærkt nok til kompleks scenefremstilling, men det mangler Blenders funktioner til scripting og animation.

Når man starter Wings 3D, viser programmet et bekendt isometrisk billede af 3D-verdenen, hvor man kan bygge objekter ud fra grundlæggende figurer. Du vælger dem fra en kontekst-sensitiv menu, som du kan få vist ved at højreklikke i 3D-vinduet. Gør det nu, og vælg en terning, der skal bruges til en 3D-genstand.

Du flytter genstanden rundt i verden ved at klikke og trække omkring, så hele tingen bliver valgt – ellers er det kun enkelte planer, der bliver valgt. Højreklik på den valgte terning, og vælg ’Move’ for at flytte den.

Du kan også deformere en genstand på flere måder. Med en enkelt plan eller flere planer valgt kan du eksperimentere med at tilføje ekstru- dering, skråskæring og andre deformationer til genstanden. Hvis du fortryder flere niveauer, skal du bruge [Ctrl]+[Alt]+[Z].

Færdiglavede sager

Vi vil ikke dvæle for meget ved Wings 3D’s modelleringsfunktioner. For os er det umiddelbart vigtige ved denne software dens evne til at konvertere til vrml. Derfor skyder vi genvej og downloader en 3D-model fra et sted på nettet.

3D Total er et godt sted at prøve. Her er et udvalg af brugergenereret materiale, som man kan downloade. Vi fandt en model, som vi kunne lide, med en filstørrelse på under 2MB. Vi downloadede en zip-fil med genstanden i 3DS Max-format.

Pak arkivet ud, og vælg ’File | Import in Wings 3D’. Vælg ’3D Studio’. Nu burde modellen blive indlæst i 3D-vinduet. Wings 3D kan importere Wavefront obj-filer og Lightwave lwo-modeller. Når du vil konvertere det til et format, du kan arbejde med, skal du gå til ’File | Export’ og vælge ’VRML 2.0’.

Konverter til X3D

Du kan finde scener, der er renderet i vrml og parate til at blive opgraderet til X3D-format. Der findes adskillige konverteringsværktøjer. Et af vores yndlingsværktøjer er X3D-Edit, fordi det er mere end et simpelt konverteringsprogram.

Med det kan man gå i dybden med vrml-scriptfiler og redigere dem direkte, mens et preview-vindue viser, hvordan den færdige 3D-scene kommer til at se ud i en browser med de rette plugins. X3D-Edit importerer vrml 97 (også kendt som vrml 2.0) eller Collada-data.

Når du har filen i X3D-format, kan du indlejre den i en html-side. X3D-Edit kan generere den side for dig som en inline-model eller en indlejret fil. Brug ’File | Export from X3D’, og vælg ’Export as annotated xhtml’, eller gem X3D-filen, og gå til ’File | New X3D | New html page containing X3D object’. Erstat standardhenvisningerne til eksterne X3D-filer med din X3D-sti. Læs mere i næste nummer.

Del 1 af denne workshop, som blev bragt i nummer 13 af Alt om DATA, lærte dig, hvordan du bygger et cyberspace. Nu går vi videre med det, først med Google SketchUp, der er det nemmeste værktøj til 3D-objektdannelse.

Google SketchUp

Ligesom med mange webprotokoller er der nogle forskellige formater, der kæmper om at komme til, og Google er blandt dem, der er ved at mase sig forrest i mængden.

Det har ført til flere værktøjer til at lægge 3D på nettet, begyndende med det gratis og enkle SketchUp. Det blev angiveligt lavet, for at brugerne hurtigt kan oprette og uploade modeller til Google Earth. Den funktion har det stadig, men selv den gratis version går videre endnu og tilbyder et gratis og stabilt værktøj til at lave 3D-materiale.

Version 8 af programmet åbner med en wizard, der lader dig begynde med en grundlæggende modelleringsskabelon, arkitektonisk design, ingeniørdesign, planoversigt og træningsskabeloner til begyndere. Lige nu anbefaler vi dig at begynde med ’Simple template – meters’.

’Instructor’-vinduet viser dig, hvordan man manipulerer modeller, når de er indlæst – fra enkle kommandoer til mere komplekse modelleringsfunktioner. Du kan for eksempel hurtigt lave en cylinder ved at vælge cirkelværktøjet, glide hen over den røde akse (eller y-aksen) og tegne en cirkel på det plan.

Dernæst vælger du værktøjet ’Push/Pull’. Det arbejder på samme måde som ekstruderingsværktøjet i Wings 3D. Du kan ekstrudere cirklen til en cylinder og derefter farvelægge den ved at gå til ’Window | Materials’ og vælge ’Colours’ fra menuen.

Præfabrikerede genstande

En af SketchUps virkelige styrker er direkte adgang til og integration med Google 3D Warehouse – en database med gratis modeller. I modsætning til Wings 3D kan du garantere, at enhver model, du downloader fra lageret til SketchUp, vil være kompatibel med softwaren og klar til brug. Du kan enten browse i lageret efter kategori eller søge ved hjælp af nøgleord. Når du har fundet en model, du kan lide, kan du downloade den direkte ind i Google SketchUp.

I den gratis standardversion kan du kun eksportere modeller i Collada-format. Det er heldigvis et format, som X3D-Edit understøtter, og du kan derfor bruge den samme arbejdsmetode som før til at eksportere scener og modeller og derefter konvertere dem til X3D. Det anbefaler vi faktisk – Google SketchUp er ikke helt så stærkt et modelleringsværktøj som Wings 3D, men det er mere stabilt.

Open 3D

Konvertering til X3D-format er dog kun én del af historien. Fra Google SketchUp findes der en anden mulig og – efterhånden som nettet følger med – bedre arbejdsmetode: Open 3D (O3D). Der findes to versioner. En plugin leverer support i ældre udgaver af Chrome (og på Windows XP). I den seneste stabile udgave bruger man O3D ved hjælp af WebGL, der er indbygget i browseren.

Den aktuelle version fungerer i enhver WebGL-kompatibel browser, og det vil i øjeblikket sige Firefox 4, den aktuelle stabile udgave af Chrome og Opera 11 i preview-versionen. Google kan levere prøvekonvertering, der omdanner Collada – og dermed SketchUp-genererede filer – til json-format.

Konverteringsfunktionen er en del af den pakke, der omfatter offlineprøver. Man kan finde komplette anvisninger på O3D’s wiki og downloade links til dispositions- og konverteringsscriptet.

Mens vi er i en overgangstid, hvor 3D på nettet kræver ninjakoder eller browser-plugins, er det umagen værd at installere en vrml/X3D-viewer for at få det bedste ud af nettets 3D. Cortona er vores umiddelbare anbefaling – det kører på selv de mest beskedne systemer, takket være en kerne, der renderer 3D i software.

Cortona har bevæget sig fra gratis til kommerciel software. Hvis du vil holde fast ved open source-værktøjer, kan FreeWRL gøre udmærket fyldest. Det er stadig under aktiv udvikling, og det har den fordel, at det tilbyder X3D-support på tværs af platforme.

InstantReality helgarderer sig virkelig. Der er vrml- og X3D-support, men spilleren er beregnet til at samarbejde med en struktur, der også omfatter JavaScript, soap og Java til interaktiv programmering. De samme mennesker står bag X3DOM 1.0 – et forsøg på at lave en struktur, der kobler X3D på html5 for at opnå plugin-frit browserarbejde.

Det er relativt nemt at få 3D-objekter og -miljøer på sit site. Hvad med 3D-spil? Svaret er enkelt: Unity. Det er et 3D-spil-IDE med to halvdele – en editor ved navn Unity og Unity Web Player, der er en plugin, som giver brugerne mulighed for at indlæse spil i deres browsere.

Unity leverer en mere avanceret redigeringsoplevelse end Google SketchUp og Wings 3D. Det leverer output til sit eget specielle format, men man kan bruge adskillige platforme, herunder iOS og Android til mobile enheder.

IDE’et står også bag det fremragende indhold. Hvis du kun har tid til at prøve et Unity-produceret spil, skal du sikre dig, at det er Minotaur in a China Shop fra www.blurst.com – en vanvittig isometrisk balanceakt, hvor du bestemmer, hvilke regler du vil spille efter.

Mens 3D-brugerflader og 3D-billeder konstant synes at være på randen af et online-gennembrud, er optisk 3D blevet udbredt i andre medier. Man behøver ikke engang at købe et 3D-tv, for YouTube er allerede stille og roligt blevet 3D.

Når man vil lave 3D-materiale, skal man bruge to camcordere. Helst samme mærke, men i det mindste med samme opløsning. Placer dem med 6 centimeters afstand, og lad dem pege i samme retning. Når du har to sæt optagelser, indlæser du dem i din videoredigeringssoftware.

Reducer begges dimensioner med 50 procent, og anbring dem side om side i view-vinduet. Det kan du gøre med video-editoren VirtualDub, der er open source, og scriptværktøjet AVISynth.

Download og installer dem begge, og lav så et batchscript med de følgende kommandoer: a = AVISource (”leftvid.avi”), b = AVISource (”rightvid.avi”) og return stackhorizontal (a,b). Giv scriptet navnet ”splitvid.avs”, og gem det i den samme mappe, som dine videofiler ligger i.

Åbn avs-filen i VirtualDub, så bliver klippene bearbejdet side om side. Eksporter videoen i et format, der er egnet til YouTube, og upload som normalt med taggen ”yt3d:enable=LR”. YouTube vil lade brugerne se den i rød/cyan-3D, overlappet eller side om side.

[themepacific_accordion]
[themepacific_accordion_section title="Fakta"]

Det skal du bruge:

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Meshlab

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

3D-browsere

[/themepacific_accordion_section]
[/themepacific_accordion]