Dateistruktur

Seminararbeit: XML 3D Formate - X3D und XVL
Prev | Chapter 5. XVL - eXtensible Virtual world description Language | Next

# 5.2. Dateistruktur

Da das neue Format Internetfaehig sein sollte entschied man sich dafuer eine Erweiterung zu VRML97 zu entwickeln. Da das Lattice Mesh nur aus Vertices und der Attributstruktur besteht kann man zur Speicherung dieser bereits vorhandene Strukturen des VHDL-Formates nutzen. So wird das Lattice Mesh einfach als Polygonnetz in bekannter VHDL-Struktur gespeichert.

Die weiteren Informationen die noetig sind die urspruengliche Flaeche wiederherzustellen werden in einem VHDL-Choice Knoten gespeichert welcher nur dargestellt wird wenn der darstellende Browser die XVL-Erweiterung beherrscht. Diese Methode hat zur Folge dass XVL-Dateien auch in normalen VHDL-Browsern dargestellt werden koennen, wobei allerdings nur die Kontrollstruktur, nicht die eigentliche Oberflaeche gerendert wird.

Weitere Aenderungen am bestehenden VRML-Format werden nicht noetig, da XVL hauptsaechlich auf den CAD/CAM-Bereich abzielt und dort die Genauigkeit der Repraesentation deutlich wichtiger ist als realistisches Aussehen der Modelle.

Ein denkbares Codebeispiel, aus [1]:

    #VRML V2.0 utf8

    PROTO XVL_EDGE [
        field SFFloat round_val 0
        field SFVec3f round_str 0 0 0
        field SFVec3f round_end 0 0 0
        field MFInt32 is_round [1, 1, 1]
    ]
    {
        Text{
            string["weight of edge rounding"]
        }
    }
    PROTO XVL_STATUS[
        field SFString status "XVL_LATTICE"
    ]
    {
        Text{
            string["status of shape"]
        }
    }
    Group{
        children[
            ## Shape information of Lattice
            Group{
                children[
                    Shape{
                        geometry IndexedFaceSet{
                        ############################
                        ## coordinate information ##
                        ## of Lattice Mesh ##
                        ############################
                        }
                    }
                ]
                },
                ## Property information of Lattice
                Switch{
                    choice[
                        XVL_STATUS{
                            status "XVL_GREGORY"
                        }
                        XVL_EDGE{
                            round_val 0.5
                            round_str 0 1 1
                            round_end 0.2 0.3 1
                            is_round [1 1 1]
                        }
                        IndexedLineSet{
                            coordIndex[ 24 103 ]
                        }
                    ]
                    whichChoice -1
                }

        ]
    }

Der geneigte Leser wird nun feststellen dass dieses Codebeispiel in keinster Weise irgendeiner XML-Spezifikation entspricht. Das liegt daran dass Lattice XVL zwar als "offenes XML-basiertes Format" anpreist, aber mit Beispieldateien oder gar einer Offenlegung der Spezifikation aber sehr zurueckhaltend - obiges Codebeispiel ist das einzige das der Autor finden konnte, sonst waren nur Dateien zu finden die in der Binaerversion des Formates gespeichert wurden. Da sich solche Dateien nicht ohne weiteres oeffnen lassen und Lattice auch hierzu keinerlei Information preisgibt war der Autor nicht in der Lage zu ergruenden ob sich darin vielleicht XML verbirgt, aber selbst das wuerde ja saemtliche Vorteile von XML zunichte machen. Der Autor vermutet dass diese Zurueckhaltung daher ruehrt, dass Lattice mit XVL eben nicht nur ein Format sondern ein komplettes Framework anbietet welches auch verkauft werden will.

Prev | Home | Next
XVL - eXtensible Virtual world description Language | Up | Produkte