three三维模拟洲际导弹发射井发射分离打击目标爆炸动画效果代码
代码语言:html
所属分类:三维
代码描述:three三维模拟洲际导弹发射井发射分离打击目标爆炸动画效果代码,df-5c,覆盖全球,满满的安全感与自豪感,中国加油。
代码标签: three 三维 模拟 洲际 导弹 发射井 发射 分离 打击 目标 爆炸 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!doctype html> <html lang="zh"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Three.js 发射井导弹演示(加高+垂直文字+震撼爆炸)</title> <style> html, body { margin: 0; height: 100%; overflow: hidden; background: #87CEEB; } #hud { position: fixed; left: 12px; top: 10px; color: #1f2937; font: 14px/1.5em system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial; background: rgba(255,255,255,0.45); padding: 8px 12px; border-radius: 8px; user-select: none; backdrop-filter: blur(5px); box-shadow: 0 2px 10px rgba(0,0,0,0.15); border: 1px solid rgba(255,255,255,0.2); } #hud b { color: #003366; } #btns { margin-top: 8px; display: flex; gap: 8px; } button { color: #1f2937; background: rgba(255,255,255,0.5); border: 1px solid rgba(0,0,0,0.1); border-radius: 6px; padding: 6px 12px; cursor: pointer; font-weight: 500; } button:hover { background: rgba(255,255,255,0.8); } </style> </head> <body> <div id="hud"> <div><b>提示</b>:点击 [发射] 开始,[R] 重播,[空格] 发射/暂停,[切换视角] 自由/伴飞。</div> <div id="tinfo">T = 0.0 s</div> <div id="btns"> <button id="launchPauseBtn">发射</button> <button id="camToggle">切换视角</button> <button id="restart">重开</button> </div> </div> <script type="importmap"> { "imports":{ "three":"//repo.bfw.wiki/bfwrepo/js/module/three/build/164/three.module.js", "three/addons/":"//repo.bfw.wiki/bfwrepo/js/module/three/examples/164/jsm/" } } </script> <script type="module"> import * as THREE from 'three'; import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; import { Sky } from 'three/addons/objects/Sky.js'; // ===== 基础场景(白天) ===== const renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2)); renderer.setSize(window.innerWidth, window.innerHeight); renderer.outputColorSpace = THREE.SRGBColorSpace; renderer.shadowMap.enabled = true; renderer.toneMapping = THREE.ACESFilmicToneMapping; document.body.appendChild(renderer.domElement); const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(60, window.innerWidth/window.innerHeight, 0.1, 20000); const controls = new OrbitControls(camera, renderer.domElement); controls.enableDamping = true; scene.fog = new THREE.Fog(0xa0c0d0, 500, 5000); const hemi = new THREE.HemisphereLight(0xffffff, 0xb0c4de, 1.2); scene.add(hemi); const dir = new THREE.DirectionalLight(0xfff8e7, 2.8); dir.castShadow = true; dir.shadow.mapSize.set(2048, 2048); dir.shadow.camera.near = 10; dir.shadow.camera.far = 1000; dir.shadow.camera.left = -500; dir.shadow.camera.right = 500; dir.shadow.camera.top = 500; dir.shadow.camera.bottom = -500; scene.add(dir); // 天空 const sky = new Sky(); sky.scale.setScalar(10000); scene.add(sky); const skyUniforms = sky.material.uniforms; skyUniforms['turbidity'].value = 8; skyUniforms['rayleigh'].value = 2; skyUniforms['mieCoefficient'].value = 0.005; skyUniforms['mieDirectionalG'].value = 0.8; const sun = new THREE.Vector3(); function updateSun() { const phi = THREE.MathUtils.degToRad(90 - 35); const theta = THREE.MathUtils.degToRad(120); sun.setFromSphericalCoords(1, phi, theta); sky.material.uniforms['sunPosition'].value.copy(sun); dir.position.copy(sun).multiplyScalar(400); renderer.toneMappingExposure = 0.6; } updateSun(); // 地面 { const groundGeo = new THREE.PlaneGeometry(10000, 10000); const groundMat = new THREE.MeshStandardMaterial({ color: 0xcdb79e, roughness: 0.9, metalness: 0 }); const ground = new THREE.Mesh(groundGeo, groundMat); ground.receiveShadow = true; ground.rotation.x = -Math.PI/2; scene.add(ground); } // ===== 发射井(简化) ===== const silo = new THREE.Group(); scene.add(silo); const siloRadius = 8, wallThick = 1.2; const wallGeo = new THREE.CylinderGeometry(siloRadius, siloRadius, 6, 48, 1, true); const wallMat = new THREE.MeshStandardMaterial({ color: 0x223044, roughness: 0.9, metalness: 0.05, side: THREE.DoubleSide }); .........完整代码请登录后点击上方下载按钮下载查看
网友评论0