X3D-2

VRML/X3D的相關連結
什麼是X3D?X3D有以下相關連結,在這邊就不多加敘述了:
  • 從VRML到X3D(http://17de.com/x3d/vrml2x3d.html)
  • m17的x3D(http://17de.com/x3d/)
  • X3D英文wiki(http://www.web3d.org/x3d/wiki/index.php/Main_Page)
  • X3D的plugin(http://cic.nist.gov/vrml/vbdetect.html)
  • EasyVR論壇的VRML/X3D(http://www.easyvr.org/forumdisplay.php?fid=4)
  • 一本X3D簡體書的作者網站,內有XJ3D瀏覽器的下載(http://www.x3dvrml.com/)
  • VRML/X3D Tutorial(http://www.pinecoast.com/tutorials.htm)
  • 基本上這篇教學會以EasyVR論壇裡的有一位會員"雪碧+可樂"發表的12篇"X3D實戰基礎講座"文章為輔,因此我在這邊放上連結(http://www.easyvr.org/archiver/?fid-4-page-5.html),從裡面的文章列表就可以看到,不過內文的自訂語法已經失效,所以看圖會非常麻煩,所以我就私自修改他那12篇文章,並把他用成繁體,放在這邊以供下載(如原作者看到,不妥請告知)。不過蠻遺憾的是,在他那幾篇教學,最後面好幾章的圖片是沒有被貼上的……

    哪裡可以看見X3D?

     

    首先,第一個最重要的問題,就是解決,要在哪看到X3D……因為,X3D還不是很普及,不像flash的嵌入已經是隨處可見,因此他也要像下載flash外掛一樣,去下載一個可以看X3D或VRML的瀏覽器。在上面的X3D plugin連結中有介紹很多,在這邊也不介紹了。本人是用Xj3D單獨觀看,Flux player當作firefox或ie的plugin(此處下載),讓我的瀏覽器可以看到X3D或VRML,當你灌好了Flux player後,以後開啟X3D或VRML檔案,就會像以下的圖示:

    當然你也可以在你的瀏覽器看到,只要你想辦法像flash那樣嵌入就可以了(可到此處觀看是否可以在你的瀏覽器看到VRML/X3D)。

    至於我為何還灌了Xj3D呢……這個東西既然不是瀏覽器的外掛,也沒有什麼特別的功能,那為何還要灌?主要是因為我在X3D-Edit看到的
    3D影像都無法即時更新我修改好的X3D程式,而Flux
    player也沒有看到重整的按鈕,因為XJ3D有Reload的按鈕,所以我在寫程式看結果時,比較喜歡用這個,以下是XJ3D瀏覽器所看到的圖示:

    X3D實戰基礎講座之一裡用的是另一種瀏覽器,或許也可以參考參考該篇文章(注意,該文提供的X3D-Edit連結已經失效)。

     

    X3D-Edit

    X3D-Edit是X3D的編輯器,這裡是X3D3.2的下載處(https://savage.nps.edu/X3D-Edit/)(下載點),要注意的是這個軟體是綠色軟體,解壓縮後點選runX3dEditWin.bat即可(這個檔案不在資料夾內)。

    以下為X3D_Edit3.2的圖示:

    程式碼入門

    其實X3D的架構很單純,就是要有x3d的宣告、head element所需要的宣告、再來才是最重要的內容 Scene這個element,只要你用了X3D-Edit,new一個物件,他就會幫你產生一個以上所提到的X3D所需基本element(可參考X3D實戰基礎講座之二)。

    而所有的3D物件,都是被放在Scene這個Element下的,而不只是3D物件,可能你要敘述瀏覽者的觀賞方式(可參考X3D實戰基礎講座之六)(NavigationInfo Element),或著顯示3D物件的背景顏色(Background Element),或著顯示文字(可參考X3D實戰基礎講座之二),顯示點線面(可參考X3D實戰講座之三),顯示方塊、球或著圓錐(可參考X3D實戰講座之四),改變物件位置、旋轉角度(可參考X3D實戰講座之五),顯示燈光來源(可參考X3D實戰講座之七),顯示基本的Texture(可參考X3D實戰講座之八),顯示多媒體相關:如顯示影片、音樂……等(可參考X3D實戰講座之九),動畫事件、時間事件(可參考X3D實戰講座之十),使用者互動事件(可參考X3D實戰講座之十一)。而X3D實戰講座的最後一章本來應該有個很不錯腳本嵌入範例,可惜他的圖檔都沒有了,所以那個網頁應該幫助不大。

    由於X3D實戰講座都只是貼貼圖,沒有直接貼上xml程式碼,所以我這邊講解一下那個樹狀結構是怎麼看的,假若是長這樣的樹狀結構:

    而這個x3d程式就是代表,有一個大小為2*2*2的方塊(Box),其外表(Appearance)顏色為紅色(RGB為1,0,0)(他以半形空白區格,不是逗號區格),被放在<0,2,0>的位置(Transform)。而他的樣貌如以下圖示:

    那他的程式碼如下(P.s上上面的圖隱藏了head底下的資訊):

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "http://www.web3d.org/specifications/x3d-3.1.dtd">
    <X3D
    profile='Immersive' version='3.1'
    xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'
    xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.1.xsd'>
    <head>
    <meta content='*enter FileNameWithNoAbbreviations.x3d here*' name='title'/>
    <meta content='*enter description here, short-sentence summaries preferred*' name='description'/>
    <meta content='*enter name of original author here*' name='creator'/>
    <meta content='*if manually translating VRML-to-X3D, enter name of person translating here*' name='translator'/>
    <meta content='*enter date of initial version here*' name='created'/>
    <meta content='*enter date of translation here*' name='translated'/>
    <meta content='*enter date of latest revision here*' name='modified'/>
    <meta content='*enter version here, if any*' name='version'/>
    <meta content='*enter reference citation or relative/online url here*' name='reference'/>
    <meta content='*enter additional url/bibliographic reference information here*' name='reference'/>
    <meta content='*enter reference resource here if required to support
    function, delivery, or coherence of content*' name='requires'/>
    <meta content='*enter copyright information here* Example: Copyright (c) Web3D Consortium Inc. 2008' name='rights'/>
    <meta content='*enter drawing filename/url here*' name='drawing'/>
    <meta content='*enter image filename/url here*' name='image'/>
    <meta content='*enter movie filename/url here*' name='MovingImage'/>
    <meta content='*enter photo filename/url here*' name='photo'/>
    <meta content='*enter subject keywords here*' name='subject'/>
    <meta content='*enter permission statements or url here*' name='accessRights'/>
    <meta content='*insert any known warnings, bugs or errors here*' name='warning'/>
    <meta content='*enter online Uniform Resource Identifier (URI) or
    Uniform Resource Locator (URL) address for this file here*'
    name='identifier'/>
    <meta content='X3D-Edit, https://savage.nps.edu/X3D-Edit' name='generator'/>
    <meta content='../../license.html' name='license'/>
    <!-- Additional authoring resources for meta-tags:
    http://www.dublincore.org/documents/dcmi-terms
    http://www.dublincore.org/documents/dces
    http://www.w3.org/TR/html4/struct/global.html#h-7.4.4
    http://vancouver-webpages.com/META
    http://vancouver-webpages.com/META/about-mk-metas2.html Additional
    authoring resources for language codes:
    ftp://ftp.isi.edu/in-notes/bcp/bcp47.txt
    http://www.loc.gov/standards/iso639-2/langhome.html
    http://www.iana.org/numbers.html#L -->
    </head>
    <Scene>
    <Transform translation="0 2 0">
    <Shape>
    <Appearance>
    <Material diffuseColor="1.0 0.0 0.0"/>
    <!--Add ImageTexture, MovieTexture, PixelTexture, TextureTransform,
    FillProperties, and/or LineProperties nodes here-->
    </Appearance>
    <Box size="2 2 2"/>
    </Shape><!-- Scene graph nodes are added here -->
    </Transform>
    </Scene>
    </X3D>

    如何讓3D美工軟體變成X3D

    使用maya的朋友可以使用這個外掛(http://rawkee.sourceforge.net/)

    而使用3ds max的朋友,我目前找到的Octaga似乎只能把它轉成wrl檔,而wrl檔並不是xml
    base的檔案,他是VRML時代的檔案,因此不是我們要的,而且最重要的是,3ds
    max9就可以自己轉成wrl檔了。雖然我上網看都說wrl檔算是X3D檔案格式,但打開來後明明就不是xml base。而我後來是利用了在這邊(http://www.pinecoast.com/download.htm)下載的SwirlX3D讀進我3ds max9轉成的wrl檔,再將其另存為X3D,才可行的,不然我網路上找了好久,都沒有wrl直接變成x3D檔或著直接將3ds max做好的3D轉成x3D(找到的都無法如願達成)。

    沒記錯的話,去年的學弟就是利用了maya做好的模型,將其佈置好房間後觀看的(好像有影片、網址連結……等)。

    X3D element分析

    雖然講X3D會提到Wrl、X3D以及X3DV這三種常用的格式,但我還是單讀研究X3D(其中Wrl並不是xml base的語言) 。而X3D的樹狀結構如圖:

    <?xml version="1.0" encoding="UTF-8"?>
    這是XML最一開始的宣告,不用講了吧。 再來是DTD驗證,目前我所看到的有三個版本,3.0、3.1、3.2:
    <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "http://www.web3d.org/specifications/x3d-3.1.dtd">
    <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
    <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "http://www.web3d.org/specifications/x3d-3.2.dtd">

    接下來是X3D這element。會因為版本的不同而輸入不同的數字,而該element是主要X3D所有成員的Root。以下是我看到三種版本範例的例子:
    <X3D profile="Immersive" version="3.0">
    <X3D profile='Immersive' version='3.1'
    xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'
    xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.1.xsd'>
    <X3D profile="Immersive" version="3.2">

    profile這個attribute 有六個值可以填:
    1.Full
    2.Immersive
    3.Interactive
    4.Interchange
    5.Core
    6.MPEG4Interactive

    這些表示了X3D場需要的支援
    但這幾個值都代表了什麼我不是很清楚……書上講得太專業了……網路上我也不清楚好不好找……
    不過可以肯定的是,用Immersive好像是比較普遍。version這個attribute就很明顯了,就是版本,目前我所知道的有3.0、3.1和3.2。
    而有些後面打的命名空間……(第二行3.1版後面那一大串) 感覺是驗證用的……xsd的話就是Schema,我不太懂的是為什麼都有DTD驗證了,為何還再加上Schema的驗證,難道是DTD太舊了?總之,這個以初學者來說,應該也不是很重要的一定要輸入的東西,所以上面的3.0和3.2版的範例都沒有schema的驗證。

    接下來是<head>
    head內包的都是component與metadata,以<component>和><meta>顯示。
    component有兩個attribute:

    一.name:
    可填:
    1. Core
    2.CADGeometry
    3.CubeMapTexturing
    4.DIS
    5.EnvironmentalEffects
    6.EnvironmentalSensor
    7.EventUtilities
    8.GeoData
    9.Geometry2D
    10.Geometry3D
    11.Geospatial
    12.Grouping
    13.H-Anim
    14.Interpolation
    15.KeyDeviceSensor€
    16.Lighting
    17.Navigation
    18.Networking
    19.NURBS
    20.PointingDevice
    21.Sensor
    22.Rendering
    23.Scripting
    24.Shaders
    25.Shape
    26.Sound
    27.Text
    28.Texturing
    29.Texturing3D
    30.Time

    二.level:
    可填 :
    1、2、3、4
    表示所支持的層級

    component這個element感覺不太重要,因為很多範例都沒有這個element,而且重點是我也看不太懂
    name這attribute內的東西看起來好像是另一篇文章會提到的在Scene這個Element內所有可放入的element。至於level,感
    覺好像是3D還有分等級似的,但我不太清楚這四個級數代表的意義……不過好佳在component是沒有一定要寫入的element。

    接下來,meta的attribute有:
    一.name
    二.content
    三.xml:lang(可不加入)
    四.dir(可不加入)
    五.http-equiv(可不加入)
    六. scheme(可不加入)

    而meta是什麼?之前根據我查到的
    應該也不是太重要的東西(就只想單純地了解X3D皮毛的初學者而言),我個人是認為有一點像是註解。根據範例,比較常看到有輸入的attribute(屬
    性)有content和name,這些算是自訂的,比如你要寫這文件的作者、日期……等。反正就是顯示該檔的很多訊息就是了。你也可以不必寫入,只是我想
    根據寫程式的良好習慣,還是寫一下比較好。至於其他attribute,因為書上只有解釋而沒範例,所以我也不是很清楚就是了,而且也沒說一定要寫。範例
    如下:

    <meta content=''X3D文件教學” name=”title”/>
    <meta content='2008 04/30' name='date' />

    你要用'(單引號)還是"(雙引號)都可以,個人偏好用"(雙引號)(感覺好像是廢話)。
    前面需要打的東西介紹大概就這個樣子。事實上以一個最簡單的X3D文件,其實只要打:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
    <X3D profile="Immersive" version="3.0">

    由於在Scene內的element非常多(注意,Scene只有一個),所以我是想挑重點分析,而這重點是根據我在3ds max和google
    sketch做好的wrl檔,利用swirlX3D軟體手動轉成X3D(版本為3.0版),去觀查這個X3D會需要什麼樣的主要element來分析,所
    以到時候要是有做成功,有些element我想應該會因為我沒分析到而無法顯示。而我是分析這兩個檔:用3ds max做的機關屋(沒上材質)(http://shortlin.tw.googlepages.com/r.x3d)和有上一面材質,用Google Sketch隨便亂做的模型(http://shortlin.tw.googlepages.com/temp.x3d)。目前這篇文章應該是會為了只針對這兩個檔,而忽略了一些影音功能的element。

    我先以Transform這個element做詳細的介紹,介紹完後直接列表。

    不管你是點線面還是Box、Sphere……等,都需要標明該東西的位置與形狀,而關於該物件位置,我們在X3D實戰講座五有提到,是利用Transform這個element,而這個element有以下attribute:

    屬性(attribute) 含義 默認值 使用說明
    translation 平移 0 0 0 將幾何體平移到指定的空間點位置
    rotation 旋轉 0 0 1 0 前3個值是空間坐標點,該點和原點相連的線為旋轉軸,第4個值為旋轉角度(以弧度為單位)

    center

    操作基點 0 0 0 =指定一個空間點作為幾何變換的基點
    scale 比例 1 1 1 指定在X、Y、Z方向的比例係數以便進行縮放
    scaleOrientation 預旋轉比例 0 0 1 0 =1,1,57%]縮放前子節點局部坐標系統的預旋轉(允許沿著子節點任意方向縮放),其數值含義同rotation屬性
    bboxCenter 邊界盒的中心 0 0 0 指定幾何體自身原點的位置
    bboxSize 邊界盒的大小 -1 -1 -1 默認情況下是自動計算的,為了優化場景,也可以強制指定。

     

    簡單來講,如果你想要將一個3D物件的位置設在1,0,0那你就要這樣寫:

    <Transform translation="1 0 0">
    ....
    </Transform>

    以空白區格x、y、z軸。也有以","區格,所以解析時要注意,有些有用空白也有出現逗點,有的還會兩個都出現,甚至是好幾個空白。也就是下面這種狀況:


    <Transform translation="1, 0 0">
    <Transform translation="1,0 0">
    <Transform translation="1 0 0">

    至少這是我在看那兩個範例時,都會出現的狀況 。

    值得注意的是,在Transform後面通常都會加上一個上面沒提到的Attribute,也就是DEF和USE。DEF就是定義一個參數名稱,方便其他Transform利用USE來重複使用他,範例如下:

    <Transform DEF="Box10" translation="4.085 -6.055 4.671">
    .....
    </Transform>
    ....
    <Transform USE="Box10"/>

    這個不只有出現在Transform這個element,幾乎每個element可以定義與重複使用之前的定義。不過這個用法出現在Transform沒
    有太大的用意,因為是重複的物件在同一個地點,自然也沒人知道是兩個東西在那裡。所以通常DEF都只是用來定義一下名字方便了解那個物件而已。

    現在列出目前我所看到,認為比較重要的element及其attribute列表:

    一.Transform:
    這是幹嘛的,前面就提過了,所以這邊不提,而他的attribute有:
    1.DEF(字串)
    2.USE(字串)
    3.translation(三個被區開的數值)
    4.rotation(四個被區開的數值)
    5.center(三個被區開的數值)
    6.scale(三個被區開的數值)
    7.scaleOrientation(四個被區開的數值)
    8.bboxSize(三個被區開的數值)
    9.containerField(因為沒有範例,不是很清楚這裡面要包什麼)
    10.class (因為沒有範例,不是很清楚這裡面要包什麼)

    二.Shape:
    在X3D場景,很多的element都是包在Shape內的,該怎麼形容他呢……應該算是所有3D物件的一個單位體。而很多物件都是由一個又一個物
    件組成的,而那一小個物件都是一個Shape,而每個Shape都要有兩個節點,就是材質外觀(Appearance)和幾何物件的實體(Box、
    Cone……等),而這個element需要的attribute有:
    1.DEF(字串)
    2.USE(字串)
    3.bboxCenter(三個被區開的數值)
    4.contanerField(?)
    5.appearance(?)
    6. geometry(?)
    7.class(?)
    基本上這個element很少看到有attribute要打,頂多是看到DEF而已。

    三. Appearance :
    所有和表面材質相關的敘述都在這個element內,而他有的attribute有:
    1.DEF(字串)
    2.USE(字串)
    3.containerField(?)
    4.material(?)
    5.texture(?)
    6.textureTransform(?)
    7.class(?)
    基本上這個element很少看到有attribute要打,頂多是看到DEF而已。

    四.Material:
    這個是Appearance的字元素。這是為了描述顏色、燈光效果、明暗、光的反射以及透明度用的。他attribue有:
    1.DEF(字串)
    2.USE(字串)
    3.diffuseColor(三個被區開的數值)
    4.emissiveColor(三個被區開的數值)
    5.specularColor(三個被區開的數值)
    6.shininess(一個數值)
    7.ambientIntensity(一個數值)
    8.transparency(一個數值)
    9.containerField(?)
    10.ckass(?)

    五.ImageTexture:
    這是用圖片來當材質時用的,也是Appearance的子元素。他的attribute:
    1.DEF(字串)
    2.USE(字串)
    3.url(字串)
    4.repeatS(true或flase)
    5.repeatT(true或flase)
    6.containerField(?)
    7.class(?)

    六. PointSet:
    屬於幾何物體,也就是在Shape的Geometry的元素,這個元素是用來表示一個點。他的attribue有:
    1.DEF(字串)
    2.USE(字串)
    3.containerField(?)
    4.Color(?)
    5.Coordinate(?)
    6.class(?)
    基本上因為一個3D圖形只顯示點的狀況並不多,所以這個element其實並沒有出現在那兩個範例裡面,我只是想說點線面一起提出而已。而這實際用法我就不是非常清楚了。或許可以參考X3D實戰講座之三

    七. IndexedLineSet:
    和PointSet一樣,屬於幾何物體的描述。這是描述線的元素。它的attribute有:
    1.DEF(字串)
    2.USE(字串)
    3.coordIndex(一堆被區格開來的數字)
    4.colorPerVertex(true或flase)
    5.colorIndex(?)
    6.set_coordIndex(?)
    7.set_colorIndex(?)
    8.containerField(?)
    9.Color(?)
    10.Coordinate(?)
    11.class(?)
    這個我是從我的temp.x3d看到
    <IndexedLineSet coordIndex="0 1 -1">
    <Coordinate point="-7.295 0 34.603, -6.636 0 34.802"/>
    </IndexedLineSet>

    不過,我後來把他拿起來,寫入另一個自己測試的x3d檔,沒啥反應,所以我不太確定有些attribㄉte的功用。

    八. IndexedFaceSet:
    1.DEF(字串)
    2.USE(字串)
    3.coordIndex(一堆被隔開的數值)
    4.ccw(true或flase)
    5. convex(true或flase)
    6.solid(true或flase)
    7.creaseAngle(一個數值)
    8.colorPerVertex(true或flase)
    9.normalIndex(?)
    10.texCoordIndex(?)
    11.set_coordIndex(?)
    12.set_colorIndex(?)
    13.set_normalIndex(?)
    14.set_texCoordIndex(?)
    15.containerField(?)
    16.Color(?)
    17.Coordinate(?)
    18.Normal(?)
    19.TextureCoordinate(?)
    20.class(?)

    九.Coordinate:
    這個element是IndexFaceSet、IndexedLineSet、LineSet、PointSet的子元素。這是為了定義坐標而存在的(不過我還是不太了解,用了也沒反應)。他的attribute:
    1.DEF(字串)
    2.USE(字串)
    3.point(根據上面第七點的範例,應該是好幾個數字,但我不確定是不是一定要三個數字用空白隔開,再用逗號隔開,還是不管用空白還是逗號都可以,我個人認為是後者)
    4.containerField(?)
    5.class(?)

    十.TextureCoordinate:
    通常是IndexFaceSet與ElevationGrid的子節點。是用來控制外部匯進的Texture坐標。 主要是在Appearance有用到ImageTexture時用到。他的attribute:
    1.DEF(字串)
    2.USE(字串)
    3.point(同第九點的Coordinate)
    4.containerField(?)
    5.class(?)

    十一. Box:
    簡單來講,就是方形。他是屬於幾何實體,也就是Shape的子元素。他的attribute:
    1.DEF(字串)
    2.USE(字串)
    3.size(三個被隔開的數值)
    4.solid(true或flase)
    5.containerField(?)
    6.class(?)

    十二. Sphere:
    同Box都是幾何實體,不過這是球體。他的attribute:
    1.DEF(字串)
    2.USE(字串)
    3.radius(一個數值)
    4.solid(true或flase)
    5.containerField(?)
    6.class(?)

    十三. Cone:
    同Box都是幾何實體,不過這是圓錐。他的attribute:
    1.DEF(字串)
    2.USE(字串)
    3.height(一個數值)
    4.bottomRadius(一個數值)
    5.side(true或flase)
    6.bottom(true或false)
    7.solid(true或false)
    8.containerField(?)
    9.class(?)

    十四. Cylinder :
    1.DEF(字串)
    2.USE(字串)
    3.height(一個數值)
    4.radius(一個數值)
    5.top(true或flase)
    6.side(true或false)
    7.bottom(true或false)
    8.solid(true或false)
    9.containerField(?)
    10.class(?)
    以上十一到十四,可參考X3D基礎實戰講座之四

    十五.Text:
    一樣是屬於幾何實體的element,他的用意就如其名,顯示字而已。他的attribute:
    1.DEF(字串)
    2.USE(字串)
    3.string(一堆被隔開的字串)
    4.length(一堆被隔開個數值)
    5.maxExtent(一個數值)
    6.solid(true或flase)
    7.lineBounds(?)
    8.textBounds(?)
    9.containerField(?)
    10.fontStyle(?)
    11.class(?)

    十六.FontStyle:
    這個是在Text eleement的子元素,用來控制文字的外觀特徵。他的attribute:
    1.DEF(字串)
    2.USE(字串)
    3.family(可填入SERID、SANS、TYPEWRITER這三種基本的字體)
    4.style(可填入PLAIN、BOLD、ITALIC、BOLDITALIC)
    5.justify(?)
    6.size(一個數值)
    7.spacing(一個數值)
    8.language(?)
    9.horizontal(true或flase)
    10.leftToRight(true或flase)
    11.topToBottom(true或flase)
    12.containerField(?)
    13.class(?)
    以上十五到十六,可參考X3D基礎實戰講座之二

    十七.Group:
    這個element應該就是群組的用法,他可以說是很多個shape的母元素。他的attribute:
    1.DEF(字串)
    2.USE(字串)
    3.bboxCenter(三個被隔開的數值)
    4.bboxSize(三個被隔開的數值)
    5.containerField(?)
    6.class(?)
    這個在X3D基礎實戰講座之四 也有提到。

    十八. Viewpoint:
    這是導引瀏覽者視點的element,老實說我沒深入研究,因為感覺目前好像不是很重要……我只想把我自己做好的3D能夠show在網頁上XD~不過我想這在應用上是很重要的。他應該是在Scene的子元素。他的attribute有:
    1. DEF(字串)
    2.USE(字串)
    3.description(字串)
    4.position(三個被隔開的數字)
    5.orientation(四個被隔開的數字)
    6.fieldOfView(一個數字)
    7.jump(true或flase)
    8.centerOfRotation(三個被隔開的數字)
    9.set_bind(?)
    10.bindTime(?)
    11.isBound(?)
    12.containerField(?)
    13.class(?)
    範例test.x3d有的:
    <Viewpoint description="Camera" fieldOfView="0.61087"
    jump="false" orientation="0.595311 0.387093 0.704105 1.49129"
    position="816.178 -173.142 655.841"/>

    十九.NavigationInfo:
    提供瀏覽者的瀏覽方式,有移動、行走、飛行等。他的attribute有:
    1.DEF(字串)
    2.USE(字串)
    3.type(可填入EXAMINE、ANY、WALK 、FLY、NONE)
    4.speed(一個數值)
    5.headlight(true或flase)
    6.avatarSize(三個被隔開的數值)
    7.visibilityLimit(一個數值)
    8.transitionType(可填入ANIMATE、LINEAR、TELEPORT)
    9.transitionTime(一個數值)
    10.transitionComplete(?)
    11.set_bind(?)
    12.bindTime(?)
    13.isBound(?)
    14.containerField(?)
    15.class(?)  
    以上十八、十九點可參可X3D實戰基礎講座之六

    二十.Background :
    在Scene的子元素,是顯示跟背景相關的element。他的attribute:
    1.DEF(字串)
    2.USE(字串)
    3.skyColor(三個被隔開的數值)
    4.skyAngle(?)
    5.groundColor(三個被隔開的數值)
    6.groundAngle(?)
    7.frontUrl(?)
    8.backUrl(?)
    9.leftUrl(?)
    10.rightUrl(?)
    11.topUrl(?)
    12.bottomUrl(?)
    13.set_bind(?)
    14.bind_time(?)
    15.isBound(?)
    16.containerField(?)
    17.class(?)

    OMAKE
    下面幾張是我們為了呈現X3D實際效果而另外寫的DEMO用網頁的截圖,如此可以讓人更快速了解X3D,也希望大家能夠更投入發展這未來全3DLife的願景:

    四甲 493511204 王哲銘 tokyo1985 http://weco.net/blog/tokyo1985
    四甲 493511151 黃鼎峰 Lixs http://weco.net/blog/lixs
    四甲 493511345 林澤沅
    四甲 493511498 盧建竣 pool http://weco.net/blog/pool
    四甲 493511553 樓維恩 CloudEX http://weco.net/user/cloudex
    四甲 493511010 林家民 shortlin http://weco.net/blog/shortlin