0

我是 3D 图形世界的新手。我有一个要在网络浏览器中显示的 x3d 文件。我正在尝试使用以下代码。

<Shape>
   <Appearance>
   <Material diffuseColor='0.6 0.0 0.6' specularColor='0.8 0.8 0.8' shininess='0.145'/>
   </Appearance>
   <inline url="full.x3d"> </inline> 
</Shape>

这是写在本地 html 文件中的,“full.x3d”文件与 html 文件位于同一目录中。当我打开 html 文件时,x3d 框只显示正在加载......即使经过很长时间也没有加载。

x3d 文件本身很好。如果我手动将其内容复制到 html 文件,我会得到一个很好的输出。

我不确定为什么 x3dom 没有从文件中获取数据。我没有使用任何本地服务器,直接在浏览器中打开html。

而且这个问题不仅限于我的文件。当我从 x3d 教程网站下载并运行示例文件时,它也无法加载附加的 x3d 文件。

4

2 回答 2

1

您的部分问题与浏览器上的安全设置有关。默认情况下,不允许浏览器访问系统上本地的文件。您需要以允许浏览器访问这些本地文件的方式启动浏览器。请参阅有关启动 Chrome 以允许从文件访问文件的答案:

如何在“--allow-file-access-from-files”模式下使用 Chrome 启动 html?

请注意,您必须完全关闭 Chrome 才能使其正常工作(包括驱动器、环聊或计算机上运行的任何其他与 Chrome 相关的软件。)我以前遇到过这个问题;我花了一段时间才终于弄清楚。

供您参考,这是我用来显示 x3d 文件的 HTML(注意:我的机器上本地有 js 文件)

 <html>
  <head>
    <title>My first X3DOM page</title>
    <link rel="stylesheet" type="text/css" href="x3dom-1.6.1/x3dom.css"></link>
    <script type="text/javascript" src="x3dom-1.6.1/x3dom-full.js"></script>
    <script type="text/javascript" src="x3dom-1.6.1/ammo.js"></script>
    <script type="text/javascript" src="x3dom-1.6.1/dash.all.js"></script>
  </head>
  <body>
    <h1>My X3DOM world</h1>
    <p>
      This is my first html page with some 3d objects!
    </p>
    <x3d width="500px" height="400px">
      <scene>
        <transform scale="15,15,15">
        <transform rotation="0,1,0,-.785">
        <transform rotation="1,0,-1,.785">
        <transform translation="0,0,.2">
        <inline url="foo.x3d" render="true" bboxcenter="0,0,0" bboxsize="-1,-1,-1" load="true" namespacename=""></inline>
      </scene>
    </x3d>
  </body>
</html>
于 2014-12-08T17:03:02.197 回答
1

内联不是 Shape 的字段。
将该节点置于形状之外,它将起作用。
内联节点应该是分组节点的子节点(阅读规范)。这里
也有一个例子。

于 2014-11-22T07:46:14.733 回答