0

我使用 x3dom 创建了一个 x3d 文件。以下是文件的结构。将以下代码复制到文本编辑器中并将其保存为 .x3d 文件。对于图像纹理,您可以考虑任何 jpg 文件并将其放置在与 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='Interchange' version='3.0'    
xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' 
xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.0.xsd'>
<Scene>
   <NavigationInfo type='"EXAMINE" "WALK" "FLY" "ANY"'/>
   <DirectionalLight intensity="0.8" direction="0 1 0"/>
   <DirectionalLight intensity="0.9" direction="0 -1 0"/>
   <DirectionalLight intensity="0.6" direction="1 0 -1"/>
   <DirectionalLight intensity="0.6" direction="-1 0 -1"/>
   <DirectionalLight intensity="0.6" direction="-1 0 1"/>
   <DirectionalLight intensity="0.6" direction="1 0 1"/>
   <Shape>
      <Appearance>
         <Material ambientIntensity="0.2" diffuseColor="0.004 0.004 0.004" emissiveColor="0 0 0" shininess="0.2" specularColor="0 0 0" transparency="0"/>
         <ImageTexture url="Penguins.jpg"/>
      </Appearance>
   <IndexedFaceSet convex="true" coordIndex="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 -1 " ccw="true">
       <Coordinate point="132.2349 0 329.9732 123.0347 0 336.9273 109.9391 0 350.0229 102.985 0 359.223 82.26761 0 386.6317 69.30841 0 436.438 74.03987 0 470.4683 78.77134 0 504.4987 104.8261 0 548.8805 132.2349 0 569.598 191.8598 0 569.598 191.8598 0 689.9727 911.8589 0 689.9727 1032.234 0 569.598 1032.234 0 270.3483 852.2339 0 270.3483 852.2339 0 210.7232 371.8596 0 210.7232 371.8596 0 329.9732"/>
   </IndexedFaceSet>
  </Shape>
  <Viewpoint description="Center of Space" fieldOfView="0.785" position="553.1368 60 450.348"/>
 </Scene>
</X3D>

从顶视图看,3D 对象看起来像这样, 在此处输入图像描述

从底部视图看起来像这样, 在此处输入图像描述

我检查了所有点,它们的顺序正确,但不确定为什么要创建这两个额外的面。我在这里做错什么了吗?

4

1 回答 1

0

你画一个非凸的形状,因此你需要将凸设置为假,此外,如果你想从“后面”看到你的形状,你需要将实体设置为假。

这有效:

<IndexedFaceSet convex="false" solid="false" coordIndex="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 -1">

(你不需要 ccw,默认情况下它是真的)

于 2016-09-30T14:35:38.317 回答