mirror of
https://github.com/tengge1/ShadowEditor.git
synced 2026-01-25 15:08:11 +00:00
116 lines
3.9 KiB
HTML
116 lines
3.9 KiB
HTML
<!DOCTYPE html>
|
||
|
||
<html lang="zh-cn">
|
||
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>Shadow Editor Viewer</title>
|
||
<link rel="shortcut icon" href="favicon.ico">
|
||
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
||
<!-- iconfont -->
|
||
<link href="assets/css/icon/iconfont.css" rel="stylesheet" />
|
||
<!-- Shadow Editor -->
|
||
<link href="assets/css/main.css" rel="stylesheet" />
|
||
<link id="theme" href="assets/css/light.css" rel="stylesheet" />
|
||
<style>
|
||
.player {
|
||
position: absolute;
|
||
left: 0;
|
||
top: 0;
|
||
right: auto;
|
||
bottom: auto;
|
||
width: 100%;
|
||
height: 100%;
|
||
background-color: white;
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<div id="container" tabindex="10"></div>
|
||
|
||
<!-- three.js -->
|
||
<script src="assets/js/three.js"></script>
|
||
|
||
<!-- libs -->
|
||
<script src="assets/js/libs/stats.min.js"></script>
|
||
<script src="assets/js/libs/ammo.js"></script>
|
||
<script src="assets/js/libs/jszip.min.js"></script>
|
||
<script src="assets/js/libs/inflate.min.js"></script>
|
||
<script src="assets/js/libs/gunzip.min.js"></script>
|
||
|
||
<script src="assets/js/SimplexNoise.js"></script>
|
||
<script src="assets/js/ImprovedNoise.js"></script>
|
||
<script src="assets/js/GPUComputationRenderer.js"></script>
|
||
<script src="assets/js/ShaderTerrain.js"></script>
|
||
|
||
<script src="assets/js/SPE.js"></script>
|
||
<script src="assets/js/VolumetricFire.js"></script>
|
||
<script src="assets/js/utils/BufferGeometryUtils.js"></script>
|
||
|
||
<!-- controls -->
|
||
<script src="assets/js/controls/EditorControls.js"></script>
|
||
<script src="assets/js/controls/TransformControls.js"></script>
|
||
|
||
<!-- geometries -->
|
||
<script src="assets/js/geometries/DecalGeometry.js"></script>
|
||
<script src="assets/js/geometries/TeapotBufferGeometry.js"></script>
|
||
|
||
<!-- loaders -->
|
||
<script src="assets/js/loaders/TGALoader.js"></script>
|
||
|
||
<!-- objects -->
|
||
<script src="assets/js/objects/Sky.js"></script>
|
||
<script src="assets/js/objects/Reflector.js"></script>
|
||
<script src="assets/js/objects/Lensflare.js"></script>
|
||
|
||
<!-- Shadow Editor -->
|
||
<script src="build/ShadowEditor.js"></script>
|
||
<script>
|
||
var app = null;
|
||
|
||
var getQueryString = name => {
|
||
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
|
||
var r = window.location.search.substr(1).match(reg);
|
||
if (r != null) return unescape(r[2]);
|
||
return null;
|
||
};
|
||
|
||
var start = () => {
|
||
app = new Shadow.Player({
|
||
server: location.origin,
|
||
enableThrowBall: false,
|
||
});
|
||
app.render();
|
||
|
||
var sceneID = getQueryString('sceneID');
|
||
var sceneFile = getQueryString('sceneFile');
|
||
|
||
if (sceneID) { // 通过/api/Scene/Load?ID=sceneID获取场景数据
|
||
fetch(`${app.options.server}/api/Scene/Load?ID=${sceneID}`).then(response => {
|
||
if (response.ok) {
|
||
response.json().then(json => {
|
||
if (json.Code === 200) {
|
||
app.start(JSON.stringify(json.Data));
|
||
}
|
||
});
|
||
}
|
||
});
|
||
} else if (sceneFile) { // 通过/Scene/sceneID.txt获取场景数据(导出用)
|
||
fetch(`${app.options.server}/Scene/${sceneFile}.txt`).then(response => {
|
||
if (response.ok) {
|
||
response.json().then(json => {
|
||
app.start(JSON.stringify(json));
|
||
});
|
||
}
|
||
});
|
||
} else {
|
||
alert('Lack sceneID or sceneFile query params, scene load failed.');
|
||
}
|
||
};
|
||
|
||
window.onload = start;
|
||
</script>
|
||
</body>
|
||
|
||
</html> |