`
web3d
  • 浏览: 83507 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

X3D - 一次编写、处处、时时都可渲染的三维图形格式

 
阅读更多
<p>
   
   
   
X3D,一次编写、处处、时时都可渲染的三维图形格式。</p>
<p><br><a title="http://www.w3.org/html/wg/" href="http://www.w3.org/html/wg/">W3C</a>

正致力于增加HTML 5中对3D的支持,Web3D协会的X3D-HTML5工作组正与W3C紧密协作,阐述他们对整合X3D与HTML的思路和想法。其目标是让每个浏览器中都有一种通过DOM整合的跨平台、开发标准的三维图形渲染能力。<br><a title="http://www.web3d.org/x3d" href="http://www.web3d.org/x3d/">X3D</a>

是一种抽象的图形格式;只要操作系统底层及硬件支持某些形式的像素显示,X3D就可在该环境下被渲染。不管你的设备是使用DirectX图形库还是继续不
断发展的OpenGl版本系列、或一些至今为写出来的低级图形层,X3D将都能在其之上渲染,而且如果设备包含了用户i/o能力,X3D将也能使用该能
力。<br><br>

带有对HTML DOM使用事件传递的演示,可到此处观看,它采用X3DDOM - 一种实验性的开发运行环境,以JavaScript及WebGL实现,允许在(X)HTML页面中内联X3D内容。它执行当前 <a title="http://www.w3.org/TR/html5/no.html#declarative-3d-scenes" href="http://www.w3.org/TR/html5/no.html#declarative-3d-scenes">HTML5规范 - 描述性三维内容</a>

并允许以作为HTML DOM树的方式包含X3D元素。<br>

这种整合模型仍在发展中,并开发讨论。要推动该项尝试还有很多工作有待完成。有兴趣参与的请联系 <a title="alex.stewart@crc.ca" href="mailto:alex.stewart@crc.ca">John Stewart</a>

。可以到<a title="http://www.w3.org/html/wg/" href="http://www.w3.org/html/wg/">X3D-HTML5</a>

这里找到更多有关该工作组的信息。</p>
<p></p>
<p></p>
<table class="zeroBorder" style="width: 893px;" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr valign="top">
<td align="right">Q1
</td>
<td valign="top">
HTML
                  5将增加对视频及3D的支持。我们谈论到了很多关于WebGL的内容,但你能给我们提供更多关于Web3D HTML 5工作组的信息吗?
</td>
</tr>
<tr valign="top">
<td align="right">A1
</td>
<td valign="top">
在开始这项讨论前,我将在HTML 5 3D沙箱中的沙里画一条线,并描述我在这条线两边所看到的,以及两边在Web上所具有的位置。<br>

                    一方面,我们有Javascript的编程API,使用一些形式的三维画布,像WebGL或O3D。另一方面,我们有保留模式的、DOM整合的三维图形抽象,像X3D。<br>

                    首先的一方面(让我们称之为Javascript方面)是由图形程序员创建,这些Coder有的希望让他们的硬件发挥最大的功效,有的则对
4x4矩阵的巧妙操作而陶醉,睡觉时都会梦到GLSL
。很多的X3D人,包括我自己,
热衷于
做这种东东。
<br>

                    第二个方面,我将称之为X3D方面,为那些web开发者或使用图形像他们的工作致意的人们。也许他们想构建三维用户界面,或者是他们在进行DNA的研究,或者采矿行业他们需要使用三维可视化作为工作的一部分。<br>

                    分到X3D这边的人们可能也想使用在Javascript层所用不到的特性,如空间化声音,或者想使用已经包含在X3D的面向图形的概念,如光线交叉、碰撞检测或视图
投影剔除(frustum culling
)。<br>

                    这些人可能也想他们的模型非常便携 - WebGL是紧密遵循
OpenGL ES 2.0的一种API,而同时
设计上
X3D则是通用的,可以被OpenGL(任何版本)、DirectX或一些其它的未来的系统渲染。
<br>

所以,人们将会有选择。我们每天都会看到像这样的选择。拿汽车做比,有些人喜欢
like to get under the hood and tinker
                    with the innards,有的人只喜欢进到车里面并开到目的地。我们把Javascript这边看作是
修补工具,而X3D作为仅想舒适的从“A”到达“B”的人们的交通工具。
</td>
</tr>
<tr valign="top">
<td align="right" valign="top">
</td>
<td valign="top">
</td>
</tr>
<tr valign="top">
<td align="right">Q2
</td>
<td valign="top">HTML5类浏览器在不需要任何插件的情况下将能显示X3D文件,有这种机会吗?
</td>
</tr>
<tr valign="top">
<td align="right">A2
</td>
<td valign="top">这是绝对的 - 这正是我们与HTML5工作组联络的目标:在每款浏览器中以DOM形式整合、跨平台、开放标准的三维图形。<br>

                  让HTML浏览器编写者
原生
支持SVG与MathML用了一段时间,所以我们预计X3D也需要一段时间。<br>
</td>
</tr>
<tr valign="top">
<td align="right">
</td>
<td valign="top">
</td>
</tr>
<tr valign="top">
<td align="right">Q3
</td>
<td valign="top">HTML5包含了X3D的解析器吗?
</td>
</tr>
<tr valign="top">
<td align="right">A3
</td>
<td valign="top">其实缺省情况下就具有该功能。
Dr. Behr的X3DOM实现就表明了X3D与HTML5的紧密集成确实是可行的,而且很容易做到。
<br>

当然,我们期望HTML5浏览器编写者最后会原生的包含对X3D的实现,要么是包含像FreeWRL (<a href="http://freewrl.sourceforge.net/" target="_blank">http://freewrl.sourceforge.net</a>

)这样的
开源多平台库,或者是编写他们自己的库。</td>
</tr>
<tr valign="top">
<td align="right">
</td>
<td valign="top">
</td>
</tr>
<tr valign="top">
<td align="right">Q4
</td>
<td valign="top">坦率的说,X3D一直都未成功做到让那些3D艺术家会从他们的DCC软件
(3ds max, maya, softimage,...)导出为这种格式。X3D与如Collada
(.dae 与 .zae) 之间的优势各自是什么?
</td>
</tr>
<tr valign="top">
<td align="right">A4
</td>
<td valign="top">我们应该谈谈X3D与Collada之间概念性区别。<br>

主要的区别在于Collada仅仅是模型交换格式,而X3D提供了模型交换及三维运行时环境。X3D给了你创建虚拟模型及与之交互的能力;它提供了不仅在屏幕上获得三角形,并且交换及管理那些三角形(让Web页面创建者创建引人注目的内容)的方法学。<br>

Collada允许用于
"bleeding edge"式的三维模型创建,而X3D给用户的是稳定的、ISO标准化的格式
,这样就不仅仅是三维模型的一般的交换,还有该模型的交互效果。<br>

                  所以,再重复一下,就是我们有二元性,它给用户可选择性。<br>

                  Dr Johannes Behr of Fraunhofer, 给过我下面的一个实例,我认为它很好的展示了我们怎样看待Collada与X3D:<br>

                  "Collada是一种真正的数据容器。所以你可以把你的模型从工具“A”搬到
工具
“B”再搬到
工具
“C”,而且还想在“C”中获取你在“A”中的特定的扩展,尽管“B”对之无法理解。你看,差不多每款Collada工具都编写并增加了自己对数据的扩展。Collada格式就是为了这种扩展性而生的,这是该设计的一种强大功能。<br>

                  Collada因此也就是从工具“A”到工具“C”获取数据而不会丢失内容的一种容器。但它不是一种传递或部署用的格式。<br>

这与图像和文本文件的情况相似。很多人用psd文件存储带有层结构的图像,并从一个工具到另一个工具可以获取数据,但没有一个人会把那个psd文件分发到
网络上。文件文件也同样。每个人都会用.doc或.odf来存储文本,但最终用pdf来传递。
因此,在不同领域都会有这种二元性。
<br>

                  3D方面也有同样的处理。在你的管线中使用Collada,而在最终的运行时则是一种传递格式(像X3D)。<br>

这不仅仅是我的观点:想了解Collada和X3D之间更多背景知识,以及为什么“X3D是应用于Web的一种理想语言“请阅读白皮书, by Rémi
                  Arnaud (founder of the COLLADA initiative) 及 Tony Parisi,
                  (co-founder of VRML, and X3D architect):<a href="http://www.khronos.org/collada/presentations/Developing_Web_Applications_with_COLLADA_and_X3D.pdf" target="_blank">http://www.khronos.org/collada/presentations/Developing_Web_Applications_with_COLLADA_and_X3D.pdf</a>


                  )
</td>
</tr>
<tr valign="top">
<td align="right">
</td>
<td valign="top">
</td>
</tr>
<tr valign="top">
<td align="right">Q5
</td>
<td valign="top">Web上还有很多3D内容格式,看起来好像网站会宁可选择Flash的3D引擎,尽管其性能很低,也不愿选择其它插件。你认为伴随着HTML5的应用,这种情况会改变?
</td>
</tr>
<tr valign="top">
<td align="right">A5
</td>
<td valign="top">是的,有几个原因。<br>

                  1) Flash不是开放标准。而Web是建立在开发标准之上的。<br>

                  2) Flash当前不支持GPU的使用。<br>

                  3) Flash没有多厂商的支持。
</td>
</tr>
<tr valign="top">
<td align="right">
</td>
<td valign="top">
</td>
</tr>
<tr valign="top">
<td align="right">Q6
</td>
<td valign="top">HTML
                  5将会用JavaScript来处理交互。从性能的角度,你相信JavaScript能处理大场景、游戏交互(AI、物理学等等)?
</td>
</tr>
<tr valign="top">
<td align="right">A6
</td>
<td valign="top">...
                  及场景中对象的碰撞检测,
及投影剔除(frustum culling
),及导航与用户交互及场景中的动作,以及用户当前所期望的其它所有内容,或者希望以他们的知识水平扩展....<br>

                  Javascript能”处理“大场景吗?你可以以任何一门计算语言来编写出几乎所有东西,它是否是最理想的反而不是真正的问题所在。<br><br>

                  首先,我们来谈谈顶点/纹理渲染的速度。<br>

                  In Javascript over WebGL,最少量的Javascript被用于渲染三角形与纹理 - 因为GPU在进行渲染。如果你丢入少量的housekeeping或交互,帧频会显著下降。<br>

                  用一些真实世界的数字:
Dr. Johannes Behr of Fraunhofer发现在他的
X3D-Javascript-WebGL X3DOM实现中,小模型的渲染比同样平台原生X3D浏览器至少要慢30至50倍。
当然,更多的代码优化仍会进行;但要正确的来看待,我认为我为FreeWRL做的最大的优化是移除了用Perl进行housekeeping而完全基于C实现 - 帧频的提升是比较显著的。对于光线交叉、
投影剔除、用户交互等,Javascript能计算得多快还有待确定,但看起来与原生应用程序相比至少要慢两个级别。对于桌面系统,那可能还不是问题,但在移动领域电池使用时间与CPU周期紧密相关,可能需要更多的考虑。<br><br>

第二,读者也应该要记住X3D有内置的运行时环境;X3D浏览器作者花费了相当多的时间在确保运行时环境执行良好。具有原生X3D实现不仅意味着对三角形和纹理的更快渲染,也意味着统一、高效的运行时架构。<br><br>

第三,我们发现浮点数的精度对高精度位置数据来说还不够,所以X3D使用了双精度数来进行内部计算,如插值器以及地理空间数据管理等。Dr.
Behr已提到他的小组在X3DOM 基于Javascript的X3D实现时已遭遇这个浮点精度问题。<br><br>

最后,有个似乎被很多人漏过的问题,X3D提供了你的图形软件一种抽象的视图,那是X3D浏览器实现者的工作,即确保几何体尽可能高效快捷的被选入,而且
X3D浏览器会跟随软件及相关库的改进。艺术家的时间最理想化的使用不是担忧运行时的实现及特定软件的效率,而是创建引人注目的跨平台内容。
</td>
</tr>
<tr valign="top">
<td align="right">
</td>
<td valign="top">
</td>
</tr>
<tr valign="top">
<td align="right">Q7
</td>
<td valign="top">对非专业人士来说,Web3D协会意味着VRML。你认为协会能带来被广泛应用的新技术吗?
</td>
</tr>
<tr valign="top">
<td align="right">A7
</td>
<td valign="top">VRML
是标准以前的系列。不否认在开始的时候,VRML图形文件显示出 - 与现在的标准比较 -
粗糙的、非现实感图形。但要记得当VRML-1出来的时候,计算机图形行业正处于它的幼年,而且能渲染这种图形的计算机非常昂贵,很多感兴趣的人无法接触
到。所以可能对于VRML的一些负面感受中很少一部分是真正针对VRML,而更多的是对那时计算机行业的状态。<br>

                  当前的X3D规范保留了与VRML-97的向后兼容性。我们在继续保持这种完整的向后兼容性,同时让标准成长到满足当今的图形需求,并推动该技术发展;比如X3D实现光线跟踪。<br>

VRML/X3D标准的“长寿性”和“跨平台性”对很多用户非常重要。我讲个故事。最近有一位NASA的员工问我将VRML-1整合进FreeWRL浏览器的事,VRML-1先于VRML-97.我寻找在线规范,而且半天之后,该用户就能在他的桌面Macintosh计算机上查看这些文件了。其它15岁的图形格式还有多少能被渲染呢?<br>

有人提到“三维图形”的时候,从脑海里面出现的第一件事就是这个伟大的产品来自好莱坞及游戏公司。我们倾向于忘记科学及医学成像这些领域中3D模型的“长寿性”与跨平台的兼容性是最为重要的事情。<br>

                  Web3D协会正在继续向世界带来开放的三维渲染技术。<br>

X3D:一次编写、任何地方、任何时候都可渲染。
</td>
</tr>
<tr valign="top">
<td align="right">
</td>
<td valign="top">
</td>
</tr>
<tr valign="top">
<td align="right">Q8
</td>
<td valign="top">关于嵌入式设备如
Smartphones &amp; iPhones;HTML5将也能够在那些”计算机“上显示三维内容吗?
</td>
</tr>
<tr valign="top">
<td align="right">A8
</td>
<td valign="top">X3D是一
种抽象的图形格式;只要操作系统底层及硬件支持某些形式的像素显示,X3D就可在该环境下被渲染。不管你的设备是使用DirectX图形库还是继续不断发展的OpenGL版本系列、或一些至今未写出来的低级图形层,X3D将都能在其之上渲染,而且如果设备包含了用户i/o能力,X3D将也能使用该能力。</td>
</tr>
</tbody></table>
<p>原文:http://www.3d-test.com/interviews/x3d_2.htm<br><br>

翻译:http://blog.csdn.net/x3dcn/archive/2010/01/03/5124473.aspx</p>
分享到:
评论

相关推荐

    3D播放器(x3D-VideoPlayer)v1.6中文版内含注册码

    X3D播放器(x3D-Video Player)可以帮助你打开并播放3d视频文件。您将能够观看视频和电影,在3D应用程序显示文件信息,当你预览。您可以更改3D视频渲染选项,并在任何时间暂停视频。 游戏特色 易于使用的用户界面 支持...

    x3d-editor x3d编辑软件

    此软件可以编辑x3d文件,功能强大,操作简便

    VDFN3X3-10L VDFN5X6-10L VDFN6X5-8L封装库三维视图PCB库AD库(2D3D库).zip

    VDFN3X3-10L VDFN5X6-10L VDFN6X5-8L封装库三维视图PCB库AD库(2D3D库),.PcbLib后缀库文件,包括2D和3D视图封装库,详细封装规格列表如下:Component Count : 3 Component Name --------------------------------...

    x3d-edit.rar_X3D edit_X3D-Edit3_x3d edit 3.2_x3d-ed_虚拟社区

    X3d虚拟校园,用x3dedit 3.2开发

    x3d-圆环挤压造型

    x3d虚拟现实技术圆环,如没此软件,用editplus打开编译即可,适合初学者!

    X3D.rar_x3d_x3d-edit_x3d-virtual-realit_x3d使用_x3d实用教程

    X3D的学习课程,很不错,学习X3D一直用这份资料,值得推荐给大家

    X3D-Editv3.1自明修改版2008

    X3D-EDIT原作者设想将整个软件置于系统根目录,这种思路太不符我们的习 惯,我做了一些修改,让其可以自由的放置,当然,放在中文目录下是大大的有 问题的。 正常安装了JDK或JRE后,系统注册表中会加入相应信息,...

    X3d-2020.rar

    X3D是一种专为万维网而设计的三维图像标记语言。全称可扩展三维(语言),是由Web3D联盟设计的,是VRML标准的最新的升级版本。 该资源可以用于编辑X3D和查看X3D文件。

    ISO-IEC-FDIS-19775-2.2-X3D-SceneAccessInterface

    X3D是一种专为万维网而设计的三维图像标记语言。全称可扩展三维(语言),是由Web3D联盟 设计的,是 VRML 标准的最新的升级版本。 X3D 基于 XML 格式开发,所以可以直接使用 XML DOM 文档树、XML Schema 校验等技术...

    x3d-正方体

    x3d虚拟现实技术正方体,如没此软件,用editplus打开编译即可,适合初学者!

    ISO-IEC-19775-1.2-X3D-AbstractSpecification

    X3D是一种专为万维网而设计的三维图像标记语言。全称可扩展三维(语言),是由Web3D联盟 设计的,是 VRML 标准的最新的升级版本。 X3D 基于 XML 格式开发,所以可以直接使用 XML DOM 文档树、XML Schema 校验等技术...

    Python库 | x3d-0.0.35.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:x3d-0.0.35.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    X3D浏览器——能够浏览X3D编程的程序

    能够浏览X3D编程的程序 例子: #VRML V2.0 utf8 # X3D-to-VRML-97 XSL translation autogenerated by X3dToVrml97.xslt # http://www.web3d.org/x3d/content/X3dToVrml97.xslt # Generated using XSLT processor: ...

    x3d-球几何节点

    x3d虚拟现实技术球,如没此软件,用editplus打开编译即可,适合初学者!

    x3d三维立体网页设计代码

    x3d教材虚拟现实立体动画游戏程序设计源代码和素材,展现五大设计十大技术......包括虚拟人运动设计、三维立体动画设计、游戏动画设计、影视动画设计、、、、、基础知识设计代码........

    x3d-圆锥几何节点

    x3d虚拟现实技术圆锥,如没此软件,用editplus打开编译即可,适合初学者!

    X3D 3D文字制作工具绿色中文版

    X3D(Extensible3D-可扩展3D)是一个软件标准,定义了如何在多媒体中整合基于网络传播的交互三维内容。X3D将可以在不同的硬件设备中使用,并可用于不同的应用领域中。比如工程设计、科学可视化、多媒体再现、娱乐、...

    x3d-圆柱几何节点

    x3d虚拟现实技术圆柱,如没此软件,用editplus打开编译即可,适合初学者!

    虚拟三维宠物场景(X3D)

    用X3D技术实现的三维房间,主程序请参考txt里的内容...........................

    关于X3D 实战教程

    X3D 是 VRML的继承。VRML(Virtual Reality Modeling Language - 虚拟现实建模语言)是原来的网络3D图形的ISO标准(ISO/IEC 14772)。X3D 相对VRML改进,提供了一些新特性

Global site tag (gtag.js) - Google Analytics