2014-12-14 3 views
1

세슘에 .gltf 모델 파일을로드하려고합니다. 나는 이것을 완료하기 위해 http://cesiumjs.org/2014/03/03/Cesium-3D-Models-Tutorial/에 관한 지시를 따랐다. 하지만 작동하지 않습니다. 내가 여기 없어진거야? 어떤 도움을 주셔서 감사합니다. 미리 감사드립니다.cesium.js에서 gltf 모델로드

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <!-- Use correct character set. --> 
    <meta charset="utf-8"> 
    <!-- Tell IE to use the latest, best version (or Chrome Frame if pre-IE11). --> 
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> 
    <!-- Make the application on mobile take up the full browser screen and disable user scaling. --> 
    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> 
    <title>Hello Me!!!</title> 
    <script src="../Build/Cesium/Cesium.js"></script> 
    <style> 
     @import url(../Build/Cesium/Widgets/widgets.css); 

     #cesiumContainer { 
      position: absolute; 
      top: 0; 
      left: 0; 
      height: 100%; 
      width: 100%; 
      margin: 0; 
      overflow: hidden; 
      padding: 0; 
      font-family: sans-serif; 
     } 

     html { 
     height: 100%; 
     } 

     body { 
      padding: 0; 
      margin: 0; 
      overflow: hidden; 
      height: 100%; 
     } 
    </style> 
</head> 
<body> 
<div id="cesiumContainer"></div> 
<script> 
    var viewer = new Cesium.Viewer('cesiumContainer', { 
     animation : false, 
     homeButton : false, 
     baseLayerPicker : false, 
     infoBox : false, 
     sceneModePicker : false, 
     timeline : false, 
     navigationInstructionsInitiallyVisible : false, 
     navigationHelpButton : false, 
    }); 
    var scene = viewer.scene; 
    var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(-75.62898254394531, 40.02804946899414, 0.0)); 
    var model = scene.primitives.add(Cesium.Model.fromGltf({ 
     url : 'sample.gltf', 
     modelMatrix : modelMatrix, 
     scale : 200.0 
    })); 
</script> 
</body> 
</html> 
+0

'작동하지 않는다'는 것은 무엇을 의미합니까? 오류가 있습니까? 이상하게 렌더링됩니까? –

답변

1

대부분의 경우,이 모델이 잘로드,하지만도 (200)의 규모로,이 공간에서보고 너무 작은, 당신은 확대 할 파일의 끝에 다음 코드 블록을 추가 할 수 있습니다 일단 모델이로드되면

model.readyToRender.addEventListener(function(){ 
    var center = Cesium.Matrix4.multiplyByPoint(model.modelMatrix, model.boundingSphere.center, new Cesium.Cartesian3()); 
    var transform = Cesium.Transforms.eastNorthUpToFixedFrame(center); 
    var camera = scene.camera; 
    camera.transform = transform; 
    var controller = scene.screenSpaceCameraController; 
    var r = 2.0 * Math.max(model.boundingSphere.radius, camera.frustum.near); 
    controller.minimumZoomDistance = r * 0.5; 
    camera.lookAt(new Cesium.Cartesian3(r, r, r), Cesium.Cartesian3.ZERO, Cesium.Cartesian3.UNIT_Z); 
});