Three.js 中国旗帜教程 📅 发布时间:2026/7/5 22:18:51 👁️ 浏览次数: 中国旗帜 ·China Flag· ▶ 在线运行案例案例合集三维可视化功能案例threehub.cn开源仓库github地址https://github.com/z2586300277/three-cesium-examples400个案例代码:网盘链接你将学到什么RawShaderMaterial手写完整 GLSL含 projectionMatrix 等高细分BoxGeometry当旗面多频率sin叠加 Z 向波浪 杆边xFactor衰减vDark传递位移量做片元明暗效果说明本案例演示中国旗帜效果基于 WebGL 实现「中国旗帜」可视化效果附完整可运行源码核心用到 RawShaderMaterial、OrbitControls。建议先打开文首在线案例查看动态画面再对照下方源码逐步理解。核心概念顶点波浪float xFactor clamp((modelPosition.x 1.25) / 2.0, 0.0, 2.0);float vWave sin(modelPosition.xuFrequency.x - uTime)xFactor * uStrength; vWave sin(modelPosition.yuFrequency.y - uTime)xFactoruStrength0.5; modelPosition.z vWave;xFactor让靠近旗杆x 较小顶点几乎不动。片元明暗textColor.rgb * vDark 0.85;波浪隆起处vDark较大颜色略亮/略暗形成褶皱感。RawShaderMaterial需自行声明attribute/uniform mat4 projectionMatrix等不自动注入 Three chunk。实现步骤TextureLoader 加载国旗 JPGBoxGeometry(3, 2, 0.025, 64, 64) 高细分uniformsuTime、uFrequency、uStrength、uTextureanimate 里uTime 0.06代码要点import * as THREE from threeimport { OrbitControls } from three/examples/jsm/controls/OrbitControls.jsconst box document.getElementById(box)const scene new THREE.Scene()const camera new THREE.PerspectiveCamera(75, box.clientWidth / box.clientHeight, 0.1, 1000)camera.position.set(0.5, -0.5, 3)const renderer new THREE.WebGLRenderer()renderer.setSize(box.clientWidth, box.clientHeight)box.appendChild(renderer.domElement)new OrbitControls(camera, renderer.domElement)window.onresize () {renderer.setSize(box.clientWidth, box.clientHeight)camera.aspect box.clientWidth / box.clientHeightcamera.updateProjectionMatrix()}const flagTexture new THREE.TextureLoader().load(GLOBAL_CONFIG.getFileUrl(images/chinaFlag.jpg))const flagMaterial new THREE.RawShaderMaterial({vertexShader:uniform mat4 projectionMatrix; uniform mat4 modelMatrix; uniform mat4 viewMatrix; uniform vec2 uFrequency; uniform float uTime; uniform float uStrength; attribute vec3 position; attribute vec2 uv; varying float vDark; varying vec2 vUv; void main() { vec4 modelPosition modelMatrix * vec4(position, 1.0); float xFactor clamp((modelPosition.x 1.25) / 2.0, 0.0, 2.0); float vWave sin(modelPosition.xuFrequency.x - uTime )xFactor * uStrength ; vWave sin(modelPosition.yuFrequency.y - uTime)xFactoruStrength0.5; modelPosition.y sin(modelPosition.x2.0 uTime0.5)0.05xFactor; modelPosition.z vWave; vec4 viewPosition viewMatrix * modelPosition; vec4 projectedPosition projectionMatrix * viewPosition; gl_Position projectedPosition; vUv uv; vDark vWave; },fragmentShader:precision mediump float; varying float vDark; uniform sampler2D uTexture; varying vec2 vUv; void main(){ vec4 textColor texture2D(uTexture, vUv); textColor.rgb * vDark 0.85; gl_FragColor textColor; },side: THREE.DoubleSide,uniforms: { uFrequency: { value: new THREE.Vector2(3, 3) }, uTime: { value: 0 }, uTexture: { value: flagTexture }, uStrength: { value: 0.2 } }})const flagGeometry new THREE.BoxGeometry(3, 2, 0.025, 64, 64)const flagMesh new THREE.Mesh(flagGeometry, flagMaterial)scene.add(flagMesh)animate()function animate() {flagMaterial.uniforms.uTime.value 0.06renderer.render(scene, camera)requestAnimationFrame(animate)}完整源码GitHub小结本文提供中国旗帜完整 Three.js 源码与在线 Demo建议先运行案例再改 uniform/参数做二次实验更多 Three.js 实战案例见 three-cesium-examples 合集 与 GitHub 开源仓库
App渠道追踪实战指南:iOS、Android与鸿蒙多平台实现与避坑 1. 项目概述:为什么渠道追踪是App增长的“生命线”在移动互联网的下半场,流量红利见顶,每一分市场预算都变得弥足珍贵。作为开发者或市场运营,你是否曾面临这样的灵魂拷问:我们投放在抖音、小红书、知乎、应用商店的广… 2026/7/5 22:18:51
基于AVOA优化的非完全beta函数图像增强方法 1. 项目概述在计算机视觉和图像处理领域,图像增强技术一直扮演着至关重要的角色。传统的图像增强方法如直方图均衡化、伽马校正等虽然简单易用,但在处理复杂场景时往往显得力不从心。特别是在面对低对比度、高噪声或光照不均的图像时,这些方法… 2026/7/5 22:16:50
AI 安全护栏:Prompt 规则不是最后一道防线 AI 安全护栏:Prompt 规则不是最后一道防线 一、只靠 Prompt 很脆 AI 应用上线后,安全问题会变得非常现实:越权查询、敏感信息泄露、工具误调用、提示词注入、恶意内容生成。很多团队会在系统提示词里写一堆规则,希望模型自觉遵守—… 2026/7/5 22:16:50
Wireshark实战:从流量特征深度解析WEP、WPA、WPA2加密协议 1. 项目概述:为什么我们要看Wi-Fi加密协议的流量特征?如果你负责过企业网络运维,或者自己在家折腾过路由器,肯定遇到过这样的场景:某个设备突然连不上Wi-Fi了,或者网速时快时慢,排查了半天&… 2026/7/5 23:39:09
YOLO26集成Mona适配器:高效目标检测新方案 1. 项目概述:YOLO26与Mona适配器的创新融合在计算机视觉领域,目标检测模型的微调一直面临着效率与性能的权衡难题。传统全参数微调(Full Fine-Tuning)需要更新整个骨干网络的所有参数,这不仅消耗大量计算资源ÿ… 2026/7/5 23:39:09
YOLOv8-Pose关键点检测与OKS损失函数详解 1. YOLOv8-Pose关键点检测与OKS损失概述YOLOv8-Pose作为YOLOv8系列在人体姿态估计领域的延伸,其核心任务是对输入图像中的人体关键点进行精确定位。与传统目标检测不同,关键点检测需要处理的是稀疏的坐标点集合,每个点都对应着人体的特定解剖… 2026/7/5 23:37:08
Codex接入DeepSeek Token异常消耗诊断与优化方案 🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 最近在尝试将 Codex 项目接入 DeepSeek 模型时,很多开发者都遇到了一个棘手的问题:Token 消耗速度异常&#x… 2026/7/5 23:33:07
DFormerv2几何自注意力机制在RGBD语义分割中的应用 1. 项目背景与核心创新 RGBD语义分割作为计算机视觉领域的重要研究方向,近年来在自动驾驶、机器人导航、增强现实等场景中展现出越来越高的应用价值。传统方法通常采用双分支架构,分别处理RGB图像和深度图,最后进行特征融合。这种设计虽然直观… 2026/7/5 23:33:07
多模态目标检测技术:YOLOv12与MM_HMHA模块实践 1. 多模态目标检测的现状与挑战 在计算机视觉领域,目标检测技术已经取得了显著进展,而YOLO系列作为其中的佼佼者,因其高效的检测速度和良好的精度表现而广受欢迎。然而,传统单模态目标检测在面对复杂场景时仍存在局限性࿰… 2026/7/5 23:33:07
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/5 0:01:32
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/5 0:01:32
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/5 0:05:36
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/5 0:01:32
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/5 0:01:32
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/5 0:05:36