0

我有这个代码,它是一个嵌入了旋转的 x3d 对象的 HTML 页面。在网络浏览器中一切正常,但如果我尝试获取代码的 x3d 部分并将其保存为 x3d 文件,则该对象不会在 BS 联系人中运行。

<html>
<head>
  <meta http-equiv="Content-Type"/>
  <title>Rotate Object</title>
  <link rel="stylesheet" type="text/css" href="http://www.x3dom.org/x3dom/src/x3dom.css"/>
  <script type="text/javascript" src="http://www.x3dom.org/x3dom/src/x3dom.js"></script>
</head>
 
<body>
  <X3D width="500px" height="500px">
  <scene>			
    <transform DEF='couch'>
        <Transform translation='0.0 0.0 3.0'>

      <Shape DEF='leg'>
<Appearance>
<Material diffuseColor='0.2 0.1 0.0'/>
</Appearance> 
<Cylinder height='0.5' radius='0.2'/>
</Shape>
</Transform> 
<Transform translation='0.0 0.0 -3.0'>
<Shape USE='leg'/>
</Transform> 
<Transform translation='-2.0 0.0 -3.0'>
<Shape USE='leg'/>
</Transform> 
<Transform translation='-2.0 0.0 3.0'>
<Shape USE='leg'/>
</Transform> 
<Transform rotation='0.0 0.0 1.0 0.1' translation='-1.0 0.3 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='0.1 0.2 0.5'/>
</Appearance> 
<Box size='2.5 0.5 7.0'/>
</Shape>
</Transform> 
<Transform rotation='0.0 0.0 1.0 0.1' translation='-1.0 0.5 3.5'>
<Group DEF='arm'>
<Shape>
<Appearance>
<Material diffuseColor='0.1 0.2 0.5'/>
</Appearance> 
<Box size='2.5 0.3 0.3'/>
</Shape> 
<Transform rotation='0.0 0.0 1.0 -1.5' translation='0.0 0.2 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='0.1 0.2 0.5'/>
</Appearance> 
<Cylinder height='3.0' radius='0.2'/>
</Shape>
</Transform>
</Group>
</Transform> 
<Transform rotation='0.0 0.0 1.0 -1.4' translation='-1.0 0.7 3.5'>
<Shape DEF='woodarm'>
<Appearance>
<Material diffuseColor='0.2 0.1 0.0'/>
</Appearance> 
<Cylinder height='3.2' radius='0.1'/>
</Shape>
</Transform> 
<Transform rotation='0.0 0.0 1.0 -1.4' translation='-1.0 0.7 -3.5'>
<Shape USE='woodarm'/>
</Transform> 
<Transform rotation='0.0 0.0 1.0 0.1' translation='-1.0 0.5 -3.5'>
<Group USE='arm'/>
</Transform> 
<Transform rotation='0.0 0.0 1.0 0.4' translation='-2.2 0.8 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='0.1 0.2 0.5'/>
</Appearance> 
<Box size='0.3 1.5 6.5'/>
</Shape>
</Transform> 
<Transform rotation='0.0 0.0 1.0 0.1' translation='-1.0 0.4 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='0.1 0.2 0.5'/>
</Appearance> 
<Box size='2.5 0.5 6.5'/>
</Shape> 
<Transform rotation='1.0 0.0 0.0 1.5707964' translation='1.15 0.0 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='0.1 0.2 0.5'/>
</Appearance> 
<Cylinder height='6.5' radius='0.25'/>
</Shape>
</Transform>
</Transform>
 
    <timeSensor DEF='clock' cycleInterval='8' loop='true'></timeSensor>
    <orientationInterpolator DEF='spinThings' key='0 0.25 0.5 0.75 1' keyValue='0 1 0 0  0 1 0 1.57079  0 1 0 3.14159  0 1 0 4.71239  0 1 0 6.28317'></orientationInterpolator>
 
    <ROUTE fromNode='clock' fromField='fraction_changed' toNode='spinThings' toField='set_fraction'></ROUTE>
    <ROUTE fromNode='spinThings' fromField='value_changed' toNode='couch' toField='set_rotation'></ROUTE>
  </scene>
  </X3D>
</body>
</html>

所以基本上我要做的是让这个代码作为本地 x3d 文件而不是 html 文件运行。

4

2 回答 2

0

您可以使用GPAC 框架(Osmo4 播放器)来运行您的 x3d 文件。我已经测试了该文件并且它可以工作。这是代码:

<?xml version="1.0" encoding="UTF-8"?>
<!-- X3D Scene Dump - GPAC version 0.5.2-DEV-rev285-g6a5270d-master -->
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="http://www.web3d.org/specifications/x3d-3.0.xsd" version="3.0">
<head>
<meta content="X3D File Converted/Dumped by GPAC Version 0.5.2-DEV-rev285-g6a5270d-master" name="generator"/>
</head>
 <Scene>
    <Transform DEF='couch'>
    <Transform translation='0.0 0.0 3.0'>
        <Shape DEF='leg'>
            <Appearance>
                <Material diffuseColor='0.2 0.1 0.0'/>
            </Appearance>
            <Cylinder height='0.5' radius='0.2'/>
        </Shape>
    </Transform>
    <Transform translation='0.0 0.0 -3.0'>
        <Shape USE='leg'/>
    </Transform>
    <Transform translation='-2.0 0.0 -3.0'>
        <Shape USE='leg'/>
    </Transform>
    <Transform translation='-2.0 0.0 3.0'>
        <Shape USE='leg'/>
    </Transform>
    <Transform rotation='0.0 0.0 1.0 0.1' translation='-1.0 0.3 0.0'>
        <Shape>
            <Appearance>
                <Material diffuseColor='0.1 0.2 0.5'/>
            </Appearance>
            <Box size='2.5 0.5 7.0'/>
        </Shape>
    </Transform>
    <Transform rotation='0.0 0.0 1.0 0.1' translation='-1.0 0.5 3.5'>
        <Group DEF='arm'>
            <Shape>
                <Appearance>
                    <Material diffuseColor='0.1 0.2 0.5'/>
                </Appearance>
                <Box size='2.5 0.3 0.3'/>
            </Shape>
            <Transform rotation='0.0 0.0 1.0 -1.5' translation='0.0 0.2 0.0'>
                <Shape>
                    <Appearance>
                        <Material diffuseColor='0.1 0.2 0.5'/>
                    </Appearance>
                    <Cylinder height='3.0' radius='0.2'/>
                </Shape>
            </Transform>
        </Group>
    </Transform>
    <Transform rotation='0.0 0.0 1.0 -1.4' translation='-1.0 0.7 3.5'>
        <Shape DEF='woodarm'>
            <Appearance>
                <Material diffuseColor='0.2 0.1 0.0'/>
            </Appearance>
            <Cylinder height='3.2' radius='0.1'/>
        </Shape>
    </Transform>
    <Transform rotation='0.0 0.0 1.0 -1.4' translation='-1.0 0.7 -3.5'>
        <Shape USE='woodarm'/>
    </Transform>
    <Transform rotation='0.0 0.0 1.0 0.1' translation='-1.0 0.5 -3.5'>
        <Group USE='arm'/>
    </Transform>
    <Transform rotation='0.0 0.0 1.0 0.4' translation='-2.2 0.8 0.0'>
        <Shape>
            <Appearance>
                <Material diffuseColor='0.1 0.2 0.5'/>
            </Appearance>
            <Box size='0.3 1.5 6.5'/>
        </Shape>
    </Transform>
    <Transform rotation='0.0 0.0 1.0 0.1' translation='-1.0 0.4 0.0'>
        <Shape>
            <Appearance>
                <Material diffuseColor='0.1 0.2 0.5'/>
            </Appearance>
            <Box size='2.5 0.5 6.5'/>
        </Shape>
        <Transform rotation='1.0 0.0 0.0 1.5707964' translation='1.15 0.0 0.0'>
            <Shape>
                <Appearance>
                    <Material diffuseColor='0.1 0.2 0.5'/>
                </Appearance>
                <Cylinder height='6.5' radius='0.25'/>
            </Shape>
        </Transform>
    </Transform>
 </Scene>
</X3D>

我不知道这是否是问题,但Transform您文件中的第一个不是大写 t。(<trasform>而不是<Transform>

于 2015-04-14T12:28:35.390 回答
0

X3D 对 case 和 node 属性名称特别关注。这在 X3DOM 中是不正确的。特别是节点并没有将所有的高度和宽度作为属性。除了查看规范之外, http: //x3dGraphics.com/上还有许多 X3D 节点的完整信息。

如果您想使用 X3DOM 和另一个 X3D 查看应用程序(如 BS Contact 或 InstantReality),我建议将 X3D 场景内容放在单独的 X3D 文件中,并使用节点在 HTML 中进行设置以包含 X3D 内容。此过程在http://realism.com/blog/add-x3d-your-webpage中进行了描述

于 2015-04-17T00:48:44.327 回答