three实现三维高山流水瀑布微缩景观场景代码
代码语言:html
所属分类:其他
代码由minimax-m3.1-flash ai生成,可能有错误,仅供参考:点击查看提示词
代码描述:三维高山流水瀑布微缩景观
代码标签: three 三维 高山 流水 瀑布 微缩 景观 场景 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>高山流水 · 玻璃立方体微缩景观</title>
<style>
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:#04060b;color:#e8f1ff;
font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;}
#app{position:fixed;inset:0}
canvas{display:block;touch-action:none}
.hud{position:fixed;left:30px;top:28px;pointer-events:none;user-select:none;z-index:5}
.hud h1{margin:0 0 10px;font-size:20px;font-weight:400;letter-spacing:.42em;color:#f4f8ff;
text-shadow:0 2px 26px rgba(0,0,0,.75)}
.hud .rule{width:52px;height:1px;background:linear-gradient(90deg,rgba(160,210,255,.85),rgba(160,210,255,0));margin:0 0 12px}
.hud p{margin:0;font-size:11.5px;line-height:2.05;letter-spacing:.16em;color:rgba(196,220,252,.5);max-width:290px}
.panel{position:fixed;right:26px;top:28px;display:flex;flex-direction:column;gap:9px;z-index:5}
.btn{pointer-events:auto;cursor:pointer;width:146px;padding:10px 14px;font-size:11.5px;letter-spacing:.14em;
color:rgba(216,234,255,.78);background:rgba(11,19,33,.46);border:1px solid rgba(150,190,255,.2);
border-radius:10px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:.25s;text-align:left;
font-family:inherit}
.btn:hover{background:rgba(28,52,88,.6);color:#fff;border-color:rgba(160,205,255,.48)}
.btn.on{background:rgba(40,110,180,.32);border-color:rgba(120,190,255,.55);color:#eaf4ff}
.hint{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);font-size:10.5px;letter-spacing:.26em;
color:rgba(190,215,250,.3);white-space:nowrap;pointer-events:none;z-index:5}
#loader{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;
gap:20px;background:#04060b;z-index:30;transition:opacity .9s ease}
#loader.hide{opacity:0;pointer-events:none}
.ring{width:44px;height:44px;border:1px solid rgba(150,200,255,.16);border-top-color:rgba(180,222,255,.9);
border-radius:50%;animation:spin 1.05s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.tag{font-size:10.5px;letter-spacing:.34em;color:rgba(200,222,255,.45)}
.err{color:#ff9d9d;font-size:12.5px;letter-spacing:.05em;max-width:440px;text-align:center;line-height:1.9}
@media (max-width:760px){
.hud{left:18px;top:18px}.hud h1{font-size:16px;letter-spacing:.3em}
.panel{right:14px;top:18px}.btn{width:118px;padding:8px 10px;font-size:10.5px}
}
</style>
</head>
<body>
<div id="app"></div>
<div class="hud">
<h1>高山流水</h1>
<div class="rule"></div>
<p>玻璃立方体中的微缩山水<br />程序化地形 · 雕刻水道 · 动态水体<br />拖拽旋转 · 滚轮缩放 · 右键平移</p>
</div>
<div class="panel">
<button class="btn on" id="btnRotate">自动旋转 · 开</button>
<button class="btn on" id="btnMist">水雾粒子 · 开</button>
<button class="btn on" id="btnBloom">辉光 · 开</button>
<button class="btn" id="btnReset">重置视角</button>
</div>
<div class="hint">GLASS DIORAMA · THREE.JS · WEBGL</div>
<div id="loader">
<div class="ring"></div>
<div class="tag" id="loadTag">正在生成地形与水体…</div>
</div>
<script>
// CDN 加载失败兜底提示
setTimeout(function(){
if (!window.MINI_DIORAMA){
var tag = document.getElementById('loadTag');
if (tag){
tag.innerHTML = '资源加载超时,请检查网络后刷新<br/>(本页通过 CDN 加载 three.js)';
tag.style.color = 'rgba(255,190,190,.75)';
tag.style.lineHeight = '1.9';
}
}
}, 15000);
</script>
<script type="importmap">
{
"imports": {
"three": "https://unpkg.com/three@0.160.0/build/three.module.js",
"three/addons/": "https://unpkg.com/three@0.160.0/examples/jsm/"
}
}
</script>
<script type="module">
import * as THREE from 'three';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
import { RenderPass } from 'three/addons/postprocessing/RenderPass.js';
import { UnrealBloomPass } from 'three/addons/postprocessing/UnrealBloomPass.js';
import { OutputPass } from 'three/addons/postprocess.........完整代码请登录后点击上方下载按钮下载查看















网友评论0