級(jí)別: 初級(jí)
Dethe Elza (delza@livingcode.org), 資深技術(shù)架構(gòu)師, Blast Radius
VRML 的重生已經(jīng)使得 Web 對(duì) 3D 相當(dāng)安全
以前,Web 上使用的 3D 曾經(jīng)許諾要與構(gòu)建一個(gè) Web 頁(yè)面一樣簡(jiǎn)單。不幸的是,3D(即使是非常簡(jiǎn)單的 3D)也都比顯示滾動(dòng)的文本和圖片要更加復(fù)雜。每個(gè) VRML 供應(yīng)商都實(shí)現(xiàn)了一組不同的規(guī)范,而且從來(lái)都不相互進(jìn)行溝通。因此 Web 上的 3D 就慢慢消失了。否則又能怎樣呢?后來(lái)出現(xiàn)了 XML 風(fēng)格的 VRML:X3D,它已經(jīng)成長(zhǎng)為 VRML 的兄弟 H-Anim(Humanoid Animation)和 GeoVRML。Web 上的 3D 的最終用途可以超過(guò)虛擬購(gòu)物中心嗎?這篇有關(guān) XML 媒體的最新文章展示了它能實(shí)現(xiàn)哪些功能。在本文中,Dethe 會(huì)著重介紹 X3D 的兩種現(xiàn)在已經(jīng)可以使用的用法,并展望一下 X3D 的未來(lái)。
從 Virtual Reality Markup Language(虛擬現(xiàn)實(shí)標(biāo)記語(yǔ)言,VRML)試圖卷入 Web 風(fēng)潮而未獲成功以來(lái)已經(jīng)有 10 年的時(shí)間了。現(xiàn)在 X3D(使用 XML 開(kāi)發(fā)的 VRML)已經(jīng)成為一項(xiàng) ISO 標(biāo)準(zhǔn),并開(kāi)始開(kāi)發(fā)實(shí)現(xiàn)了。XGL(使用 XML 編寫(xiě)的 OpenGL)是一個(gè)與之競(jìng)爭(zhēng)的 3D XML 規(guī)范。Web Hypertext Application Technologies Working Group(Web 超文本應(yīng)用技術(shù)工作組,WHATWG)目前正在從事 3D canvas 提案的工作。開(kāi)放源碼的 3D 工具 Blender 現(xiàn)在可以導(dǎo)出 X3D(請(qǐng)參閱 參考資料 中更多有關(guān)這些技術(shù)的內(nèi)容)。在所有這些技術(shù)充分發(fā)展之后,也許就是瀏覽器中 3D 顯示的新紀(jì)元了。這些技術(shù)會(huì)如何發(fā)展呢?它們可以與其他 XML 實(shí)現(xiàn)進(jìn)行集成嗎?例如 XHTML 和 SVG?
當(dāng) HTML 依然是星星之火時(shí),VRML 就已經(jīng)出現(xiàn)了。這是試圖將 View Source 和虛擬現(xiàn)實(shí)的概念連接在一起的一次嘗試,可以對(duì) Web 迅速進(jìn)行擴(kuò)展。作為一個(gè)概念來(lái)說(shuō)這非常不錯(cuò),但是它卻面對(duì)著太多的限制:硬件尚未準(zhǔn)備好,OpenGL 也不是一種標(biāo)準(zhǔn)的特性,現(xiàn)有的實(shí)現(xiàn)尚不完整,兼容性也不好。VRML 最廣泛的用途就是虛擬購(gòu)物中心,這并沒(méi)有太多用處;因?yàn)檫@除了依然具有訪問(wèn)真正超市的所有不便之處,還引入了互聯(lián)網(wǎng)購(gòu)物的風(fēng)險(xiǎn)。VRML 繼續(xù)被研究,大部分工作都是在研究領(lǐng)域中開(kāi)展的,但是 Web 社區(qū)卻不關(guān)心這種技術(shù)了。
但是它從來(lái)都沒(méi)有完全消亡,而且時(shí)代已經(jīng)變了。隨著 XML 得到無(wú)所不在的應(yīng)用,VRML 規(guī)范進(jìn)行了重寫(xiě),從而利用 XML 解釋器的優(yōu)點(diǎn)(以及程序員對(duì) XML 比較熟悉這個(gè)優(yōu)點(diǎn))。最終得到的規(guī)范 X3D 是由 Web3D Consortium 負(fù)責(zé)維護(hù)的,它提供了開(kāi)放源碼的工具、例子和文檔(請(qǐng)參閱 參考資料)。游戲、OpenGL 和廉價(jià)的顯卡都驅(qū)動(dòng)著標(biāo)準(zhǔn)計(jì)算機(jī)的圖形能力向超過(guò)早期專用圖形工作站(這些機(jī)器的成本比普通計(jì)算機(jī)高幾個(gè)數(shù)量級(jí))的方向發(fā)展。這些因素現(xiàn)在促進(jìn)了 VRML 的又一次蓬勃發(fā)展。
X3D 正在不斷發(fā)展。盡管目前它仍然只是一種前沿技術(shù),但是使用這種技術(shù)的領(lǐng)域正在不斷發(fā)展,而且變得更加重要。本文提供了兩個(gè)在 X3D 的主要商業(yè)應(yīng)用領(lǐng)域之外的例子:快速原型設(shè)計(jì)和教育。
它的性能怎么樣呢?諸如 Quake 之類的游戲的引擎針對(duì)特定的角度和圖像類型進(jìn)行了優(yōu)化;它們并不是通用的 3D 呈現(xiàn)引擎。另一方面,X3D 播放器不但是一個(gè)通用的 3D 引擎,而且構(gòu)建并維護(hù)了一個(gè)場(chǎng)景圖和一個(gè) XML Document Object Model(DOM)樹(shù)。然而,對(duì)于很多應(yīng)用來(lái)說(shuō),目前的性能就已經(jīng)足夠了,以后可以再進(jìn)行改進(jìn)。
X3D(可能)成功的秘密是 OpenGL 已經(jīng)成為無(wú)處不在的技術(shù)。使用 OpenGL,可以實(shí)時(shí)地呈現(xiàn)高品質(zhì)的 3D 場(chǎng)景,而沒(méi)有光線跟蹤器那樣大的開(kāi)銷。在 OpenGL 基礎(chǔ)上構(gòu)建的語(yǔ)言有很多,從 XGL(請(qǐng)參閱 參考資料),它負(fù)責(zé)使用 XML 對(duì) OpenGL API 進(jìn)行編碼;到 X3D,它負(fù)責(zé)提供一種高級(jí)接口,用來(lái)合并場(chǎng)景圖、動(dòng)畫(huà)和腳本;再到 Flatland 的 3DML,這是基于構(gòu)建塊的概念的。盡管這些技術(shù)的使用日益簡(jiǎn)單,但是它們還是有很多限制。與易用性相比,X3D 看起來(lái)對(duì)性能的關(guān)注似乎不夠;因?yàn)?XGL Web 頁(yè)面已經(jīng)有兩年的時(shí)間沒(méi)有更新了,而且 3DML 格式還沒(méi)有廣泛地得到應(yīng)用。
在 VRML 進(jìn)行標(biāo)準(zhǔn)化之后,又提出并開(kāi)發(fā)了兩個(gè)擴(kuò)展:
- GeoVRML 用來(lái)克服 VRML 對(duì)整個(gè)世界的視角的有限性 —— 僅限于房間中的東西。GeoVRML 使得對(duì)室外場(chǎng)景使用 VRML 更加簡(jiǎn)單,例如海拔圖。
- H-Anim 用來(lái)允許 VRML 對(duì)動(dòng)畫(huà)特性圖進(jìn)行建模 —— 這與商業(yè)程序 Poser 可以實(shí)現(xiàn)的功能類似,但是對(duì)于聯(lián)結(jié)操作(用于逆向運(yùn)動(dòng),從而提供真實(shí)的動(dòng)畫(huà)動(dòng)作)方面有一些限制。
GeoVRML 和 H-Anim 都被吸收到了 X3D 規(guī)范中,但是由于 X3D 是模塊化的,所以并非所有的配置文件和查看器都支持這些擴(kuò)展。由于目前已經(jīng)成為一項(xiàng) ISO 標(biāo)準(zhǔn),X3D 也從中獲益良多。
X3D 使用配置文件的形式定義了完整規(guī)范的幾個(gè)子集:
- Interchange 配置文件可以支持幾何、結(jié)構(gòu)、基本光源和動(dòng)畫(huà),它主要用來(lái)在應(yīng)用程序之間轉(zhuǎn)換數(shù)據(jù)。
- Interactive 配置文件添加了其他光源、增益和傳感器節(jié)點(diǎn),用來(lái)與 3D 環(huán)境進(jìn)行交互。
- Immersive 配置文件添加了音頻、沖突、霧化和腳本功能。
- Full 配置文件添加了 NURBS、H-Anim 和 GeoSpatial 組件。
這些是基本的配置文件。其他配置文件包括 MPEG-4 Interactive,這是 Interactive 配置文件的一個(gè)低級(jí)版本,目標(biāo)是用于移動(dòng)設(shè)備上;還有 CAD Distillation Format(CDF),用來(lái)轉(zhuǎn)換和交換 Computer Aided Drafting(CAD)數(shù)據(jù)。
因此,X3D 目前可以用來(lái)干什么呢?Web3D 站點(diǎn)上列出的主要領(lǐng)域有 CAD、醫(yī)療圖像和可視化仿真,但是還提到了制圖、交互、技術(shù)訓(xùn)練和制作文檔。X3D 還可以用于數(shù)據(jù)的可視化、快速原型、娛樂(lè)和游戲的開(kāi)發(fā)。在本文中我們無(wú)法涵蓋所有這些領(lǐng)域的內(nèi)容,因此將只關(guān)注其中的兩個(gè)領(lǐng)域 —— 快速原型開(kāi)發(fā)和教育,然后我們?cè)俳榻B一下 X3D 的前景。
![]() ![]() |
![]()
|
假設(shè)您希望開(kāi)發(fā)一個(gè)新產(chǎn)品。但是應(yīng)該如何向自己的潛在投資者(或顧客)介紹這個(gè)產(chǎn)品呢?可以構(gòu)建一個(gè)物理模型,讓一個(gè)藝術(shù)家在紙上將其呈現(xiàn)出來(lái),或者使用 X3D 將其仿制出來(lái),并讓有興趣的團(tuán)體觀看它。
圖 1. 圖形(一個(gè)概念性手持式計(jì)算機(jī))

清單 1 展示了主要的 X3D 結(jié)構(gòu)(完整的文件請(qǐng)參閱 下載 一節(jié)中的 fig.x3d),它們用來(lái)創(chuàng)建 圖 1 中的圖形,使用了 FreeWrl 瀏覽器(請(qǐng)參閱 參考資料)。這是一個(gè)非常基本的例子,展示了可以使用 X3D 實(shí)現(xiàn)哪些功能,而不用深入鉆研更高級(jí)的問(wèn)題,例如打光、動(dòng)畫(huà)和腳本。我是手工編寫(xiě)這個(gè)文件的,這是一種選擇,但是大部分人更喜歡使用 3D 繪圖程序,并使用 X3D 呈現(xiàn)給 Web。
清單 1. fig.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' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation= 'http://www.web3d.org/specifications/x3d-3.0.xsd'> <head> <meta name='filename' content='fig.x3d' /> <meta name='author' content='Dethe Elza' /> <meta name='created' content='2005-12-02' /> <meta name='description' content='Prototype of the Fig, a notional handheld computer.' /> </head> <Scene> <!-- This NavigationInfo node is added to many scenes, making examination of objects easier. --> <NavigationInfo type='"EXAMINE" "ANY"' /> <Viewpoint description='' position='0 0 .55' /> <Background skyColor="1 1 1" groundColor="1 1 1" /> <!-- Set up the basic shape of the device --> <Shape DEF="screen"> <Appearance> <Material diffuseColor='.8 .8 .8' /> <ImageTexture url="hello_world.png" /> </Appearance> <Box size='.5 .3 .01' /> </Shape> <!-- Put a logo on the lower-left side --> <Transform translation="-.23 -.12 .015"> <Shape DEF="logo"> <Appearance> <Material diffuseColor=".8 .8 .8" /> <ImageTexture url="fig_logo.png" /> </Appearance> <Box size=".025 .03 .00001" /> </Shape> </Transform> <!-- Define a speaker grille and translate to the left side --> <Transform translation="-.23 .12 .015"> <Group DEF="Grille"> <!-- Dot for the first hole of grille --> <Shape> <Appearance DEF="grey_hole"> <Material diffuseColor=".2 .2 .2" /> </Appearance> <Sphere DEF="Dot" radius=".001" /> </Shape> <!-- Now we re-use the dot, translating to a new location --> <Transform translation="-.01 -.005 0"> <Shape use="Dot" /> </Transform> <!-- Snipped five more translated dots --> </Group> </Transform> <!-- Reuse the speaker grille, translated to the right side --> <Transform translation=".23 .12 .015"> <Group USE="Grille" /> </Transform> <!-- Define a raised area on the left for hand-hold and buttons --> <Transform translation="-.23 0 0"> <Shape DEF="control_area"> <Appearance DEF="white_plastic"> <Material diffuseColor='.9 .9 .9' shininess="1" /> </Appearance> <Box size=".04 .3 .03" /> </Shape> </Transform> <!-- Re-use handle, translating it to the right --> <Transform translation=".23 0 0"> <Shape USE="control_area" /> </Transform> <!-- Create a raised bevel to round the box --> <Transform translation="-.25 0 0"> <Shape DEF="vertical_bevel"> <Appearance USE="white_plastic" /> <Cylinder height=".3" radius=".015" /> </Shape> </Transform> <!-- Re-use bevel --> <Transform translation=".25 0 0"> <Shape USE="vertical_bevel" /> </Transform> <!-- Four more bevels snipped --> <!-- Define a sphere to round the corner --> <Transform translation="-.25 -.15 0"> <Shape DEF="Corner"> <Appearance USE="white_plastic" /> <Sphere radius=".015" /> </Shape> </Transform> <!-- Three more corners snipped --> <!-- Define the camera/microphone grouping in the top bevel --> <Transform translation="0 .148 .014"> <Group DEF="camera_microphone"> <Transform rotation="1 0 0 1.57"> <Shape> <Appearance USE="white_plastic" /> <Cylinder radius=".006" height=".002" /> </Shape> </Transform> <Shape DEF="camera"> <Appearance> <Material diffuseColor="0 0 0" shininess="1.0" /> </Appearance> <Sphere radius=".003" /> </Shape> <Transform translation="-.03 -.002 .01"> <Shape DEF="microphone"> <Appearance USE="grey_hole" /> <Box size=".006 .001 .001" /> </Shape> </Transform> <Transform translation=".03 -.002 .01"> <Shape USE="microphone" /> </Transform> </Group> </Transform> <!-- Define the coloured buttons on the left --> <Transform translation="-.23 .02 .015"> <Group DEF="buttons"> <!-- Red button --> <Transform translation="-.01 0 0"> <Shape> <Appearance> <Material diffuseColor="1 0 0" shininess=".4" /> </Appearance> <Sphere radius=".006" /> </Shape> </Transform> <!-- Yellow, Green, and Blue buttons snipped --> </Group> </Transform> <!-- Re-use buttons on the right, flipped --> <Transform translation=".23 .02 .015" rotation="0 1 0 3.15"> <Group USE="buttons" /> </Transform> </Scene> </X3D> |
![]() ![]() |
![]()
|
教育是 X3D 可以發(fā)揮作用的另外一個(gè)領(lǐng)域。利用免費(fèi)的工具,我們可以創(chuàng)建教學(xué)資料、動(dòng)畫(huà)、模擬,等等。學(xué)生可以進(jìn)入到 X3D 世界中,查看源代碼并對(duì)其進(jìn)行擴(kuò)展或調(diào)節(jié)。 圖 2 是由一個(gè) Python 腳本(下載 中也包括了這個(gè)腳本)生成的理想實(shí)體的簡(jiǎn)單視圖。
圖 2. 理想實(shí)體

清單 2 展示了主要的 X3D 結(jié)構(gòu)(完整的文件請(qǐng)參閱 下載 一節(jié)中的 platonics.x3d),它們用來(lái)創(chuàng)建上面的圖像。使用腳本來(lái)生成模型,就可以創(chuàng)建簡(jiǎn)單或復(fù)雜的可視化效果。另外,可以使用腳本在不同格式之間進(jìn)行轉(zhuǎn)換,從而對(duì)由(或?yàn)椋┢渌绦蛩傻?3D 內(nèi)容重新進(jìn)行規(guī)劃(請(qǐng)參閱 參考資料)。
清單 2. platonics.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' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation= 'http://www.web3d.org/specifications/x3d-3.0.xsd'> <head> <meta name='filename' content='platonics.x3d' /> <meta name='author' content='Dethe Elza' /> <meta name='created' content='2005-10-20' /> <meta name='description' content='Display of the Platonic solids' /> </head> <Scene> <!-- This NavigationInfo node is added to many scenes, making examination of objects easier. --> <NavigationInfo type='"EXAMINE" "ANY"' /> <Viewpoint description='Default' position='0 0 7' /> <Background skyColor="1 1 1" groundColor="1 1 1" /> <!-- tetrahedron description snipped --> <!-- cube description snipped --> <!-- octohedron description snipped --> <Transform translation="1.25 0 0" scale=".5 .5 .5"> <!-- this is the dodecahedron description --> <Shape> <Appearance> <Material diffuseColor="0 1 0" /> </Appearance> <IndexedFaceSet coordIndex="0,7,8,15,4,-1, 6,10,9,8,7,-1, 0,1,5,6,7,-1, 1,2,12,11,5,-1, 12,13,16,17,11,-1, 2,3,18,13,12,-1, 4,3,2,1,0,-1, 3,4,15,14,18,-1, 6,5,11,17,10,-1, 9,10,17,16,19,-1, 8,9,19,14,15,-1, 13,18,14,19,16"> <Coordinate point=".577 .577 .577, .934 0 .357, .577 -.577 .577, 0 -.357 .934, 0 .357 .934, .934 0 -.357, .577 .577 -.577, .357 .934 0, -.357 .934 0, -.577 .577 -.577, 0 .357 -.934, .577 -.577 -.577, .357 -.934 0, -.357 -.934 0, -.934 0 .357, -.577 .577 .577, -.577 -.577 -.577, 0 -.357 -.934, -.577 -.577 .577, -.934 0 -.357" /> </IndexedFaceSet> </Shape> </Transform> <!-- icosahedron description snipped --> </Scene> </X3D> |
![]() ![]() |
![]()
|
我到現(xiàn)在還沒(méi)有看到過(guò)直接使用 X3D 來(lái)開(kāi)發(fā)游戲內(nèi)容或游戲世界的例子。盡管最近一段時(shí)間之內(nèi)我們還無(wú)法使用 X3D 重寫(xiě) Quake 或 Halo 之類的游戲,但是編寫(xiě)類似的程序是可能的。SVG 曾經(jīng)一度被認(rèn)為速度太慢,不適合用來(lái)開(kāi)發(fā)游戲,但是現(xiàn)在時(shí)代已經(jīng)改變了。現(xiàn)在 Gnome 項(xiàng)目已經(jīng)使用 SVG 將自己的程序進(jìn)行了重寫(xiě)。很快,您就會(huì)意識(shí)到盡量使用 XML 來(lái)保存媒體內(nèi)容的優(yōu)點(diǎn),這可以在所有的內(nèi)容上充分利用各種工具。在這種情況中,為 2D 內(nèi)容使用 SVG 和為 3D 內(nèi)容使用 X3D 就更有意義了。
![]() ![]() |
![]()
|
盡管 X3D 與 SVG 是獨(dú)立進(jìn)行開(kāi)發(fā)的,但是這兩種技術(shù)對(duì)于 3D 和 2D 圖形來(lái)說(shuō)都是非常優(yōu)秀的。到現(xiàn)在為止,我還沒(méi)有見(jiàn)過(guò)任何工具可以支持在 X3D 中使用 SVG 進(jìn)行表面紋理的處理,但是的確有計(jì)劃要支持這種功能。如果人們已經(jīng)編寫(xiě)了一些工具來(lái)使用 SVG 顯示 3D 或者一些 canvas
標(biāo)記,那么采用一種方法對(duì) SVG 文件中的 X3D 進(jìn)行靜態(tài)呈現(xiàn)就更有意義了。
使用最新的版本 Firefox 1.5,SVG 和可以使用腳本編程的 canvas
標(biāo)記就可以進(jìn)入主流領(lǐng)域了(內(nèi)嵌到 Firefox 中,而且不需要任何插件)。WHATWG 和 Firefox 開(kāi)發(fā)人員已經(jīng)提出一些提案對(duì) canvas
標(biāo)記進(jìn)行擴(kuò)展,使其包括 3D 上下文。由于 Firefox 是在一個(gè)跨平臺(tái)的應(yīng)用程序工具包(XULRunner)的基礎(chǔ)之上構(gòu)建的,因此應(yīng)用程序可以充分利用強(qiáng)大的 2D 和 3D 工具(以及這個(gè)工具包中其他基于 XML 的技術(shù)),這種可能性正在吸引人們的興趣。我預(yù)計(jì)會(huì)出現(xiàn)可以完全使用 XML 媒體堆棧的應(yīng)用程序。
另外一個(gè)可以看到 X3D 發(fā)展的領(lǐng)域是 Fab Labs(請(qǐng)參閱 參考資料)。這是由 MIT 發(fā)起的,這些小型的工作組讓您幾乎能夠創(chuàng)建任何您可以建模的東西。尚未進(jìn)行標(biāo)準(zhǔn)化的(就我所了解的而言)是用來(lái)捕獲這些模型的 3D 語(yǔ)言。如果存在這種語(yǔ)言(讓我們將其稱為 Fabrication Markup Language(FabML)),X3D 就可以為它構(gòu)造最佳的基礎(chǔ)。
![]() ![]() |
![]()
|
描述 | 名字 | 大小 | 下載方法 |
---|---|---|---|
Example code | x-matters43-examples.zip | 72KB | HTTP |
![]() |
||||
![]() |
關(guān)于下載方法的信息 | ![]() |
![]() |
Get Adobe® Reader® |
學(xué)習(xí)
- 您可以參閱本文在 developerWorks 全球站點(diǎn)上的 英文原文。
- Extensible 3D (X3D) Tooltips 對(duì)所有的 X3D 元素和屬性進(jìn)行了概要介紹和權(quán)威性的說(shuō)明。
- VRML 2.0 Sourcebook 是 X3D 版本的 Sourcebook 樣例文件。
- Web3D Consortium 是開(kāi)發(fā) X3D 規(guī)范、信息和工具的主頁(yè)。
- H-Anim Specification 在 VRML 和 X3D 中用來(lái)進(jìn)行特征圖建模。
- GeoVRML 是一個(gè)用來(lái)在 VRML/X3D 中引用地理數(shù)據(jù)的工作組,例如地圖和 3D 地理模型。
- X3D Frequently Asked Questions 可以提供有關(guān) X3D 的背景知識(shí)。
- Wikipedia 中的 X3D entry 有一些歷史信息和進(jìn)一步的鏈接。
- 3D Industry Forum 是 Web3D Consortium 的主要競(jìng)爭(zhēng)者,是 Adobe Acrobat 中內(nèi)嵌的二進(jìn)制 U3D 規(guī)范的開(kāi)發(fā)團(tuán)體。
- Flatland 是高級(jí)的基于 3DML “Blocks” 的規(guī)范和 Rover 軟件的開(kāi)發(fā)者。
- 查看 VRML Shopping Mall。為了證明我對(duì) VRML 購(gòu)物中心的批評(píng)是符合實(shí)際情況的,您可以自己體驗(yàn)一下(這需要 VRML 查看器)。
- 如果沒(méi)有 OpenGL,VRML 的重生就是不可能的。
- 在很多方法中,Scalable Vector Graphics (SVG) 是與 X3D 對(duì)應(yīng)的 2D 伙伴,將來(lái)它們應(yīng)該可以一起很好地工作。
- 了解有關(guān) SVG 的基本介紹,請(qǐng)閱讀 Nicholas Chase 的 developerWorks 教程 “SVG-可伸縮向量圖形介紹” (2004 年 3 月)。在 developerWorks 的 XML 專區(qū) 中,還可以發(fā)現(xiàn)大量的 SVG 內(nèi)容。
- Web Hypertext Application Technology Working Group (WHATWG) 正在研究下一代基于 HTML 和 Web 的技術(shù)。
- 在 Edd Dumbill 的文章 “HTML 的未來(lái)” (developerWorks,2005 年 12 月)中可以看到更多有關(guān) WHATWG 和
canvas
的內(nèi)容。
- FabLab,MIT 的 Center for Bits and Atoms 已經(jīng)組成了一個(gè)大約 $20,000(US)的包,它為人們構(gòu)建物理對(duì)象提供了開(kāi)放源碼的等價(jià)物。
- 了解如何才能成為 IBM 認(rèn)證的 XML 及相關(guān)技術(shù)的開(kāi)發(fā)人員。
獲得產(chǎn)品和技術(shù)
- FreeWRL Viewer 是一個(gè) Linux 和 OS X 上的查看器(Windows 支持很快就會(huì)有了)。本文中就是使用這個(gè)工具來(lái)對(duì)例子進(jìn)行測(cè)試的,希望在 2006 年初可以支持完整的交換配置文件。
- Xj3D Viewer 是一個(gè)使用 Java 語(yǔ)言編寫(xiě)的開(kāi)放源碼 X3D 查看器。
- X3D-Edit 是一個(gè)用來(lái)構(gòu)建 X3D 圖形的基于 Java 的編輯器。
- lib3ds 是一個(gè)用來(lái)使用 3DS 模型格式的開(kāi)放源碼庫(kù)。
- Rawkee Maya Exporter 可以用來(lái)從 Alias Maya 應(yīng)用程序中導(dǎo)出 X3D 數(shù)據(jù)。
- Blender 是一個(gè)重要的開(kāi)放源碼 3D 應(yīng)用程序,提供了 3D 導(dǎo)出器。
![]() |
||
|
![]() |
Dethe Elza 自己最喜歡的職位是首席瘋狂科學(xué)家(Chief Mad Scientist)。可以通過(guò) delza@livingcode.org 與 Dethe 聯(lián)系。他在 http://livingcode.blogspot.com/ 上維護(hù)了一個(gè)有關(guān) Python 和 Mac OS X 的 blog,并為自己的孩子編寫(xiě)程序。歡迎為這個(gè)欄目提供建議和推薦信息。 |