three搭建一个江南水乡小桥流水人家景色场景代码

代码语言:html

所属分类:三维

代码描述:three搭建一个江南水乡小桥流水人家景色场景代码

代码标签: three 搭建 江南 水乡 小桥 流水 人家 景色 场景 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>江南水乡 - Three.js</title>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { overflow: hidden; background: #1a1a2e; }
        canvas { display: block; }
        
        #info {
            position: absolute;
            top: 20px;
            left: 50%;
            transform: translateX(-50%);
            color: white;
            font-family: 'Microsoft YaHei', sans-serif;
            font-size: 24px;
            text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
            pointer-events: none;
            z-index: 100;
        }
        
        #controls {
            position: absolute;
            bottom: 20px;
            left: 50%;
            transform: translateX(-50%);
            color: white;
            font-family: 'Microsoft YaHei', sans-serif;
            font-size: 14px;
            text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
            pointer-events: none;
            background: rgba(0,0,0,0.3);
            padding: 10px 20px;
            border-radius: 20px;
        }
    </style>
</head>
<body>
    <div id="info">🏮 江南水乡 🏮</div>
    <div id="controls">🖱️ 拖动旋转 | 滚轮缩放 | 右键平移</div>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.154.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/OrbitControls.146.js"></script>
    
    <script>
        // ==================== 场景初始化 ====================
        const scene = new THREE.Scene();
        scene.background = new THREE.Color(0x87CEEB);
        scene.fog = new THREE.Fog(0x87CEEB, 50, 200);
        
        const camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
        camera.position.set(30, 25, 40);
        
        const renderer = new THREE.WebGLRenderer({ antialias: true });
        renderer.setSize(window.innerWidth, window.innerHeight);
        renderer.shadowMap.enabled = true;
        renderer.shadowMap.type = THREE.PCFSoftShadowMap;
        document.body.appendChild(renderer.domElement);
        
        const controls = new THREE.OrbitControls(camera, renderer.domElement);
        controls.enableDamping = true;
        controls.dampingFactor = 0.05;
        controls.maxPolarAngle = Math.PI / 2.1;
        
        // ==================== 光照系统 ====================
        const ambientLight = new THREE.AmbientLight(0xffffff, 0.4);
        scene.add(ambientLight);
        
        const sunLight = new THREE.DirectionalLight(0xfff5e6, 1.2);
        sunLight.position.set(50, 80, 30);
        sunLight.castShadow = true;
        sunLight.shadow.mapSize.width = 2048;
        sunLight.shadow.mapSize.height = 2048;
        sunLight.shadow.camera.near = 0.5;
        sunLight.shadow.camera.far = 200;
        sunLight.shadow.camera.left = -60;
        sunLight.shadow.camera.right = 60;
        sunLight.shadow.camera.top = 60;
        sunLight.shadow.camera.bottom = -60;
        scene.add(sunLight);
        
        // 暖色补光
        const warmLight = new THREE.DirectionalLight(0xffe4c4, 0.3);
        warmLight.position.set(-30, 40, -20);
        scene.add(warmLight);
        
        // ==================== 材质定义 ====================
        const materials = {
            water: new THREE.MeshPhongMaterial({
                color: 0x1a5f7a,
                transparent: true,
                opacity: 0.85,
                shininess: 100,
                reflectivity: 1
            }),
     .........完整代码请登录后点击上方下载按钮下载查看

网友评论0