DotSceneFormat         Discussion about the DotScene format (historic)
Print

Warning_red-50px-Nuvola.png This article was written for an old version of Ogre3D and is therefore probably out of date!

Discussion on the DotScene Format

There have been talks about how the dotScene format has become a bit outdated and in need of some bugfixes/enhancements. This page is dedicated to talking about such enhancements so that we can come to a consensus.

Enhancements/Bugfixes Proposals

  • I have taken the liberty to edit the .dtd in ogreaddons and make it standard compliant. There is still a warning about octnode not being declared which I heard is for the dotSceneOctree (maybe it should be removed from the general dotScene format). Another change is that I made local be the default on line 57 of the dtd. All the #DEFAULT were removed as they were not redundant. --Lodes? 14:44, 29 June 2006 (CDT)
  • I propose the removal of octree, octNode, octMesh, octGeometry, octMaterial elements from the format. There are specific to the dotSceneOctree scene manager and it has been said many times that this is an interchange format. So it should not be getting additions for specific things? At least not the general format. People are free to build on the .scene format to add their extensions though but that's their own format. --Lodes? 15:03, 29 June 2006 (CDT)

 

Current Format

DTD Format

<!ELEMENT scene (nodes?, externals?, environment?, terrain?, userDataReference?, octree?, light?, camera?)>
<!ATTLIST scene
    formatVersion    CDATA    #REQUIRED
    id                ID        #IMPLIED
    sceneManager    CDATA    #IMPLIED
    minOgreVersion    CDATA    #IMPLIED
    author            CDATA    #IMPLIED
>
 
<!ELEMENT terrain EMPTY>
<!ATTLIST terrain
    dataFile CDATA #IMPLIED
>
 
<!ELEMENT nodes (node*, position?, rotation?, scale?)>
 
<!ELEMENT node (position?, rotation?, scale?, lookTarget?, trackTarget?, node*, entity*, light*, camera*, particleSystem*, billboardSet*, plane*, userDataReference?)>
<!ATTLIST node
    name        CDATA    #IMPLIED
    id            ID        #IMPLIED
    isTarget    (true | false) "true"
>
 
<!ELEMENT particleSystem (userDataReference?)>
<!ATTLIST particleSystem
    name    CDATA    #IMPLIED
    id        ID        #IMPLIED
    file    CDATA    #REQUIRED
>
 
<!ELEMENT light (position?, normal?, colourDiffuse?, colourSpecular?, lightRange?, lightAttenuation?, userDataReference?)>
<!ATTLIST light
    name            CDATA    #IMPLIED
    id                ID        #IMPLIED
    type            (point | directional | spot | radPoint) "point"
    visible            (true | false) "true"
    castShadows        (true | false) "true"
>
 
<!ELEMENT camera (clipping?, position?, rotation?, normal?, lookTarget?, trackTarget?, userDataReference?)>
<!ATTLIST camera
    name            CDATA    #IMPLIED
    id                ID        #IMPLIED
    fov                CDATA    #IMPLIED
    aspectRatio        CDATA    #IMPLIED
    projectionType    (perspective | orthographic)    "perspective"
>
 
<!ELEMENT trackTarget (localDirection?, offset?)>
<!ATTLIST trackTarget
    nodeName    CDATA    #REQUIRED
>
 
<!ELEMENT lookTarget (position?, localDirection?)>
<!ATTLIST lookTarget
    nodeName    CDATA    #IMPLIED
    relativeTo    (local | parent | world)
>
 
<!ELEMENT lightAttenuation EMPTY>
<!ATTLIST lightAttenuation
    range        CDATA    #IMPLIED
    constant    CDATA    #IMPLIED
    linear        CDATA    #IMPLIED
    quadratic    CDATA    #IMPLIED
>
 
<!ELEMENT lightRange EMPTY>
<!ATTLIST lightRange
    inner    CDATA    #REQUIRED
    outer    CDATA    #REQUIRED
    falloff CDATA    #REQUIRED
>
 
<!ELEMENT entity (vertexBuffer?, indexBuffer?, userDataReference?)>
<!ATTLIST entity
    name            CDATA    #IMPLIED
    id                ID        #IMPLIED
    meshFile        CDATA    #REQUIRED
    materialFile    CDATA    #IMPLIED
    static            (true | false) "false"
    castShadows        (true | false) "true"
>
 
<!ELEMENT environment (fog?, skyBox?, skyDome?, skyPlane?, clipping?, colourAmbient?, colourBackground?, userDataReference?)>
 
<!ELEMENT clipping EMPTY>
<!ATTLIST clipping
    near    CDATA #REQUIRED
    far        CDATA #REQUIRED
>
 
<!ELEMENT fog (colourDiffuse?)>
<!ATTLIST fog
    expDensity    CDATA    #DEFAULT    "0.001"
    linearStart CDATA    #DEFAULT    "0.0"
    linearEnd    CDATA    #DEFAULT    "1.0"
    mode        (none | exp | exp2 | linear) "none"
>
 
<!ELEMENT skyBox (rotation?)>
<!ATTLIST skyBox
    material    CDATA #REQUIRED
    distance    CDATA #DEFAULT    "5000"
    drawFirst    (true | false)    "true"
>
 
<!ELEMENT skyDome (rotation?)>
<!ATTLIST skyDome
    material    CDATA #REQUIRED
    curvature    CDATA #DEFAULT    "10"
    tiling        CDATA #DEFAULT    "8"
    distance    CDATA #DEFAULT    "4000"
    drawFirst    (true | false) "true"
>
 
<!ELEMENT skyPlane EMPTY>
<!ATTLIST skyPlane
    material    CDATA    #REQUIRED
    planeX        CDATA    #DEFAULT    "0"
    planeY        CDATA    #DEFAULT    "-1"
    planeZ        CDATA    #DEFAULT    "0"
    planeD        CDATA    #DEFAULT    "5000"
    scale        CDATA    #DEFAULT    "1000"
    bow            CDATA    #DEFAULT    "0" 
    tiling        CDATA    #DEFAULT    "10"
    drawFirst    (true | false)        "true"
>
 
<!ELEMENT billboardSet (billboard*)>
<!ATTLIST billboardSet
    name        CDATA    #REQUIRED   
    material    CDATA    #REQUIRED
    id            ID        #IMPLIED
    width        CDATA    #DEFAULT    "10"
    height        CDATA    #DEFAULT    "10"
    type        (orientedCommon | orientedSelf | point) "point"
    origin        (bottomLeft | bottomCenter | bottomRight | left | center | right | topLeft | topCenter | topRight) "center"
>
 
<!ELEMENT billboard (position?, rotation?, colourDiffuse?)>
<!ATTLIST billboard
    id ID #IMPLIED
    width CDATA #IMPLIED
    height CDATA #IMPLIED
>
 
<!ELEMENT plane (normal, upVector?, vertexBuffer?, indexBuffer?)>
<!ATTLIST plane
    name            CDATA    #REQUIRED
    id                ID        #IMPLIED
    distance        CDATA    #REQUIRED
    width            CDATA    #REQUIRED
    height            CDATA    #REQUIRED
    xSegments        CDATA    #DEFAULT    "1"
    ySegments        CDATA    #DEFAULT    "1"
    numTexCoordSets    CDATA    #DEFAULT    "1"
    uTile            CDATA    #DEFAULT    "1"
    vTile            CDATA    #DEFAULT    "1"
    material        CDATA    #IMPLIED
    normals            (true | false)        "true"
>
 
<!ELEMENT vertexBuffer EMPTY>
<!ATTLIST vertexBuffer
    usage        (static | dynamic | writeOnly | staticWriteOnly | dynamicWriteOnly)    "staticWriteOnly"
    useShadow    (true | false)    "true"
>
 
<!ELEMENT indexBuffer EMPTY>
<!ATTLIST indexBuffer
    usage        (static | dynamic | writeOnly | staticWriteOnly | dynamicWriteOnly)    "staticWriteOnly"
    useShadow    (true | false)    "true"
>
 
<!ELEMENT externals (item*)>
 
<!ELEMENT item (file)>
<!ATTLIST item
    type CDATA #REQUIRED
>
 
<!ELEMENT file EMPTY>
<!ATTLIST file
    name CDATA #REQUIRED
>
 
<!ELEMENT position EMPTY>
<!ATTLIST position
    x CDATA #REQUIRED
    y CDATA #REQUIRED
    z CDATA #REQUIRED
>
 
<!ELEMENT rotation EMPTY>
<!ATTLIST rotation
    qx        CDATA #IMPLIED
    qy        CDATA #IMPLIED
    qz        CDATA #IMPLIED
    qw        CDATA #IMPLIED
    axisX    CDATA #IMPLIED
    axisY    CDATA #IMPLIED
    axisZ    CDATA #IMPLIED
    angle    CDATA #IMPLIED
    angleX    CDATA #IMPLIED
    angleY    CDATA #IMPLIED
    angleZ    CDATA #IMPLIED
>
 
<!ELEMENT normal EMPTY>
<!ATTLIST normal
    x CDATA #REQUIRED
    y CDATA #REQUIRED
    z CDATA #REQUIRED
>
 
<!ELEMENT upVector EMPTY>
<!ATTLIST upVector
    x CDATA #REQUIRED
    y CDATA #REQUIRED
    z CDATA #REQUIRED
>
 
<!ELEMENT offset EMPTY>
<!ATTLIST offset
    x CDATA #REQUIRED
    y CDATA #REQUIRED
    z CDATA #REQUIRED
>
 
<!ELEMENT localDirection EMPTY>
<!ATTLIST localDirection
    x CDATA #REQUIRED
    y CDATA #REQUIRED
    z CDATA #REQUIRED
>
 
<!ELEMENT scale EMPTY>
<!ATTLIST scale
    x CDATA #REQUIRED
    y CDATA #REQUIRED
    z CDATA #REQUIRED
>
 
<!ELEMENT colourDiffuse EMPTY>
<!ATTLIST colourDiffuse
    r CDATA #REQUIRED
    g CDATA #REQUIRED
    b CDATA #REQUIRED
>
 
<!ELEMENT colourSpecular EMPTY>
<!ATTLIST colourSpecular
    r CDATA #REQUIRED
    g CDATA #REQUIRED
    b CDATA #REQUIRED
>
 
<!ELEMENT colourAmbient EMPTY>
<!ATTLIST colourAmbient
    r CDATA #REQUIRED
    g CDATA #REQUIRED
    b CDATA #REQUIRED
>
 
<!ELEMENT colourBackground EMPTY>
<!ATTLIST colourBackground
    r CDATA #REQUIRED
    g CDATA #REQUIRED
    b CDATA #REQUIRED
>
 
<!ELEMENT userDataReference EMPTY>
<!ATTLIST userDataReference
    id CDATA #REQUIRED
>
 
<!ELEMENT octree (octnode)>
<!ATTLIST octree
    binFile CDATA #REQUIRED
>
 
<!ELEMENT octNode (octNode*, octMesh*)>
<!ATTLIST octNode
    px        CDATA #REQUIRED
    py        CDATA #REQUIRED
    pz        CDATA #REQUIRED
    width    CDATA #REQUIRED
    height    CDATA #REQUIRED
    depth    CDATA #REQUIRED
>
 
<!ELEMENT octMesh (octGeometry, octMaterial)>
 
<!ELEMENT octGeometry EMPTY>
<!ATTLIST octGeometry
    binaryDataOffset    CDATA #REQUIRED
    vertTotal            CDATA #REQUIRED
    triTotal            CDATA #REQUIRED
    normalTotal            CDATA #IMPLIED
    colorTotal            CDATA #IMPLIED
    texSets                CDATA #IMPLIED
    texTotal            CDATA #IMPLIED
>
 
<!ELEMENT octMaterial EMPTY>
<!ATTLIST octMaterial
    name    CDATA #REQUIRED
    texture CDATA #IMPLIED
>


Contributors to this page: jacmoe180265 points  and OgreWikiBot54 points  .
Page last modified on Thursday 29 of April, 2010 12:57:33 UTC by jacmoe180265 points .


The content on this page is licensed under the terms of the Creative Commons Attribution-ShareAlike License.
As an exception, any source code contributed within the content is released into the Public Domain.