新闻详情

新闻详情

首页 / 资讯中心 / 详情

Three.js 随机城市白膜教程

发布时间:2026/10/26 17:43:49来源:尧图网络
Three.js 随机城市白膜教程
随机城市白膜 ·White Model· ▶ 在线运行案例案例合集三维可视化功能案例threehub.cn开源仓库github地址https://github.com/z2586300277/three-cesium-examples400个案例代码:网盘链接你将学到什么OrbitControls 相机轨道交互监听窗口resize同步更新 camera 与 renderer效果说明本案例演示随机城市白膜效果生成仿真城市白膜核心用到 OrbitControls。建议先打开文首在线案例查看动态画面再对照下方源码逐步理解。核心概念Scene / Camera / WebGLRenderer构成最小渲染闭环大场景可开logarithmicDepthBuffer缓解 Z-fighting。OrbitControls提供轨道旋转/缩放开启enableDamping后需在 animate 中controls.update()。阅读下方完整源码时建议从init/load/animate三条主线入手再深入 shader 与工具函数。实现步骤搭建灯光与环境如有requestAnimationFrame 循环 update render代码要点import * as THREE from three;import { OrbitControls } from three/examples/jsm/Addons.js; const DOM document.getElementById(box)var scene new THREE.Scene();var camera new THREE.PerspectiveCamera(60, innerWidth / innerHeight); camera.position.set(-1, 0.5, 1).setLength(75);camera.lookAt(scene.position);var renderer new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(innerWidth, innerHeight); renderer.setAnimationLoop(animationLoop); function animationLoop() { renderer.render(scene, camera); } DOM.appendChild(renderer.domElement);window.addEventListener(resize, () { camera.aspect innerWidth / innerHeight; camera.updateProjectionMatrix(); renderer.setSize(innerWidth, innerHeight); });var controls new OrbitControls(camera, renderer.domElement); controls.target.set(0, 12, 0);controls.update(); controls.enableDamping true; controls.autoRotate true;var light new THREE.DirectionalLight(white, 3); light.position.set(1, 1, 1); scene.add(light); import { Mesh, MathUtils, PlaneGeometry, Color,BoxGeometry,MeshBasicMaterial } from three;/**生成仿真城市白膜*/ const buildingGeometry new BoxGeometry(1, 1, 1); buildingGeometry.translate(0, 0.5, 0); // 调整几何中心点 const buildingMaterial new MeshBasicMaterial({ color: 0xcccccc }); function generateCityModel() { const citySize 50; // 城市范围 const spacing 10; // 建筑间隔 const maxDistance citySize * spacing; // 最大影响范围 const plane new PlaneGeometry(maxDistance2, maxDistance2); plane.rotateX(-Math.PI / 2) scene.add(new Mesh(plane)) for (let z -citySize; z citySize; z) { for (let x -citySize; x citySize; x) { // 跳过城市中心一定区域避免过密 if (Math.abs(x) 5 Math.abs(z) 5) continue;// 计算建筑位置 const positionX x * spacing; const positionZ z * spacing; const distanceFromCenter Math.sqrt(positionX2 positionZ2);// 根据距离中心的远近调整建筑高度和生成概率 const distanceFactor 1 - MathUtils.clamp(distanceFromCenter / maxDistance, 0, 1); const heightScale Math.pow(distanceFactor, 4); // 高度衰减曲线if (Math.random() distanceFactor) { // 随机生成的概率 const building new Mesh(buildingGeometry, buildingMaterial);// 设置建筑位置 let offset (Math.random()0.5 - 1)spacing building.position.set(positionX offset, 0, positionZ offset);// 设置建筑缩放 building.scale.set( MathUtils.randInt(1, 4), // 宽度随机 1 Math.floor(Math.random()heightScale35), // 高度与距离中心相关 MathUtils.randInt(1, 4) // 深度随机 ); // 随机红色 if (Math.random() 0.1) { building.material building.material.clone(); building.material.color new Color(red); } scene.add(building); } } } }generateCityModel()完整源码GitHub小结本文提供随机城市白膜完整 Three.js 源码与在线 Demo建议先运行案例再改 uniform/参数做二次实验更多 Three.js 实战案例见 three-cesium-examples 合集 与 GitHub 开源仓库
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/25 3:20:41

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/10/25 3:43:49

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/26 12:48:02

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/10/26 10:03:11

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/10/25 3:54:32

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/10/25 5:32:24

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉