3DMLW
(
3D Markup Language for Web
) on
XML-il
pohinev
margistuskeel
interaktiivse 3D- ja 2D-sisu esitamiseks
veebis
. See on ka 3DMLW nime kandva
3D Technologies R&D
poolt arendatava laiema tarkvaraplatvormi pohiline nurgakivi.
3DMLW platvorm on
avatud lahtekoodiga
tarkvarakomplekt, mis on loodud erinevates dunaamilist 3D-sisu naitamist noudvates projektides rakendamiseks. 3DMLW oma skriptimiskeel pakub moningaid omaparaseid voimalusi tarkvaraarenduseks ja laiendatav mudeliformaatide tugi voimaldab kasutamist 3D integratsioonivahendina.
Disainerid saava 3D-objekte arendada ja neid veebis avaldada ka siis, kui neil on vaid minimaalsed programmeerimisoskused. Sisuarendajaile pakutakse lihtsustatud arendusprotsessi, loomaks koikvoimalikke lahendusi alates staatilistest animeeritud kuvadest ja rikkalikest interaktiivsetest esitlustest kuni taismahus mangudeni.
3DMLW on XML 1.0 standardil pohinev margenduskeel, mis voimaldab andmevahetust
3DMLW
plug-in-
liidesega
lingitud tarkvararakenduste vahel. Saadavalolev XML-skeem voimaldab vastavat voimalust pakkuvates XML-redaktorites (nt jEdit) kontrollida notatsiooni korrektsust.
Renderdusmootor kasutab standardset OpenGL
API
-t, mis tagab optimaalse joudluse ja platvormisoltumatuse. Renderdi on uhendatav 3DMLW
plug-in-
liidesega ning koosneb stseeni- ja graafikateegist, mis tagab esimese struktuuridele optimeeritud renderduskonveieri. Stseeniteek on kasutatav ka iseseisvalt vorkude tootleja ja teisendajana ilma seejuures neid renderdamata.
Plug-in-
liides vahendab
sisend/valjundsundmusi
peremees- (nt
veebibrauserid
) voi iseseisvatest akendest. Liides on laiendatav, et voimaldada integreerimist kolmandate osapoolte tarkvarasse. Vaikimisi on olemas levinumate veebibrauserite tugi.
Tooriistakomplektis sisalduvad erinevate failituupide (
obj
,
3ds
, xyz, pts) pakkteisendajad ja mitme faili uheaegset tootlemist voimaldav tekstuuriatlasegeneraator. Tooriistu voib rakendada serveri poolel 3D-mudelite ja tekstuuride automaatseks teisendamiseks.
3DMLW fail on lihtne tekstifail, mis sisaldab
3DMLW keele
suntaksiga piiritletud kaske:
<?xml version='1.0' standalone='no'?>
<document>
<content2d>
<area
width=
'200'
height=
'100'
color=
'#C0C0C0FF'
texture=
'flower.png'
/>
</content2d>
<content3d
id=
'content'
camera=
'{#cam}'
>
<camera
id=
'cam'
class=
'cam_rotation'
y=
'10'
z=
'40'
viewy=
'10'
/>
<box
name=
'ground'
width=
'100'
height=
'2'
depth=
'100'
color=
'green'
class=
'ground'
/>
<box
name=
'dynamic'
y=
'20'
width=
'10'
height=
'10'
depth=
'10'
color=
'blue'
/>
</content3d>
</document>
2D- ja 3D-sisu kasitletakse uksteisest soltumatult, kuid nende kattumine ei ole piiratud. 3D-stseenide animeerimist ja sundmuste tootlemist voimaldab Lua skriptimisvahend. Jargnev skriptiloik demonstreerib varvide hajumist:
<script
type=
'text/x-lua'
>
<![CDATA[
receiver = Reference.get("@receiver");
c = receiver:attributeColor("color");
c:setAlpha(c:getAlpha()+1);
if c:getAlpha()>255 then
c:setAlpha(0);
end
receiver:putAttribute("color", tostring(c));
]]>
</script>
Toetatud on 3ds-, obj-, an8- ja
blend
-failivormingutes 3D-mudelite kasutamine. Teistele vormingutele toe lisamine on lihtne 3DMLW
plug-in-
liidese abil.
3DMLW failide laiendiks on .3dmlw ja sarnaselt HTML-iga on nad omavahel lingitavad.
3DMLW on kuvatav
3D Technologies R&D
pakutavate tarkvaratoodetega, mille hulka kuuluvad
plug-inid
Internet Explorerile
ja NPAPI uhilduvusega brauseritele (
Mozilla Firefox
,
Opera
jne.), iseseisev vaatur ning sellised
kohandatud lahendused
nagu
3D Kiosk
.
Kolmandate osapoolte tarkvaratoodetele on 3DMLW kuvamisvoime lisatav 3DMLW
plug-in-
liidese abil.